Search in sources :

Example 1 with DslDefinitionBuilder

use of io.vertigo.dynamo.plugins.environment.dsl.dynamic.DslDefinitionBuilder in project vertigo by KleeGroup.

the class AnnotationLoader method parseDtDefinition.

private static void parseDtDefinition(final Class<DtObject> clazz, final DtStereotype stereotype, final String dtDefinitionName, final String packageName, final DslDefinitionRepository dynamicModelRepository) {
    final DslDefinitionBuilder dtDefinitionBuilder = DslDefinition.builder(dtDefinitionName, DomainGrammar.DT_DEFINITION_ENTITY).withPackageName(packageName).addPropertyValue(STEREOTYPE, stereotype.name());
    // Only Persistent stereotypes have a dataspace => Fragment got it from parent
    if (stereotype.isPersistent()) {
        dtDefinitionBuilder.addPropertyValue(DATA_SPACE, parseDataSpaceAnnotation(clazz));
    }
    parseDynamicDefinitionBuilder(clazz, dtDefinitionBuilder, dynamicModelRepository);
}
Also used : DslDefinitionBuilder(io.vertigo.dynamo.plugins.environment.dsl.dynamic.DslDefinitionBuilder)

Example 2 with DslDefinitionBuilder

use of io.vertigo.dynamo.plugins.environment.dsl.dynamic.DslDefinitionBuilder in project vertigo by KleeGroup.

the class DslInnerDefinitionRule method handle.

@Override
protected DslDefinitionEntry handle(final List<Object> parsing) {
    // Dans le cas des sous définition :: field [PRD_XXX]
    final String definitionName = (String) parsing.get(2);
    final DslDefinitionBody definitionBody = (DslDefinitionBody) parsing.get(4);
    final DslDefinitionBuilder dslDefinitionBuilder = DslDefinition.builder(definitionName, entity);
    populateDefinition(definitionBody, dslDefinitionBuilder);
    // ---
    return new DslDefinitionEntry(entityName, dslDefinitionBuilder.build());
}
Also used : DslDefinitionBody(io.vertigo.dynamo.plugins.environment.loaders.kpr.definition.DslDefinitionBody) DslDefinitionBuilder(io.vertigo.dynamo.plugins.environment.dsl.dynamic.DslDefinitionBuilder) DslDefinitionEntry(io.vertigo.dynamo.plugins.environment.loaders.kpr.definition.DslDefinitionEntry)

Example 3 with DslDefinitionBuilder

use of io.vertigo.dynamo.plugins.environment.dsl.dynamic.DslDefinitionBuilder in project vertigo by KleeGroup.

the class AnnotationLoader method parseFragment.

private static void parseFragment(final Class<DtObject> clazz, final String fragmentOf, final String dtDefinitionName, final String packageName, final DslDefinitionRepository dynamicModelRepository) {
    final DslDefinitionBuilder dtDefinitionBuilder = DslDefinition.builder(dtDefinitionName, DomainGrammar.FRAGMENT_ENTITY).withPackageName(packageName).addDefinitionLink("from", fragmentOf);
    parseDynamicDefinitionBuilder(clazz, dtDefinitionBuilder, dynamicModelRepository);
}
Also used : DslDefinitionBuilder(io.vertigo.dynamo.plugins.environment.dsl.dynamic.DslDefinitionBuilder)

Example 4 with DslDefinitionBuilder

use of io.vertigo.dynamo.plugins.environment.dsl.dynamic.DslDefinitionBuilder in project vertigo by KleeGroup.

the class AbstractXmlLoader method toDynamicDefinition.

private static DslDefinition toDynamicDefinition(final XmlAssociation association, final DslDefinitionRepository dynamicModelrepository) {
    final DslEntity associationEntity = DomainGrammar.ASSOCIATION_ENTITY;
    final DslEntity associationNNEntity = DomainGrammar.ASSOCIATION_NN_ENTITY;
    final String name = association.getCode().toUpperCase(Locale.ENGLISH);
    // On regarde si on est dans le cas d'une association simple ou multiple
    final boolean isAssociationNN = AssociationUtil.isMultiple(association.getMultiplicityA()) && AssociationUtil.isMultiple(association.getMultiplicityB());
    final DslEntity dynamicMetaDefinition;
    if (isAssociationNN) {
        dynamicMetaDefinition = associationNNEntity;
    } else {
        dynamicMetaDefinition = associationEntity;
    }
    // On crée l'association
    final DslDefinitionBuilder associationDefinitionBuilder = DslDefinition.builder(name, dynamicMetaDefinition).withPackageName(association.getPackageName()).addPropertyValue(KspProperty.NAVIGABILITY_A, association.isNavigableA()).addPropertyValue(KspProperty.NAVIGABILITY_B, association.isNavigableB()).addPropertyValue(KspProperty.LABEL_A, association.getRoleLabelA()).addPropertyValue(KspProperty.ROLE_A, XmlUtil.french2Java(association.getRoleLabelA())).addPropertyValue(KspProperty.LABEL_B, association.getRoleLabelB()).addPropertyValue(KspProperty.ROLE_B, XmlUtil.french2Java(association.getRoleLabelB())).addDefinitionLink("dtDefinitionA", getDtDefinitionName(association.getCodeA())).addDefinitionLink("dtDefinitionB", getDtDefinitionName(association.getCodeB()));
    if (isAssociationNN) {
        // Dans le cas d'une association NN il faut établir le nom de la table intermédiaire qui porte les relations
        final String tableName = association.getCode();
        associationDefinitionBuilder.addPropertyValue(KspProperty.TABLE_NAME, tableName);
        LOGGER.trace("isAssociationNN:Code=" + association.getCode());
    } else {
        LOGGER.trace("!isAssociationNN:Code=" + association.getCode());
        // Dans le cas d'une NN ses deux propriétés sont redondantes ;
        // elles ne font donc pas partie de la définition d'une association de type NN
        associationDefinitionBuilder.addPropertyValue(KspProperty.MULTIPLICITY_A, association.getMultiplicityA()).addPropertyValue(KspProperty.MULTIPLICITY_B, association.getMultiplicityB()).addPropertyValue(KspProperty.FK_FIELD_NAME, buildFkFieldName(association, dynamicModelrepository));
    }
    return associationDefinitionBuilder.build();
}
Also used : DslEntity(io.vertigo.dynamo.plugins.environment.dsl.entity.DslEntity) DslDefinitionBuilder(io.vertigo.dynamo.plugins.environment.dsl.dynamic.DslDefinitionBuilder)

Example 5 with DslDefinitionBuilder

use of io.vertigo.dynamo.plugins.environment.dsl.dynamic.DslDefinitionBuilder in project vertigo by KleeGroup.

the class AbstractXmlLoader method toDynamicDefinition.

private static DslDefinition toDynamicDefinition(final XmlClass clazz) {
    final DslEntity dtDefinitionEntity = DomainGrammar.DT_DEFINITION_ENTITY;
    final DslDefinitionBuilder dtDefinitionBuilder = DslDefinition.builder(getDtDefinitionName(clazz.getCode()), dtDefinitionEntity).withPackageName(clazz.getPackageName()).addPropertyValue(KspProperty.STEREOTYPE, clazz.getStereotype());
    for (final XmlAttribute attribute : clazz.getKeyAttributes()) {
        final DslDefinition dtField = toDynamicDefinition(attribute);
        dtDefinitionBuilder.addChildDefinition(DomainGrammar.ID, dtField);
    }
    for (final XmlAttribute tagAttribute : clazz.getFieldAttributes()) {
        final DslDefinition dtField = toDynamicDefinition(tagAttribute);
        dtDefinitionBuilder.addChildDefinition(DomainGrammar.FIELD, dtField);
    }
    return dtDefinitionBuilder.build();
}
Also used : DslDefinition(io.vertigo.dynamo.plugins.environment.dsl.dynamic.DslDefinition) DslEntity(io.vertigo.dynamo.plugins.environment.dsl.entity.DslEntity) DslDefinitionBuilder(io.vertigo.dynamo.plugins.environment.dsl.dynamic.DslDefinitionBuilder)

Aggregations

DslDefinitionBuilder (io.vertigo.dynamo.plugins.environment.dsl.dynamic.DslDefinitionBuilder)5 DslEntity (io.vertigo.dynamo.plugins.environment.dsl.entity.DslEntity)2 DslDefinition (io.vertigo.dynamo.plugins.environment.dsl.dynamic.DslDefinition)1 DslDefinitionBody (io.vertigo.dynamo.plugins.environment.loaders.kpr.definition.DslDefinitionBody)1 DslDefinitionEntry (io.vertigo.dynamo.plugins.environment.loaders.kpr.definition.DslDefinitionEntry)1