Search in sources :

Example 16 with Entity

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

the class DbFileStorePlugin method create.

/**
 * {@inheritDoc}
 */
@Override
public FileInfo create(final FileInfo fileInfo) {
    checkReadonly();
    Assertion.checkNotNull(fileInfo.getURI() == null, "Only file without any id can be created.");
    checkDefinitionStoreBinding(fileInfo.getDefinition());
    // -----
    final Entity fileInfoDto = createFileInfoDto(fileInfo);
    // -----
    getStoreManager().getDataStore().create(fileInfoDto);
    // -----
    final Object fileInfoDtoId = DtObjectUtil.getId(fileInfoDto);
    Assertion.checkNotNull(fileInfoDtoId, "ID  du fichier doit être renseignée.");
    final FileInfoURI uri = new FileInfoURI(fileInfo.getDefinition(), fileInfoDtoId);
    fileInfo.setURIStored(uri);
    return fileInfo;
}
Also used : Entity(io.vertigo.dynamo.domain.model.Entity) FileInfoURI(io.vertigo.dynamo.domain.model.FileInfoURI)

Example 17 with Entity

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

the class DbFileStorePlugin method read.

/**
 * {@inheritDoc}
 */
@Override
public FileInfo read(final FileInfoURI uri) {
    Assertion.checkNotNull(uri);
    checkDefinitionStoreBinding(uri.getDefinition());
    // -----
    final URI<Entity> dtoUri = new URI<>(storeDtDefinition, uri.getKey());
    final Entity fileInfoDto = getStoreManager().getDataStore().readOne(dtoUri);
    final InputStreamBuilder inputStreamBuilder = new DataStreamInputStreamBuilder(getValue(fileInfoDto, DtoFields.FILE_DATA, DataStream.class));
    final String fileName = getValue(fileInfoDto, DtoFields.FILE_NAME, String.class);
    final String mimeType = getValue(fileInfoDto, DtoFields.MIME_TYPE, String.class);
    final Instant lastModified = getValue(fileInfoDto, DtoFields.LAST_MODIFIED, Instant.class);
    final Long length = getValue(fileInfoDto, DtoFields.LENGTH, Long.class);
    final VFile vFile = fileManager.createFile(fileName, mimeType, lastModified, length, inputStreamBuilder);
    return new DatabaseFileInfo(uri.getDefinition(), vFile);
}
Also used : Entity(io.vertigo.dynamo.domain.model.Entity) InputStreamBuilder(io.vertigo.dynamo.file.model.InputStreamBuilder) DataStream(io.vertigo.lang.DataStream) Instant(java.time.Instant) URI(io.vertigo.dynamo.domain.model.URI) FileInfoURI(io.vertigo.dynamo.domain.model.FileInfoURI) VFile(io.vertigo.dynamo.file.model.VFile)

Example 18 with Entity

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

the class TwoTablesDbFileStorePlugin method update.

/**
 * {@inheritDoc}
 */
@Override
public void update(final FileInfo fileInfo) {
    checkReadonly();
    checkDefinitionStoreBinding(fileInfo.getDefinition());
    Assertion.checkArgument(fileInfo.getURI() != null, "Only file with id can be updated");
    // -----
    final Entity fileMetadataDto = createMetaDataEntity(fileInfo);
    final Entity fileDataDto = createFileEntity(fileInfo);
    // -----
    setValue(fileMetadataDto, DtoFields.FMD_ID, fileInfo.getURI().getKey());
    // Chargement du FDT_ID
    final URI<Entity> dtoMetaDataUri = new URI<>(storeMetaDataDtDefinition, fileInfo.getURI().getKey());
    final DtObject fileMetadataDtoOld = getStoreManager().getDataStore().readOne(dtoMetaDataUri);
    final Object fdtId = getValue(fileMetadataDtoOld, DtoFields.FDT_ID, Object.class);
    setValue(fileMetadataDto, DtoFields.FDT_ID, fdtId);
    setValue(fileDataDto, DtoFields.FDT_ID, fdtId);
    getStoreManager().getDataStore().update(fileDataDto);
    getStoreManager().getDataStore().update(fileMetadataDto);
}
Also used : Entity(io.vertigo.dynamo.domain.model.Entity) DtObject(io.vertigo.dynamo.domain.model.DtObject) DtObject(io.vertigo.dynamo.domain.model.DtObject) URI(io.vertigo.dynamo.domain.model.URI) FileInfoURI(io.vertigo.dynamo.domain.model.FileInfoURI)

Example 19 with Entity

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

the class TwoTablesDbFileStorePlugin method read.

/**
 * {@inheritDoc}
 */
@Override
public FileInfo read(final FileInfoURI fileInfoUri) {
    checkDefinitionStoreBinding(fileInfoUri.getDefinition());
    // Ramène FileMetada
    final URI<Entity> dtoMetaDataUri = new URI<>(storeMetaDataDtDefinition, fileInfoUri.getKey());
    final DtObject fileMetadataDto = getStoreManager().getDataStore().readOne(dtoMetaDataUri);
    final Object fdtId = getValue(fileMetadataDto, DtoFields.FDT_ID, Object.class);
    // Ramène FileData
    final URI<Entity> dtoDataUri = new URI<>(storeFileDtDefinition, fdtId);
    final DtObject fileDataDto = getStoreManager().getDataStore().readOne(dtoDataUri);
    // Construction du vFile.
    final InputStreamBuilder inputStreamBuilder = new DataStreamInputStreamBuilder(getValue(fileDataDto, DtoFields.FILE_DATA, DataStream.class));
    final String fileName = getValue(fileMetadataDto, DtoFields.FILE_NAME, String.class);
    final String mimeType = getValue(fileMetadataDto, DtoFields.MIME_TYPE, String.class);
    final Instant lastModified = getValue(fileMetadataDto, DtoFields.LAST_MODIFIED, Instant.class);
    final Long length = getValue(fileMetadataDto, DtoFields.LENGTH, Long.class);
    final VFile vFile = fileManager.createFile(fileName, mimeType, lastModified, length, inputStreamBuilder);
    // TODO passer par une factory de FileInfo à partir de la FileInfoDefinition (comme DomainFactory)
    final FileInfo fileInfo = new DatabaseFileInfo(fileInfoUri.getDefinition(), vFile);
    fileInfo.setURIStored(fileInfoUri);
    return fileInfo;
}
Also used : Entity(io.vertigo.dynamo.domain.model.Entity) DataStream(io.vertigo.lang.DataStream) DtObject(io.vertigo.dynamo.domain.model.DtObject) Instant(java.time.Instant) URI(io.vertigo.dynamo.domain.model.URI) FileInfoURI(io.vertigo.dynamo.domain.model.FileInfoURI) VFile(io.vertigo.dynamo.file.model.VFile) FileInfo(io.vertigo.dynamo.file.model.FileInfo) InputStreamBuilder(io.vertigo.dynamo.file.model.InputStreamBuilder) DtObject(io.vertigo.dynamo.domain.model.DtObject)

Example 20 with Entity

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

the class FsFileStorePlugin method read.

/**
 * {@inheritDoc}
 */
@Override
public FileInfo read(final FileInfoURI uri) {
    // récupération de l'objet en base
    final URI<Entity> dtoUri = createDtObjectURI(uri);
    final DtObject fileInfoDto = getStoreManager().getDataStore().readOne(dtoUri);
    // récupération du fichier
    final String fileName = getValue(fileInfoDto, DtoFields.FILE_NAME, String.class);
    final String mimeType = getValue(fileInfoDto, DtoFields.MIME_TYPE, String.class);
    final Instant lastModified = getValue(fileInfoDto, DtoFields.LAST_MODIFIED, Instant.class);
    final Long length = getValue(fileInfoDto, DtoFields.LENGTH, Long.class);
    final String filePath = getValue(fileInfoDto, DtoFields.FILE_PATH, String.class);
    final InputStreamBuilder inputStreamBuilder = new FileInputStreamBuilder(new File(documentRoot + filePath));
    final VFile vFile = fileManager.createFile(fileName, mimeType, lastModified, length, inputStreamBuilder);
    // retourne le fileinfo avec le fichier et son URI
    final FsFileInfo fsFileInfo = new FsFileInfo(uri.getDefinition(), vFile);
    fsFileInfo.setURIStored(uri);
    return fsFileInfo;
}
Also used : Entity(io.vertigo.dynamo.domain.model.Entity) InputStreamBuilder(io.vertigo.dynamo.file.model.InputStreamBuilder) DtObject(io.vertigo.dynamo.domain.model.DtObject) Instant(java.time.Instant) VFile(io.vertigo.dynamo.file.model.VFile) File(java.io.File) VFile(io.vertigo.dynamo.file.model.VFile)

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