Search in sources :

Example 11 with Entity

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

the class TaskEngineInsertWithGeneratedKeys method doExecute.

/**
 * {@inheritDoc}
 */
@Override
public OptionalInt doExecute(final SqlStatement sqlStatement, final SqlConnection connection) throws SQLException {
    Assertion.checkNotNull(sqlStatement);
    Assertion.checkNotNull(connection);
    // --
    final GenerationMode generationMode = connection.getDataBase().getSqlDialect().getGenerationMode();
    // gestion de generatedKey
    final Entity entity = getValue("DTO");
    final DtDefinition dtDefinition = DtObjectUtil.findDtDefinition(entity);
    final DtField idField = dtDefinition.getIdField().get();
    final Tuples.Tuple2<Integer, ?> result = getDataBaseManager().executeUpdateWithGeneratedKey(sqlStatement, generationMode, idField.getName(), idField.getDomain().getJavaClass(), connection);
    final Object id = result.getVal2();
    idField.getDataAccessor().setValue(entity, id);
    // ---
    return /*sqlRowcount*/
    OptionalInt.of(result.getVal1());
}
Also used : Entity(io.vertigo.dynamo.domain.model.Entity) GenerationMode(io.vertigo.database.sql.vendor.SqlDialect.GenerationMode) Tuples(io.vertigo.lang.Tuples) DtDefinition(io.vertigo.dynamo.domain.metamodel.DtDefinition) DtField(io.vertigo.dynamo.domain.metamodel.DtField)

Example 12 with Entity

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

the class StoreAccountStorePlugin method getAccount.

/**
 * {@inheritDoc}
 */
@Override
public Account getAccount(final URI<Account> accountURI) {
    final URI<Entity> userURI = new URI(getUserDtDefinition(), accountURI.getId());
    final Entity userEntity = storeManager.getDataStore().readOne(userURI);
    return userToAccount(userEntity);
}
Also used : Entity(io.vertigo.dynamo.domain.model.Entity) URI(io.vertigo.dynamo.domain.model.URI) DtListURI(io.vertigo.dynamo.domain.model.DtListURI)

Example 13 with Entity

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

the class StoreAccountStorePlugin method getGroup.

/**
 * {@inheritDoc}
 */
@Override
public AccountGroup getGroup(final URI<AccountGroup> accountGroupURI) {
    final URI<Entity> groupURI = new URI(userGroupDtDefinition, accountGroupURI.getId());
    final Entity groupEntity = storeManager.getDataStore().readOne(groupURI);
    return groupToAccount(groupEntity);
}
Also used : Entity(io.vertigo.dynamo.domain.model.Entity) URI(io.vertigo.dynamo.domain.model.URI) DtListURI(io.vertigo.dynamo.domain.model.DtListURI)

Example 14 with Entity

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

the class BrokerBatchImpl method getMapByField.

/**
 * {@inheritDoc}
 */
@Override
public <O> Map<O, DtList<E>> getMapByField(final DtDefinition dtDefinition, final String fieldName, final Collection<O> value) {
    Assertion.checkNotNull(dtDefinition);
    Assertion.checkNotNull(fieldName);
    // -----
    final DtField field = dtDefinition.getField(fieldName);
    final Map<O, DtList<E>> map = new HashMap<>();
    for (final E entity : getListByField(dtDefinition, fieldName, value)) {
        final O key = (O) field.getDataAccessor().getValue(entity);
        map.computeIfAbsent(key, k -> new DtList<>(dtDefinition)).add(entity);
    }
    return map;
}
Also used : DtField(io.vertigo.dynamo.domain.metamodel.DtField) TaskDefinition(io.vertigo.dynamo.task.metamodel.TaskDefinition) DtDefinition(io.vertigo.dynamo.domain.metamodel.DtDefinition) DtObjectUtil(io.vertigo.dynamo.domain.util.DtObjectUtil) Collection(java.util.Collection) HashMap(java.util.HashMap) Domain(io.vertigo.dynamo.domain.metamodel.Domain) Task(io.vertigo.dynamo.task.model.Task) DtList(io.vertigo.dynamo.domain.model.DtList) Definition(io.vertigo.core.definition.Definition) ArrayList(java.util.ArrayList) Home(io.vertigo.app.Home) List(java.util.List) Entity(io.vertigo.dynamo.domain.model.Entity) DefinitionUtil(io.vertigo.core.definition.DefinitionUtil) TaskManager(io.vertigo.dynamo.task.TaskManager) Map(java.util.Map) TaskEngineSelect(io.vertigo.dynamox.task.TaskEngineSelect) Assertion(io.vertigo.lang.Assertion) HashMap(java.util.HashMap) DtList(io.vertigo.dynamo.domain.model.DtList) DtField(io.vertigo.dynamo.domain.metamodel.DtField)

Example 15 with Entity

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

the class CacheData method putDtList.

/**
 * Mise à jour du cache pour un type d'objet.
 * @param dtc DTC
 */
void putDtList(final DtList<? extends Entity> dtc) {
    Assertion.checkNotNull(dtc);
    // -----
    final String context = getContext(dtc.getDefinition());
    // 1.On met à jour les objets
    for (final Entity entity : dtc) {
        cacheManager.put(context, entity.getURI(), entity);
    }
    // 2.Puis on met à jour la liste racine : pour que la liste ne soit pas evincée par les objets
    cacheManager.put(context, dtc.getURI(), dtc);
}
Also used : Entity(io.vertigo.dynamo.domain.model.Entity)

Aggregations

Entity (io.vertigo.dynamo.domain.model.Entity)26 DtObject (io.vertigo.dynamo.domain.model.DtObject)10 URI (io.vertigo.dynamo.domain.model.URI)10 VFile (io.vertigo.dynamo.file.model.VFile)10 DtField (io.vertigo.dynamo.domain.metamodel.DtField)7 FileInfoURI (io.vertigo.dynamo.domain.model.FileInfoURI)7 DtDefinition (io.vertigo.dynamo.domain.metamodel.DtDefinition)5 DtList (io.vertigo.dynamo.domain.model.DtList)4 DtListURI (io.vertigo.dynamo.domain.model.DtListURI)4 Instant (java.time.Instant)4 Home (io.vertigo.app.Home)3 Criterions (io.vertigo.dynamo.criteria.Criterions)3 InputStreamBuilder (io.vertigo.dynamo.file.model.InputStreamBuilder)3 Assertion (io.vertigo.lang.Assertion)3 Optional (java.util.Optional)3 Set (java.util.Set)3 Inject (javax.inject.Inject)3 Account (io.vertigo.account.account.Account)2 AccountGroup (io.vertigo.account.account.AccountGroup)2 AccountMapperHelper (io.vertigo.account.impl.account.AccountMapperHelper)2