Search in sources :

Example 1 with FieldType

use of io.vertigo.dynamo.domain.metamodel.DtField.FieldType in project vertigo by KleeGroup.

the class AnnotationLoader method parseAnnotation.

/*
	 * Centralisation du parsing des annotations liées à un champ.
	 */
private static void parseAnnotation(final String fieldName, final DslDefinitionBuilder dtDefinition, final io.vertigo.dynamo.domain.stereotype.Field field) {
    // Si on trouve un domaine on est dans un objet dynamo.
    final FieldType type = FieldType.valueOf(field.type());
    final DslDefinition dtField = DslDefinition.builder(fieldName, DomainGrammar.DT_FIELD_ENTITY).addDefinitionLink("domain", field.domain()).addPropertyValue(LABEL, field.label()).addPropertyValue(NOT_NULL, field.required()).addPropertyValue(PERSISTENT, field.persistent()).build();
    switch(type) {
        case ID:
            dtDefinition.addChildDefinition(DomainGrammar.ID, dtField);
            break;
        case DATA:
            dtDefinition.addChildDefinition("field", dtField);
            break;
        case COMPUTED:
            // Valeurs renseignées automatiquement parce que l'on est dans le cas d'un champ calculé
            dtDefinition.addChildDefinition("computed", dtField);
            break;
        case FOREIGN_KEY:
            // on ne fait rien puisque le champ est défini par une association.
            break;
        default:
            throw new IllegalArgumentException("case " + type + " not implemented");
    }
}
Also used : DslDefinition(io.vertigo.dynamo.plugins.environment.dsl.dynamic.DslDefinition) FieldType(io.vertigo.dynamo.domain.metamodel.DtField.FieldType)

Aggregations

FieldType (io.vertigo.dynamo.domain.metamodel.DtField.FieldType)1 DslDefinition (io.vertigo.dynamo.plugins.environment.dsl.dynamic.DslDefinition)1