Class FileProvidingEntityAdapter<Entity extends IFileProviding<File,Data>, File extends IFileEntity<Entity,Data> & IFileSizeProviding, Data extends IFileDataEntity<File>, Context>
java.lang.Object
de.xima.fc.logic.filesystem.FileProvidingEntityAdapter<Entity,File,Data,Context>
- Type Parameters:
Entity- The type of the entity.File- The type of the file entity.Data- The type of the file data entity.Context- The type of the context for the entities.
- All Implemented Interfaces:
ICrudPersistenceAdapter<IEntityContext, Entity>, IFileDataPersistenceAdapter<IEntityContext, Entity>, IScopedEntityPersistenceAdapter<IEntityContext, Entity, Context>, IEntityFileSystemPersistenceAdapter<IEntityContext, Entity, Context>, Serializable
public abstract class FileProvidingEntityAdapter<Entity extends IFileProviding<File,Data>, File extends IFileEntity<Entity,Data> & IFileSizeProviding, Data extends IFileDataEntity<File>, Context>
extends Object
implements IEntityFileSystemPersistenceAdapter<IEntityContext, Entity, Context>
A
file entity adapter for a general file providing entity.- Since:
- 8.3.0
- Author:
- XIMA MEDIA GmbH
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionFileProvidingEntityAdapter(Class<Entity> entityType, Class<File> fileEntityType, Class<Data> fileDataEntityType) Creates afile entity adapterfor a generalfile providingentity. -
Method Summary
Modifier and TypeMethodDescriptionfinal Entitycreate(IEntityContext ec, Entity entity) Persists the file entity in the database and returns the persisted entity.protected abstract de.xima.cmn.criteria.FilterCriterioncreateContextualFilter(Context context) final voiddelete(IEntityContext ec, Entity entity) Deletes the file entity and all its children (such as file data).list(IEntityContext ec, Context context) Reads all file entities that exist in the given context.final InputStreamopenForRead(Supplier<IEntityContext> ec, Entity entity) Opens an input stream to the content of a file entity.final OutputStreamopenForWrite(Supplier<IEntityContext> ec, Entity entity) Opens an output stream for changing the content of a file entity.final Entityread(IEntityContext ec, Entity entity) Reads the entity from the persistence layer, returning a fresh version of the entity.final Entityupdate(IEntityContext ec, Entity entity) Updates the file entity in the persistence layer and returns the updated entity.
-
Constructor Details
-
FileProvidingEntityAdapter
public FileProvidingEntityAdapter(Class<Entity> entityType, Class<File> fileEntityType, Class<Data> fileDataEntityType) Creates afile entity adapterfor a generalfile providingentity.- Parameters:
entityType- The type of the entity.fileEntityType- The type of the file entity.fileDataEntityType- The type of the file data entity.
-
-
Method Details
-
create
Description copied from interface:ICrudPersistenceAdapterPersists the file entity in the database and returns the persisted entity.- Specified by:
createin interfaceICrudPersistenceAdapter<Entity extends IFileProviding<File,Data>, File extends IFileEntity<Entity, Data> & IFileSizeProviding> - Parameters:
ec- Persistence context to use for accessing the database.entity- The entity to create.- Returns:
- The persisted entity.
-
delete
Description copied from interface:ICrudPersistenceAdapterDeletes the file entity and all its children (such as file data).- Specified by:
deletein interfaceICrudPersistenceAdapter<Entity extends IFileProviding<File,Data>, File extends IFileEntity<Entity, Data> & IFileSizeProviding> - Parameters:
ec- Persistence context to use for accessing the persistence layer.entity- The entity to delete.
-
openForRead
Description copied from interface:IFileDataPersistenceAdapterOpens an input stream to the content of a file entity.- Specified by:
openForReadin interfaceIFileDataPersistenceAdapter<Entity extends IFileProviding<File,Data>, File extends IFileEntity<Entity, Data> & IFileSizeProviding> - Parameters:
ec- Persistence context factory to use for accessing the persistence layer.entity- The entity to open.- Returns:
- An input stream to the file content.
- Throws:
IOException- If an error occurs while opening the file.
-
openForWrite
public final OutputStream openForWrite(Supplier<IEntityContext> ec, Entity entity) throws IOException Description copied from interface:IFileDataPersistenceAdapterOpens an output stream for changing the content of a file entity. This should also update the file metadata, such as the user who last modified the file and the last modified time.- Specified by:
openForWritein interfaceIFileDataPersistenceAdapter<Entity extends IFileProviding<File,Data>, File extends IFileEntity<Entity, Data> & IFileSizeProviding> - Parameters:
ec- Persistence context factory to use for accessing the persistence layer.entity- The entity to open.- Returns:
- An output stream to the file content.
- Throws:
IOException- If an error occurs while opening the file.
-
read
Description copied from interface:ICrudPersistenceAdapterReads the entity from the persistence layer, returning a fresh version of the entity.- Specified by:
readin interfaceICrudPersistenceAdapter<Entity extends IFileProviding<File,Data>, File extends IFileEntity<Entity, Data> & IFileSizeProviding> - Parameters:
ec- Persistence context to use for accessing the persistence layer.entity- The entity to read.- Returns:
- The entity read from the persistence layer.
-
list
Description copied from interface:IScopedEntityPersistenceAdapterReads all file entities that exist in the given context.- Specified by:
listin interfaceIScopedEntityPersistenceAdapter<Entity extends IFileProviding<File,Data>, File extends IFileEntity<Entity, Data> & IFileSizeProviding, Data extends IFileDataEntity<File>> - Parameters:
ec- Persistence context to use for accessing the persistence layer.context- The context in which to read the entities, such as a client or project.- Returns:
- A list of all file entities in the context.
-
update
Description copied from interface:ICrudPersistenceAdapterUpdates the file entity in the persistence layer and returns the updated entity.- Specified by:
updatein interfaceICrudPersistenceAdapter<Entity extends IFileProviding<File,Data>, File extends IFileEntity<Entity, Data> & IFileSizeProviding> - Parameters:
ec- Persistence context to use for accessing the database.entity- The entity to update.- Returns:
- The updated entity.
-
createContextualFilter
-