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());
}
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);
}
Aggregations