Search in sources :

Example 31 with AssociationSimpleDefinition

use of io.vertigo.dynamo.domain.metamodel.association.AssociationSimpleDefinition in project vertigo by KleeGroup.

the class EAXmiTestParserAA method testAssoctationAnvB1v.

/**
 * Test d'une relation Anv - B1v.
 */
@Test
public void testAssoctationAnvB1v() {
    final AssociationSimpleDefinition association = getAssociationSimpleDefinition("A_CHI_CHI_6");
    /* "0..*" */
    Assert.assertTrue(association.getAssociationNodeA().isMultiple());
    Assert.assertFalse(association.getAssociationNodeA().isNotNull());
    /* "0..1" */
    Assert.assertFalse(association.getAssociationNodeB().isMultiple());
    Assert.assertFalse(association.getAssociationNodeB().isNotNull());
    Assert.assertEquals("R6A", association.getAssociationNodeA().getRole());
    Assert.assertEquals("R6B", association.getAssociationNodeB().getRole());
    Assert.assertTrue(association.getAssociationNodeA().isNavigable());
    Assert.assertTrue(association.getAssociationNodeB().isNavigable());
}
Also used : AssociationSimpleDefinition(io.vertigo.dynamo.domain.metamodel.association.AssociationSimpleDefinition) Test(org.junit.Test)

Example 32 with AssociationSimpleDefinition

use of io.vertigo.dynamo.domain.metamodel.association.AssociationSimpleDefinition in project vertigo by KleeGroup.

the class DtObjectUtil method createURI.

/**
 * Récupération d'une URI de DTO.
 * On récupère l'URI d'un DTO référencé par une association.
 * Il est nécessaire que l'association soit simple.
 * Si l'association est multiple on ne récupère pas une URI mais une DtListURI, c'est à dire le pointeur vers une liste.
 *
 *  On recherche une URI correspondant à une association.
 *  Exemple : Une Commande possède un bénéficiaire.
 *  Dans cetexemple on recherche l'URI du bénéficiaire à partir de l'objet commande.
 * @param <E>
 *
 * @param associationDefinitionName Nom de la définition d'une association
 * @param dto  Object
 * @param dtoTargetClass Class of entity of this association
 * @return dto du DTO relié via l'association au dto passé en paramètre (Nullable)
 */
public static <E extends Entity> URI<E> createURI(final DtObject dto, final String associationDefinitionName, final Class<E> dtoTargetClass) {
    Assertion.checkNotNull(associationDefinitionName);
    Assertion.checkNotNull(dto);
    Assertion.checkNotNull(dtoTargetClass);
    // -----
    final AssociationSimpleDefinition associationSimpleDefinition = Home.getApp().getDefinitionSpace().resolve(associationDefinitionName, AssociationSimpleDefinition.class);
    // 1. On recherche le nom du champ portant l'objet référencé (Exemple : personne)
    final DtDefinition dtDefinition = associationSimpleDefinition.getPrimaryAssociationNode().getDtDefinition();
    // 2. On calcule le nom de la fk.
    final DtField fkField = associationSimpleDefinition.getFKField();
    // 3. On calcule l'URI de la clé étrangère
    final Object id = fkField.getDataAccessor().getValue(dto);
    if (id == null) {
        return null;
    }
    return new URI(dtDefinition, id);
}
Also used : DtDefinition(io.vertigo.dynamo.domain.metamodel.DtDefinition) DtObject(io.vertigo.dynamo.domain.model.DtObject) AssociationSimpleDefinition(io.vertigo.dynamo.domain.metamodel.association.AssociationSimpleDefinition) URI(io.vertigo.dynamo.domain.model.URI) DtField(io.vertigo.dynamo.domain.metamodel.DtField)

Aggregations

AssociationSimpleDefinition (io.vertigo.dynamo.domain.metamodel.association.AssociationSimpleDefinition)32 Test (org.junit.Test)24 DtDefinition (io.vertigo.dynamo.domain.metamodel.DtDefinition)7 AssociationNNDefinition (io.vertigo.dynamo.domain.metamodel.association.AssociationNNDefinition)5 AccountMapperHelper (io.vertigo.account.impl.account.AccountMapperHelper)3 DtField (io.vertigo.dynamo.domain.metamodel.DtField)3 AssociationDefinition (io.vertigo.dynamo.domain.metamodel.association.AssociationDefinition)3 DtListURIForSimpleAssociation (io.vertigo.dynamo.domain.metamodel.association.DtListURIForSimpleAssociation)3 URI (io.vertigo.dynamo.domain.model.URI)3 Account (io.vertigo.account.account.Account)2 AccountGroup (io.vertigo.account.account.AccountGroup)2 AccountStorePlugin (io.vertigo.account.impl.account.AccountStorePlugin)2 AbstractAccountStorePlugin (io.vertigo.account.plugins.account.store.AbstractAccountStorePlugin)2 Home (io.vertigo.app.Home)2 Criteria (io.vertigo.dynamo.criteria.Criteria)2 Criterions (io.vertigo.dynamo.criteria.Criterions)2 DtListURIForNNAssociation (io.vertigo.dynamo.domain.metamodel.association.DtListURIForNNAssociation)2 DtList (io.vertigo.dynamo.domain.model.DtList)2 DtListURI (io.vertigo.dynamo.domain.model.DtListURI)2 Entity (io.vertigo.dynamo.domain.model.Entity)2