public class PublicRepositoryI extends java.lang.Object implements _RepositoryOperations, org.springframework.context.ApplicationContextAware
Modifier and Type | Class and Description |
---|---|
static class |
PublicRepositoryI.AMD_submit |
Modifier and Type | Field and Description |
---|---|
protected com.google.common.collect.ImmutableList<ChecksumAlgorithm> |
checksumAlgorithms |
protected ome.util.checksum.ChecksumProviderFactory |
checksumProviderFactory |
protected ome.system.OmeroContext |
context |
static java.lang.String |
DIRECTORY_MIMETYPE
Mimetype used to connote a directory
OriginalFile object. |
protected FilePathRestrictions |
filePathRestrictions |
static java.lang.String |
IMPORT_LOG_MIMETYPE
media type for import logs
|
protected RepositoryDao |
repositoryDao |
protected ServerFilePathTransformer |
serverPaths |
Constructor and Description |
---|
PublicRepositoryI(RepositoryDao repositoryDao,
ome.util.checksum.ChecksumProviderFactory checksumProviderFactory,
java.lang.String checksumAlgorithmSupported,
java.lang.String pathRules) |
Modifier and Type | Method and Description |
---|---|
protected CheckedPath |
checkPath(java.lang.String path,
ChecksumAlgorithm checksumAlgorithm,
Ice.Current curr)
Create a new
CheckedPath object based on the given user input. |
protected RawFileStorePrx |
createRepoRFS(CheckedPath checked,
java.lang.String mode,
Ice.Current __current)
Create, initialize, and register an
RepoRawFileStoreI
with the proper setting (read or write). |
HandlePrx |
deletePaths(java.lang.String[] files,
boolean recursive,
boolean force,
Ice.Current __current)
Delete paths recursively as described in Repositories.ice.
|
RawFileStorePrx |
file(java.lang.String path,
java.lang.String mode,
Ice.Current __current)
Returns a special RawFileStore which permits only the operations
set out in the options string ""wb"", ""a+"", etc.
|
RawFileStorePrx |
fileById(long fileId,
Ice.Current __current) |
boolean |
fileExists(java.lang.String path,
Ice.Current __current)
Returns true if the file or path exists within the repository.
|
protected OriginalFile |
findInDb(CheckedPath checked,
java.lang.String mode,
Ice.Current current)
Find the given path in the DB or create.
|
protected OriginalFile |
findOrCreateInDb(CheckedPath checked,
java.lang.String mode,
Ice.Current curr) |
protected OriginalFile |
findOrCreateInDb(CheckedPath checked,
java.lang.String mode,
java.lang.String mimetype,
Ice.Current curr) |
protected Ice.ObjectFactory |
getFactory(java.lang.String id,
Ice.Current current) |
java.lang.String |
getRepoUuid() |
void |
initialize(FileMaker fileMaker,
java.lang.Long id,
java.lang.String repoUuid)
Called by the internal repository once initialization has taken place.
|
java.util.List<java.lang.String> |
list(java.lang.String path,
Ice.Current __current)
Returns a set of strings naming the files and directories in
the directory denoted by an abstract pathname.
|
java.util.List<OriginalFile> |
listFiles(java.lang.String path,
Ice.Current __current)
Returns an array of abstract pathname objects denoting the
files in the directory denoted by an abstract pathname.
|
protected Ice.Current |
makeAdjustedCurrent(Ice.Current __current) |
protected void |
makeCheckedDirs(java.util.LinkedList<CheckedPath> paths,
boolean parents,
org.hibernate.Session s,
ome.system.ServiceFactory sf,
ome.util.SqlAction sql,
ome.system.EventContext effectiveEventContext)
Internal method to be used by subclasses to perform any extra checks on
the listed of
CheckedPath instances before allowing the creation
of directories. |
protected void |
makeCheckedDirs(java.util.LinkedList<CheckedPath> paths,
boolean parents,
org.hibernate.Session s,
ome.system.ServiceFactory sf,
ome.util.SqlAction sql,
ome.system.EventContext effectiveEventContext,
java.util.function.Consumer<CheckedPath> fileCreationListener)
Internal method to be used by subclasses to perform any extra checks on
the listed of
CheckedPath instances before allowing the creation
of directories. |
void |
makeDir(CheckedPath checked,
boolean parents,
org.hibernate.Session s,
ome.system.ServiceFactory sf,
ome.util.SqlAction sql,
ome.system.EventContext effectiveEventContext) |
void |
makeDir(java.lang.String path,
boolean parents,
Ice.Current current)
Create a nested path in the repository.
|
java.lang.String |
mimetype(java.lang.String path,
Ice.Current __current)
Get the mimetype for a file.
|
protected ome.model.core.OriginalFile |
persistLogFile(ome.model.core.OriginalFile originalFile,
Ice.Current current)
Deprecated.
|
protected void |
publishMessage(ome.util.messages.InternalMessage msg) |
OriginalFile |
register(java.lang.String path,
RString mimetype,
Ice.Current __current)
Register an OriginalFile using its path
|
OriginalFile |
root(Ice.Current __current)
Return the OriginalFile descriptor for this Repository.
|
java.lang.String |
rootPath(org.hibernate.Session session,
ome.system.ServiceFactory serviceFactory) |
void |
setApplicationContext(org.springframework.context.ApplicationContext applicationContext) |
protected java.lang.String |
stackTraceAsString(java.lang.Throwable t) |
protected PublicRepositoryI.AMD_submit |
submitRequest(ServiceFactoryI sf,
Request req,
Ice.Current current) |
protected PublicRepositoryI.AMD_submit |
submitRequest(ServiceFactoryI sf,
Request req,
Ice.Current current,
ome.services.util.Executor.Priority priority) |
protected Ice.Current |
sudo(Ice.Current current,
java.lang.String sessionUuid)
Provide a
Current like the given one, except with the request context session UUID replaced. |
Ice.Object |
tie()
Wrap the current instance with an
TieBase so that it
can be turned into a proxy. |
RMap |
treeList(java.lang.String path,
Ice.Current __current)
Similar to
list but recursive and returns only
primitive values for the file at each location. |
public static final java.lang.String DIRECTORY_MIMETYPE
OriginalFile
object.public static final java.lang.String IMPORT_LOG_MIMETYPE
protected ServerFilePathTransformer serverPaths
protected final RepositoryDao repositoryDao
protected final ome.util.checksum.ChecksumProviderFactory checksumProviderFactory
protected final com.google.common.collect.ImmutableList<ChecksumAlgorithm> checksumAlgorithms
protected FilePathRestrictions filePathRestrictions
protected ome.system.OmeroContext context
public PublicRepositoryI(RepositoryDao repositoryDao, ome.util.checksum.ChecksumProviderFactory checksumProviderFactory, java.lang.String checksumAlgorithmSupported, java.lang.String pathRules) throws ServerError
ServerError
public void initialize(FileMaker fileMaker, java.lang.Long id, java.lang.String repoUuid) throws ValidationException
fileMaker
- id
- ValidationException
public Ice.Object tie()
TieBase
so that it
can be turned into a proxy. This is required due to the subclassing
between public repo instances.public java.lang.String getRepoUuid()
public OriginalFile root(Ice.Current __current) throws ServerError
_RepositoryOperations
root
in interface _RepositoryOperations
__current
- The Current object for the invocation.ServerError
public boolean fileExists(java.lang.String path, Ice.Current __current) throws ServerError
_RepositoryOperations
listFiles
would return an object for this path.fileExists
in interface _RepositoryOperations
__current
- The Current object for the invocation.ServerError
public java.util.List<java.lang.String> list(java.lang.String path, Ice.Current __current) throws ServerError
_RepositoryOperations
list
in interface _RepositoryOperations
__current
- The Current object for the invocation.ServerError
public java.util.List<OriginalFile> listFiles(java.lang.String path, Ice.Current __current) throws ServerError
_RepositoryOperations
OriginalFile
instance.listFiles
in interface _RepositoryOperations
__current
- The Current object for the invocation.ServerError
public RMap treeList(java.lang.String path, Ice.Current __current) throws ServerError
_RepositoryOperations
list
but recursive and returns only
primitive values for the file at each location. Guaranteed for
each path is only the values id and mimetype.
After a call to unwrap, the returned RMap
for a
call to treeList("/user_1/dir0") might look something like:
{
"/user_1/dir0/file1.txt" :
{
"id":10,
"mimetype":
"binary",
"size": 10000L
},
"/user_1/dir0/dir1" :
{
"id": 100,
"mimetype": "Directory",
"size": 0L,
"files":
{
"/user_1/dir0/dir1/file1indir.txt" :
{
"id": 1,
"mimetype": "png",
"size": 500
}
}
}
}
treeList
in interface _RepositoryOperations
__current
- The Current object for the invocation.ServerError
public java.lang.String rootPath(org.hibernate.Session session, ome.system.ServiceFactory serviceFactory) throws ServerError
session
- the Hibernate sessionserviceFactory
- the service factoryServerError
- if the root path could not be retrievedpublic OriginalFile register(java.lang.String path, RString mimetype, Ice.Current __current) throws ServerError
register
in interface _RepositoryOperations
path
- Absolute path of the file to be registered.mimetype
- Mimetype as an RString__current
- ice context.ServerError
public HandlePrx deletePaths(java.lang.String[] files, boolean recursive, boolean force, Ice.Current __current) throws ServerError
treeList(String, Ice.Current)
to build the recursive
list of files.deletePaths
in interface _RepositoryOperations
files
- non-null, preferably non-empty list of files to check.recursive
- See Repositories.ice for an explanationforce
- See Repositories.ice for an explanation__current
- Non-null ice context.ServerError
public java.lang.String mimetype(java.lang.String path, Ice.Current __current) throws ServerError
mimetype
in interface _RepositoryOperations
path
- A path on a repository.__current
- ice context.ServerError
public RawFileStorePrx file(java.lang.String path, java.lang.String mode, Ice.Current __current) throws ServerError
_RepositoryOperations
file
in interface _RepositoryOperations
__current
- The Current object for the invocation.ServerError
public RawFileStorePrx fileById(long fileId, Ice.Current __current) throws ServerError
fileById
in interface _RepositoryOperations
ServerError
protected OriginalFile findInDb(CheckedPath checked, java.lang.String mode, Ice.Current current) throws ServerError
ServerError
@Deprecated protected ome.model.core.OriginalFile persistLogFile(ome.model.core.OriginalFile originalFile, Ice.Current current) throws ServerError
originalFile
- the ID of the log filecurrent
- the Ice method invocation contextServerError
protected OriginalFile findOrCreateInDb(CheckedPath checked, java.lang.String mode, Ice.Current curr) throws ServerError
ServerError
protected OriginalFile findOrCreateInDb(CheckedPath checked, java.lang.String mode, java.lang.String mimetype, Ice.Current curr) throws ServerError
ServerError
protected Ice.Current makeAdjustedCurrent(Ice.Current __current)
protected Ice.Current sudo(Ice.Current current, java.lang.String sessionUuid)
Current
like the given one, except with the request context session UUID replaced.current
- an Current
instancesessionUuid
- a new session UUID for the instanceCurrent
instance like the given one but with the new session UUIDprotected RawFileStorePrx createRepoRFS(CheckedPath checked, java.lang.String mode, Ice.Current __current) throws ServerError, InternalException
RepoRawFileStoreI
with the proper setting (read or write).checked
- The file that will be read. Can't be null,
and must have ID set.mode
- The mode for writing. If null, read-only.__current
- The current user's session information.ServerError
InternalException
protected void publishMessage(ome.util.messages.InternalMessage msg) throws ServerError, InternalException
ServerError
InternalException
protected PublicRepositoryI.AMD_submit submitRequest(ServiceFactoryI sf, Request req, Ice.Current current) throws ServerError, InternalException
ServerError
InternalException
protected PublicRepositoryI.AMD_submit submitRequest(ServiceFactoryI sf, Request req, Ice.Current current, ome.services.util.Executor.Priority priority) throws ServerError, InternalException
ServerError
InternalException
protected Ice.ObjectFactory getFactory(java.lang.String id, Ice.Current current)
public void makeDir(java.lang.String path, boolean parents, Ice.Current current) throws ServerError
makeDir
in interface _RepositoryOperations
path
- A path on a repository.parents
- Boolean switch like the "mkdir -p" flag in unix.current
- ice context.ServerError
public void makeDir(CheckedPath checked, boolean parents, org.hibernate.Session s, ome.system.ServiceFactory sf, ome.util.SqlAction sql, ome.system.EventContext effectiveEventContext) throws ServerError
ServerError
protected void makeCheckedDirs(java.util.LinkedList<CheckedPath> paths, boolean parents, org.hibernate.Session s, ome.system.ServiceFactory sf, ome.util.SqlAction sql, ome.system.EventContext effectiveEventContext) throws ServerError
CheckedPath
instances before allowing the creation
of directories.paths
- Not null, not empty. (Will be emptied by this method.)parents
- "mkdir -p" like flag.s
- the Hibernate sessionsf
- the service factorysql
- the JDBC convenience wrappereffectiveEventContext
- the event context to applyServerError
protected void makeCheckedDirs(java.util.LinkedList<CheckedPath> paths, boolean parents, org.hibernate.Session s, ome.system.ServiceFactory sf, ome.util.SqlAction sql, ome.system.EventContext effectiveEventContext, java.util.function.Consumer<CheckedPath> fileCreationListener) throws ServerError
CheckedPath
instances before allowing the creation
of directories.paths
- Not null, not empty. (Will be emptied by this method.)parents
- "mkdir -p" like flag.s
- the Hibernate sessionsf
- the service factorysql
- the JDBC convenience wrappereffectiveEventContext
- the event context to applyfileCreationListener
- the file creation listener to notify of new directories being createdServerError
public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException
setApplicationContext
in interface org.springframework.context.ApplicationContextAware
org.springframework.beans.BeansException
protected CheckedPath checkPath(java.lang.String path, ChecksumAlgorithm checksumAlgorithm, Ice.Current curr) throws ValidationException
CheckedPath
object based on the given user input.
This method is included to allow subclasses a chance to introduce their
own CheckedPath
implementations.path
- A path on a repository.ValidationException
protected java.lang.String stackTraceAsString(java.lang.Throwable t)