Search in sources :

Example 36 with URI

use of io.vertigo.dynamo.domain.model.URI in project vertigo by KleeGroup.

the class SearchManagerImpl method onEvent.

/**
 * Receive Store event.
 * @param storeEvent Store event
 */
@EventBusSubscribed
public void onEvent(final StoreEvent storeEvent) {
    final URI uri = storeEvent.getUri();
    // On ne traite l'event que si il porte sur un KeyConcept
    if (uri.getDefinition().getStereotype() == DtStereotype.KeyConcept && hasIndexDefinitionByKeyConcept(uri.getDefinition())) {
        final List<URI<? extends KeyConcept>> list = Collections.singletonList(uri);
        markAsDirty(list);
    }
}
Also used : KeyConcept(io.vertigo.dynamo.domain.model.KeyConcept) URI(io.vertigo.dynamo.domain.model.URI) EventBusSubscribed(io.vertigo.commons.eventbus.EventBusSubscribed)

Example 37 with URI

use of io.vertigo.dynamo.domain.model.URI 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 38 with URI

use of io.vertigo.dynamo.domain.model.URI in project vertigo by KleeGroup.

the class DtObjectUtil method createURI.

/**
 * Creates an URI from an existing object.
 * @param entity Object
 * @return this object URI
 */
public static <E extends Entity> URI<E> createURI(final E entity) {
    Assertion.checkNotNull(entity);
    // -----
    final DtDefinition dtDefinition = findDtDefinition(entity);
    return new URI<>(dtDefinition, DtObjectUtil.getId(entity));
}
Also used : DtDefinition(io.vertigo.dynamo.domain.metamodel.DtDefinition) URI(io.vertigo.dynamo.domain.model.URI)

Aggregations

URI (io.vertigo.dynamo.domain.model.URI)38 DtDefinition (io.vertigo.dynamo.domain.metamodel.DtDefinition)21 DtField (io.vertigo.dynamo.domain.metamodel.DtField)11 Entity (io.vertigo.dynamo.domain.model.Entity)10 ArrayList (java.util.ArrayList)10 DtObject (io.vertigo.dynamo.domain.model.DtObject)9 SearchIndexDefinition (io.vertigo.dynamo.search.metamodel.SearchIndexDefinition)8 DtListURI (io.vertigo.dynamo.domain.model.DtListURI)7 VTransactionWritable (io.vertigo.commons.transaction.VTransactionWritable)6 DtList (io.vertigo.dynamo.domain.model.DtList)5 Account (io.vertigo.account.account.Account)4 AccountGroup (io.vertigo.account.account.AccountGroup)4 Home (io.vertigo.app.Home)4 AssociationNNDefinition (io.vertigo.dynamo.domain.metamodel.association.AssociationNNDefinition)4 FileInfoURI (io.vertigo.dynamo.domain.model.FileInfoURI)4 KeyConcept (io.vertigo.dynamo.domain.model.KeyConcept)4 VFile (io.vertigo.dynamo.file.model.VFile)4 SearchIndex (io.vertigo.dynamo.search.model.SearchIndex)4 TaskDefinition (io.vertigo.dynamo.task.metamodel.TaskDefinition)4 Task (io.vertigo.dynamo.task.model.Task)4