Search in sources :

Example 66 with DtField

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);
}
Also used : DataStore(io.vertigo.dynamo.store.datastore.DataStore) DtField(io.vertigo.dynamo.domain.metamodel.DtField)

Example 67 with DtField

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());
    }
}
Also used : DataType(io.vertigo.dynamo.domain.metamodel.DataType) VSystemException(io.vertigo.lang.VSystemException) DtField(io.vertigo.dynamo.domain.metamodel.DtField)

Example 68 with DtField

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);
}
Also used : DtDefinition(io.vertigo.dynamo.domain.metamodel.DtDefinition) DtObject(io.vertigo.dynamo.domain.model.DtObject) AssociationSimpleDefinition(io.vertigo.dynamo.domain.metamodel.association.AssociationSimpleDefinition) URI(io.vertigo.dynamo.domain.model.URI) DtField(io.vertigo.dynamo.domain.metamodel.DtField)

Example 69 with DtField

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);
}
Also used : DtDefinition(io.vertigo.dynamo.domain.metamodel.DtDefinition) DtField(io.vertigo.dynamo.domain.metamodel.DtField)

Example 70 with DtField

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;
}
Also used : DtField(io.vertigo.dynamo.domain.metamodel.DtField)

Aggregations

DtField (io.vertigo.dynamo.domain.metamodel.DtField)77 DtDefinition (io.vertigo.dynamo.domain.metamodel.DtDefinition)28 DtObject (io.vertigo.dynamo.domain.model.DtObject)14 DtList (io.vertigo.dynamo.domain.model.DtList)13 URI (io.vertigo.dynamo.domain.model.URI)12 HashMap (java.util.HashMap)11 Map (java.util.Map)8 TaskDefinition (io.vertigo.dynamo.task.metamodel.TaskDefinition)7 Task (io.vertigo.dynamo.task.model.Task)7 ArrayList (java.util.ArrayList)7 Entity (io.vertigo.dynamo.domain.model.Entity)6 TaskEngineSelect (io.vertigo.dynamox.task.TaskEngineSelect)6 Serializable (java.io.Serializable)6 LinkedHashMap (java.util.LinkedHashMap)6 List (java.util.List)6 MessageText (io.vertigo.core.locale.MessageText)5 FacetValue (io.vertigo.dynamo.collections.model.FacetValue)5 Date (java.util.Date)4 SearchHit (org.elasticsearch.search.SearchHit)4 JsonObject (com.google.gson.JsonObject)3