@Component(value="cuba_FileStorage") public class FileStorage extends java.lang.Object implements FileStorageAPI
Modifier and Type | Field and Description |
---|---|
protected Configuration |
configuration |
protected boolean |
isImmutableFileStorage |
protected java.io.File[] |
storageRoots |
protected TimeSource |
timeSource |
protected UserSessionSource |
userSessionSource |
protected java.util.concurrent.ExecutorService |
writeExecutor |
NAME
Constructor and Description |
---|
FileStorage() |
Modifier and Type | Method and Description |
---|---|
protected void |
checkDirectoryExists(java.io.File dir) |
protected void |
checkFileDescriptor(FileDescriptor fd) |
protected void |
checkFileExists(java.io.File file) |
protected void |
checkPrimaryStorageAccessible(java.io.File[] roots,
FileDescriptor fileDescr) |
protected void |
checkStorageDefined(java.io.File[] roots,
FileDescriptor fileDescr) |
boolean |
fileExists(FileDescriptor fileDescr)
Tests whether the file denoted by this file descriptor exists.
|
static java.lang.String |
getFileName(FileDescriptor fileDescriptor) |
java.io.File |
getStorageDir(java.io.File rootDir,
FileDescriptor fileDescriptor)
INTERNAL.
|
java.io.File[] |
getStorageRoots()
INTERNAL.
|
void |
init() |
byte[] |
loadFile(FileDescriptor fileDescr)
Load a file contents into byte array.
|
java.io.InputStream |
openStream(FileDescriptor fileDescr)
Return an input stream to load a file contents.
|
void |
removeFile(FileDescriptor fileDescr)
Remove a file from the file storage.
|
void |
saveFile(FileDescriptor fileDescr,
byte[] data)
Save a byte array into file storage.
|
long |
saveStream(FileDescriptor fileDescr,
java.io.InputStream inputStream)
Save an InputStream contents into file storage.
|
protected void |
stopWriteExecutor() |
protected void |
writeLog(java.io.File file,
boolean remove) |
@Inject protected UserSessionSource userSessionSource
@Inject protected TimeSource timeSource
@Inject protected Configuration configuration
protected boolean isImmutableFileStorage
protected java.util.concurrent.ExecutorService writeExecutor
protected volatile java.io.File[] storageRoots
@PostConstruct public void init()
public java.io.File[] getStorageRoots()
public long saveStream(FileDescriptor fileDescr, java.io.InputStream inputStream) throws FileStorageException
FileStorageAPI
saveStream
in interface FileStorageAPI
fileDescr
- file descriptorinputStream
- input stream, must be closed in the calling codeFileStorageException
- if something goes wrongprotected void checkFileExists(java.io.File file) throws FileStorageException
FileStorageException
protected void checkDirectoryExists(java.io.File dir) throws FileStorageException
FileStorageException
protected void checkPrimaryStorageAccessible(java.io.File[] roots, FileDescriptor fileDescr) throws FileStorageException
FileStorageException
protected void checkStorageDefined(java.io.File[] roots, FileDescriptor fileDescr) throws FileStorageException
FileStorageException
public void saveFile(FileDescriptor fileDescr, byte[] data) throws FileStorageException
FileStorageAPI
saveFile
in interface FileStorageAPI
fileDescr
- file descriptordata
- byte arrayFileStorageException
- if something goes wrongprotected void writeLog(java.io.File file, boolean remove)
public void removeFile(FileDescriptor fileDescr) throws FileStorageException
FileStorageAPI
removeFile
in interface FileStorageAPI
fileDescr
- file descriptorFileStorageException
- if something goes wrongprotected void checkFileDescriptor(FileDescriptor fd)
public java.io.InputStream openStream(FileDescriptor fileDescr) throws FileStorageException
FileStorageAPI
openStream
in interface FileStorageAPI
fileDescr
- file descriptorFileStorageException
- if something goes wrongpublic byte[] loadFile(FileDescriptor fileDescr) throws FileStorageException
FileStorageAPI
loadFile
in interface FileStorageAPI
fileDescr
- file descriptorFileStorageException
- if something goes wrongpublic boolean fileExists(FileDescriptor fileDescr)
FileStorageAPI
fileExists
in interface FileStorageAPI
fileDescr
- file descriptorpublic java.io.File getStorageDir(java.io.File rootDir, FileDescriptor fileDescriptor)
public static java.lang.String getFileName(FileDescriptor fileDescriptor)
@PreDestroy protected void stopWriteExecutor()