use of io.vertigo.dynamo.domain.metamodel.association.AssociationSimpleDefinition in project vertigo by KleeGroup.
the class EAXmiTestParserAA method testAssoctationA1vBnv.
/**
* Test d'une relation A1v - Bnv.
*/
@Test
public void testAssoctationA1vBnv() {
final AssociationSimpleDefinition association = getAssociationSimpleDefinition("A_CHI_CHI_2");
/* "0..1" */
Assert.assertFalse(association.getAssociationNodeA().isMultiple());
Assert.assertFalse(association.getAssociationNodeA().isNotNull());
/* "0..*" */
Assert.assertTrue(association.getAssociationNodeB().isMultiple());
Assert.assertFalse(association.getAssociationNodeB().isNotNull());
Assert.assertEquals("R2A", association.getAssociationNodeA().getRole());
Assert.assertEquals("R2B", 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 EAXmiTestParserAA method testAssoctationA1Bnv.
/**
* Test d'une relation A1 - Bnv.
*/
@Test
public void testAssoctationA1Bnv() {
final AssociationSimpleDefinition association = getAssociationSimpleDefinition("A_CHI_CHI_1");
Assert.assertNotNull(association);
/* "0..1" */
Assert.assertFalse(association.getAssociationNodeA().isMultiple());
Assert.assertFalse(association.getAssociationNodeA().isNotNull());
/* "0..*" */
Assert.assertTrue(association.getAssociationNodeB().isMultiple());
Assert.assertFalse(association.getAssociationNodeB().isNotNull());
Assert.assertEquals("R1A", association.getAssociationNodeA().getRole());
Assert.assertEquals("R1B", association.getAssociationNodeB().getRole());
Assert.assertFalse(association.getAssociationNodeA().isNavigable());
Assert.assertTrue(association.getAssociationNodeB().isNavigable());
}
use of io.vertigo.dynamo.domain.metamodel.association.AssociationSimpleDefinition in project vertigo by KleeGroup.
the class EAXmiTestParserAA method testAssoctationAnvB1.
/**
* Test d'une relation Anv - B1.
*/
@Test
public void testAssoctationAnvB1() {
final AssociationSimpleDefinition association = getAssociationSimpleDefinition("A_CHI_CHI_5");
/* "0..*" */
Assert.assertTrue(association.getAssociationNodeA().isMultiple());
Assert.assertFalse(association.getAssociationNodeA().isNotNull());
/* "0..*" */
Assert.assertFalse(association.getAssociationNodeB().isMultiple());
Assert.assertFalse(association.getAssociationNodeB().isNotNull());
Assert.assertEquals("R5A", association.getAssociationNodeA().getRole());
Assert.assertEquals("R5B", association.getAssociationNodeB().getRole());
Assert.assertTrue(association.getAssociationNodeA().isNavigable());
Assert.assertFalse(association.getAssociationNodeB().isNavigable());
}
use of io.vertigo.dynamo.domain.metamodel.association.AssociationSimpleDefinition in project vertigo by KleeGroup.
the class StoreAccountStorePlugin method getGroupURIs.
/**
* {@inheritDoc}
*/
@Override
public Set<URI<AccountGroup>> getGroupURIs(final URI<Account> accountURI) {
if (associationUserGroup instanceof AssociationSimpleDefinition) {
// case 1 group per user
final URI<Entity> userURI = new URI(getUserDtDefinition(), accountURI.getId());
final Entity userEntity = storeManager.getDataStore().readOne(userURI);
final Object fkValue = ((AssociationSimpleDefinition) associationUserGroup).getFKField().getDataAccessor().getValue(userEntity);
final URI<AccountGroup> groupURI = new URI(userGroupDtDefinition, fkValue);
return Collections.singleton(groupURI);
}
// case N group per user
// other case checked in postStart by assertions
Assertion.checkArgument(associationUserGroup instanceof AssociationNNDefinition, "Association ({0}) between User and Group must be an AssociationSimpleDefinition or an AssociationNNDefinition", associationUserGroup.getName());
final DtListURI groupDtListURI = new DtListURIForNNAssociation((AssociationNNDefinition) associationUserGroup, accountURI, associationGroupRoleName);
// -----
final DtList<? extends Entity> result = Home.getApp().getComponentSpace().resolve(StoreManager.class).getDataStore().findAll(groupDtListURI);
return result.stream().map(groupEntity -> groupToAccount(groupEntity).getURI()).collect(Collectors.toSet());
}
use of io.vertigo.dynamo.domain.metamodel.association.AssociationSimpleDefinition in project vertigo by KleeGroup.
the class StoreAccountStorePlugin method getAccountURIs.
/**
* {@inheritDoc}
*/
@Override
public Set<URI<Account>> getAccountURIs(final URI<AccountGroup> groupURI) {
final DtListURI userDtListURI;
if (associationUserGroup instanceof AssociationSimpleDefinition) {
userDtListURI = new DtListURIForSimpleAssociation((AssociationSimpleDefinition) associationUserGroup, groupURI, associationUserRoleName);
} else {
// autres cas éliminés par assertion dans le postStart
Assertion.checkArgument(associationUserGroup instanceof AssociationNNDefinition, "Association ({0}) between User and Group must be an AssociationSimpleDefinition or an AssociationNNDefinition", associationUserGroup.getName());
userDtListURI = new DtListURIForNNAssociation((AssociationNNDefinition) associationUserGroup, groupURI, associationUserRoleName);
}
// -----
final DtList<? extends Entity> result = Home.getApp().getComponentSpace().resolve(StoreManager.class).getDataStore().findAll(userDtListURI);
return result.stream().map(userEntity -> userToAccount(userEntity).getURI()).collect(Collectors.toSet());
}
Aggregations