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