Logo Search packages:      
Sourcecode: facturalux version File versions  Download package

void FLFieldMetaData::setRelationList ( FLRelationMetaDataList rl  ) 

Asigna una lista de relaciones, a la lista de relaciones del campo.

La lista de relaciones del tipo FLRelationMetaDataList, ya construida, es asignada como la lista de relaciones del campo, en el caso de que ya exista una lista de relaciones para el campo, esta es destruida y sobreescrita por la nueva. La lista pasada a este método pasa a ser propiedad del campo, y él es el encargado de borrarla, por lo tanto no se debe borrar esta lista fuera de la clase. Si la lista que se pretende asignar es nula o vacía este método no hace nada.

Parameters:
rl Lista de relaciones

Definition at line 99 of file FLFieldMetaData.cpp.

References FLRelationMetaData::cardinality(), name_, FLRelationMetaData::RELATION_M1, relationList_, relationM1_, and FLRelationMetaData::setField().

Referenced by FLManager::metadataField().

{
  if (!rl)
      return;

  if (rl->isEmpty ())
      return;

  if (relationList_)
      {
        relationList_->clear ();
        delete relationList_;
      }

  if (relationM1_)
      {
        delete relationM1_;

        relationM1_ = 0;
      }

  FLRelationMetaData *relation;

  for (unsigned int i = 0; i < rl->count (); i++)
      {
        relation = rl->at (i);
        if (relation->cardinality () == FLRelationMetaData::RELATION_M1 && relationM1_)
            {
              qWarning ("FLFieldMetaData: Se ha intentado crear más de una relación muchos a uno para el mismo campo");
              continue;
            }

        relation->setField (name_);
        if (relation->cardinality () == FLRelationMetaData::RELATION_M1)
            {
              relationM1_ = relation;
              continue;
            }

        if (!relationList_)
            {
              relationList_ = new FLRelationMetaDataList;
              relationList_->setAutoDelete (true);
            }

        relationList_->append (relation);
      }
}


Generated by  Doxygen 1.6.0   Back to index