Package com.iizix.wsfile
Interface IWSFileProvider
- All Known Implementing Classes:
WSFileProvider
public interface IWSFileProvider
The interface is used to provide files to the web server for various contexts:- Server session,
- Per application (and version),
- Per user (all sessions),
- Per application session (on user basis),
- Per client session.
The server places these files in subdirectories in the file provider directory configured for the server.
- Author:
- Christopher Mindus
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description IWSFileDownload
createDownloadInstance(java.net.URL url, java.lang.Object id, java.lang.String description)
Constructs an instance of a file to download.void
downloadFiles(IAppSessionGyro appGyro, IWSFileDownload[] files, java.lang.Runnable completed)
Downloads the collection of files.IWSFile
getFileFromFileName(java.lang.String fileName)
Gets a WSFile from a file name that is located inside the root of the provider.java.io.File
getRoot()
Gets the root directory.URNResourceType
getType()
Returns the file type.java.lang.String
getURLPath()
Gets the URL path to the provider in the web server.boolean
isDisposed()
Checks if the provider is disposed of.IWSFile
reserveFile(java.io.File file, java.lang.String descr, java.lang.Object id)
Reserves an existing file on disk, i.e.
Method Detail
getType
URNResourceType getType()
Returns the file type.
getRoot
java.io.File getRoot() throws java.io.IOException
Gets the root directory.- Returns:
- The canonical root directory.
- Throws:
java.io.IOException
- If the root doesn't exist anymore or the provider is disposed of, or if the root doesn't exist and the directory cannot be created.
createDownloadInstance
IWSFileDownload createDownloadInstance(java.net.URL url, java.lang.Object id, java.lang.String description)
Constructs an instance of a file to download.- Parameters:
url
- The URL of the file to download.id
- The ID used for database identification, Long or String,null
when database is not used.This value depends on the URNResourceType. The types are:
Long
:URNResourceType.COMMON_DATABASE_PERSISTENT
: Common database persistent files.String
:URNResourceType.APPLICATION_DATABASE_PERSISTENT
: Application ID database persistent files.Long
:URNResourceType.GROUP_DATABASE_FILES
: Group ID database persistent files.Long
:URNResourceType.USER_DATABASE_FILES
: User ID database persistent files.
description
- Description of file, used to store in e.g. database, max 128 characters long.- Throws:
java.lang.IllegalArgumentException
- If thedescription
is longer than 128 characters, or if theid
is of wrong class (not String or Long) depending on the{@link URNResourceType}
.java.lang.NullPointerException
- Ifurl
ordescription
isnull
, or that theid
is required to be specified for the{@link URNResourceType}
.
downloadFiles
void downloadFiles(IAppSessionGyro appGyro, IWSFileDownload[] files, java.lang.Runnable completed)
Downloads the collection of files. Once all downloads a completed, the callback is invoked. If the application session is disposed of, the callback is not called.- Parameters:
appGyro
- The application session gyro, or null for system.files
- The array of files to download. The results are placed in the respective instances.completed
- Callback invoked upon completion of the downloads (with error or not).
isDisposed
boolean isDisposed()
Checks if the provider is disposed of.- Returns:
- true if disposed, false otherwise.
reserveFile
IWSFile reserveFile(java.io.File file, java.lang.String descr, java.lang.Object id) throws NotFoundException, java.lang.IllegalArgumentException, java.io.IOException
Reserves an existing file on disk, i.e. inside the root. If the file already is reserved, the previous WSFile instance is returned and no new reservation is done.- Parameters:
file
- The file.descr
- The description.id
- When a backing database is used, specify the user or group identifier as aLong
, the Application ID as aString
, ornull
when there is no special identifier, i.e. for global files.- Returns:
- A new WSFile instance with a reserved name.
- Throws:
NotFoundException
- If the file doesn't exist.java.lang.IllegalArgumentException
- If the file parent is not this providers root directory, or if the ID does not match the database ID type (Long
orString
).java.io.IOException
- For read errors of the file, or if the filename is not "compatible" with the database table.
getURLPath
java.lang.String getURLPath()
Gets the URL path to the provider in the web server.- Returns:
- The path on the web server, starting and ending with '/'.
getFileFromFileName
IWSFile getFileFromFileName(java.lang.String fileName)
Gets a WSFile from a file name that is located inside the root of the provider.- Parameters:
fileName
- The file name to look up.- Returns:
- The WSFile instance, or null if not found.