use of io.vertigo.dynamo.domain.metamodel.DtField in project vertigo by KleeGroup.
the class DtObjectComparator method createMasterDataComparator.
/**
* Fournit le comparateur à utiliser pour trier une colonne référenéant une MasterDataList.
* @return Comparator à utiliser pour trier la colonne.
*/
private static Comparator<Object> createMasterDataComparator(final boolean sortDesc, final StoreManager storeManager, final DtListURIForMasterData dtcURIForMasterData) {
Assertion.checkNotNull(storeManager);
Assertion.checkNotNull(dtcURIForMasterData);
// -----
final DataStore dataStore = storeManager.getDataStore();
final DtField mdFieldSort = dtcURIForMasterData.getDtDefinition().getSortField().get();
return new MasterDataComparator(dtcURIForMasterData, sortDesc, dataStore, mdFieldSort);
}
use of io.vertigo.dynamo.domain.metamodel.DtField in project vertigo by KleeGroup.
the class DtListPatternFilterUtil method createDtListFilterForPattern.
static <D extends DtObject> Predicate<D> createDtListFilterForPattern(final FilterPattern filterPattern, final String[] parsedFilter, final DtDefinition dtDefinition) {
Assertion.checkNotNull(filterPattern);
Assertion.checkNotNull(parsedFilter);
Assertion.checkNotNull(dtDefinition);
// -----
// Si on trouve un pattern, on passe sur du code spécifique
// attention parsedFilter[0] = filtre entier
final String fieldName = parsedFilter[1];
final DtField dtField = dtDefinition.getField(fieldName);
final DataType dataType = dtField.getDomain().getDataType();
switch(filterPattern) {
case Range:
return createDtListRangeFilter(parsedFilter, fieldName, dataType);
case Term:
return createDtListTermFilter(parsedFilter, fieldName, dataType);
default:
throw new VSystemException("La chaine de filtrage: {0} , ne respecte pas la syntaxe {1}.", parsedFilter[0], filterPattern.getPattern().pattern());
}
}
use of io.vertigo.dynamo.domain.metamodel.DtField 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);
}
use of io.vertigo.dynamo.domain.metamodel.DtField in project vertigo by KleeGroup.
the class DtObjectUtil method getId.
/**
* Returns the 'id' of a 'DtObject'.
* @param entity the entity
* @return the id of the specified 'DtObject'
*/
public static Object getId(final Entity entity) {
Assertion.checkNotNull(entity);
// -----
final DtDefinition dtDefinition = findDtDefinition(entity);
final DtField idField = dtDefinition.getIdField().get();
return idField.getDataAccessor().getValue(entity);
}
use of io.vertigo.dynamo.domain.metamodel.DtField in project vertigo by KleeGroup.
the class VegaUiObject method doGetTypedValue.
/**
* Récupération des données formatées.
*
* @param dtField Champ
* @return Valeur formatée (typée)
*/
private Object doGetTypedValue(final String fieldName) {
Assertion.checkArgNotEmpty(fieldName);
//
final DtField dtField = getDtField(fieldName);
if (isModified(fieldName)) {
// Si le tableaux des valeurs formatées n'a pas été créé la valeur est null.
return dtField.getDataAccessor().getValue(inputDto);
}
if (serverSideDto != null) {
return dtField.getDataAccessor().getValue(serverSideDto);
}
return null;
}
Aggregations