use of io.vertigo.dynamo.domain.model.DtObject in project vertigo by KleeGroup.
the class RamLuceneIndex method getStringValue.
private static String getStringValue(final DtObject dto, final DtField field) {
final String stringValue;
final Object value = field.getDataAccessor().getValue(dto);
if (value != null) {
if (field.getType() == DtField.FieldType.FOREIGN_KEY && getStoreManager().getMasterDataConfig().containsMasterData(field.getFkDtDefinition())) {
// TODO voir pour mise en cache de cette navigation
final DtListURIForMasterData mdlUri = getStoreManager().getMasterDataConfig().getDtListURIForMasterData(field.getFkDtDefinition());
final DtField displayField = mdlUri.getDtDefinition().getDisplayField().get();
final URI<Entity> uri = new URI<>(field.getFkDtDefinition(), value);
final DtObject fkDto = getStoreManager().getDataStore().readOne(uri);
final Object displayValue = displayField.getDataAccessor().getValue(fkDto);
stringValue = displayField.getDomain().valueToString(displayValue);
} else {
stringValue = String.valueOf(field.getDataAccessor().getValue(dto));
}
return stringValue.trim();
}
return null;
}
use of io.vertigo.dynamo.domain.model.DtObject in project vertigo by KleeGroup.
the class CollectionsManagerImpl method filter.
// =========================================================================
// =======================Filtrage==========================================
// =========================================================================
private <D extends DtObject> Predicate<D> filter(final FacetedQuery facetedQuery) {
final SelectedFacetValues selectedFacetValues = facetedQuery.getSelectedFacetValues();
Predicate<D> predicate = list -> true;
for (final FacetDefinition facetDefinition : facetedQuery.getDefinition().getFacetDefinitions()) {
if (!selectedFacetValues.getFacetValues(facetDefinition).isEmpty()) {
Predicate<D> predicateValue = list -> false;
for (final FacetValue facetValue : selectedFacetValues.getFacetValues(facetDefinition)) {
predicateValue = predicateValue.or(this.filter(facetValue.getListFilter()));
}
predicate = predicate.and(predicateValue);
}
}
return predicate;
}
use of io.vertigo.dynamo.domain.model.DtObject 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.model.DtObject in project vertigo by KleeGroup.
the class FacetedQueryResultJsonSerializerV4 method serializeHighLight.
private static JsonArray serializeHighLight(final DtList<?> dtList, final FacetedQueryResult<DtObject, ?> facetedQueryResult) {
final JsonArray jsonHighlightList = new JsonArray();
final Map<DtField, String> ccFieldNames = new HashMap<>();
for (final DtObject document : dtList) {
final Map<DtField, String> highlights = (facetedQueryResult).getHighlights(document);
final JsonObject jsonHighlight = new JsonObject();
for (final Map.Entry<DtField, String> entry : highlights.entrySet()) {
final String ccFieldName = obtainCcFieldName(entry.getKey(), ccFieldNames);
jsonHighlight.addProperty(ccFieldName, entry.getValue());
}
jsonHighlightList.add(jsonHighlight);
}
return jsonHighlightList;
}
use of io.vertigo.dynamo.domain.model.DtObject in project vertigo by KleeGroup.
the class GoogleJsonEngine method uiContextFromJson.
/**
* {@inheritDoc}
*/
@Override
public UiContext uiContextFromJson(final String json, final Map<String, Type> paramTypes) {
final UiContext result = new UiContext();
try {
final JsonElement jsonElement = new JsonParser().parse(json);
final JsonObject jsonObject = jsonElement.getAsJsonObject();
for (final Entry<String, Type> entry : paramTypes.entrySet()) {
final String key = entry.getKey();
final Type paramType = entry.getValue();
final JsonElement jsonSubElement = jsonObject.get(key);
final Serializable value;
if (WebServiceTypeUtil.isAssignableFrom(DtObject.class, paramType)) {
final Type typeOfDest = new KnownParameterizedType(UiObject.class, paramType);
value = gson.fromJson(jsonSubElement, typeOfDest);
} else if (WebServiceTypeUtil.isAssignableFrom(DtListDelta.class, paramType)) {
// we known that DtListDelta has one parameterized type
final Class<DtObject> dtoClass = (Class<DtObject>) ((ParameterizedType) paramType).getActualTypeArguments()[0];
final Type typeOfDest = new KnownParameterizedType(UiListDelta.class, dtoClass);
value = gson.fromJson(jsonSubElement, typeOfDest);
} else if (WebServiceTypeUtil.isAssignableFrom(DtList.class, paramType)) {
// we known that DtList has one parameterized type
final Class<DtObject> dtoClass = (Class<DtObject>) ((ParameterizedType) paramType).getActualTypeArguments()[0];
final Type typeOfDest = new KnownParameterizedType(UiListModifiable.class, dtoClass);
value = gson.fromJson(jsonSubElement, typeOfDest);
} else {
value = gson.fromJson(jsonSubElement, paramType);
}
result.put(key, value);
}
return result;
} catch (final IllegalStateException e) {
throw new JsonSyntaxException("JsonObject expected", e);
}
}
Aggregations