public class ScriptRepoHelper extends OnContextRefreshedEventListener
Modifier and Type | Field and Description |
---|---|
static org.apache.commons.io.filefilter.IOFileFilter |
BASE_SCRIPT_FILTER
IOFileFilter instance used during iterate() to find the
matching scripts in the given directory. |
protected org.slf4j.Logger |
log |
static java.lang.String |
SCRIPT_REPO
Id used by all script repositories.
|
Constructor and Description |
---|
ScriptRepoHelper(Executor ex,
java.lang.String sessionUuid,
Roles roles) |
ScriptRepoHelper(java.io.File dir,
Executor ex,
java.lang.String sessionUuid,
Principal p,
Roles roles) |
ScriptRepoHelper(java.lang.String uuid,
java.io.File dir,
Executor ex,
java.lang.String sessionUuid,
Principal p,
Roles roles) |
Modifier and Type | Method and Description |
---|---|
OriginalFile |
addOrReplace(RepoFile repoFile,
java.lang.Long old) |
protected OriginalFile |
addOrReplace(org.hibernate.Session session,
SqlAction sqlAction,
ServiceFactory sf,
RepoFile repoFile,
java.lang.Long old) |
void |
buildQuery(QueryBuilder qb)
Adds a single clause of the form "AND (A OR B ...)" where each
ScriptFileType A, B, etc. is given a chance to define
its own clause. |
void |
checkForScriptUpdates()
Check for updates to scripts, modifying database accordingly.
|
int |
countInDb() |
int |
countInDb(SqlAction sql) |
int |
countOnDisk()
Returns the number of files which match
scriptFilter in
dir . |
boolean |
delete(long id) |
protected java.util.Map.Entry<java.lang.String,ScriptFileType> |
findByMimetype(java.lang.String mimetype)
Search through all
ScriptFileType instances and find one with
a matching mimetype string. |
java.lang.Long |
findInDb(RepoFile file,
boolean scriptsOnly) |
java.lang.Long |
findInDb(SqlAction sql,
RepoFile repoFile,
boolean scriptsOnly)
Looks to see if a path is contained in the repository.
|
java.lang.Long |
findInDb(java.lang.String path,
boolean scriptsOnly) |
static java.lang.String |
getDefaultScriptDir()
Directory which will be used as the root of this repository if no
directory is passed to a constructor.
|
java.lang.String |
getLauncher(java.lang.String mimetype)
Find an "omero.launcher..." property string for the given mimetype or
return "" if none is found.
|
java.lang.String |
getProcess(java.lang.String mimetype)
Find an "omero.process..." property string for the given mimetype or
return "" if none is found.
|
java.lang.String |
getScriptDir()
Returns the actual root of this repository.
|
java.lang.String |
getUuid()
Uuid of this repository.
|
void |
handleContextRefreshedEvent(org.springframework.context.event.ContextRefreshedEvent event)
Loads all
ScriptFileType instances from the context,
and uses them to initialize all scripts in the repo. |
java.util.List<java.lang.Long> |
idsInDb() |
java.util.List<java.lang.Long> |
idsInDb(SqlAction sql) |
boolean |
isInert(OriginalFile f)
Returns
true if the file is an "inert" file e.g. a lut,
false otherwise. |
boolean |
isInRepo(long id) |
boolean |
isInRepo(SqlAction sql,
long id) |
java.util.Iterator<java.io.File> |
iterate() |
OriginalFile |
load(long id,
boolean check) |
OriginalFile |
load(long id,
org.hibernate.Session s,
SqlAction sqlAction,
boolean check) |
java.util.List<OriginalFile> |
loadAll(boolean modificationCheck)
Walks all files in the repository (via
iterate() and adds them
if not found in the database. |
java.util.List<OriginalFile> |
loadAll(boolean modificationCheck,
java.lang.String mimetype)
Walks all files in the repository (via
iterate() and adds them
if not found in the database. |
java.util.List<OriginalFile> |
loadAll(boolean modificationCheck,
java.lang.String mimetype,
Principal pp) |
void |
modificationCheck()
Checks if
|
java.lang.String |
read(java.lang.String path) |
long |
removeMissingFilesFromDb(SqlAction sqlAction,
org.hibernate.Session session,
java.util.List<OriginalFile> filesOnDisk)
Given the current files on disk,
unregister(Long, SqlAction)
all files which have been removed from disk. |
void |
setMimetype(OriginalFile ofile) |
void |
simpleDelete(java.util.Map<java.lang.String,java.lang.String> context,
Executor executor,
Principal p,
long id)
Unlike
delete(long) this method simply performs the DB delete
on the given original file id. |
protected void |
unregister(java.lang.Long old,
SqlAction sqlAction)
Unregisters a given file from the script repository by setting its
Repo uuid to null.
|
OriginalFile |
update(RepoFile repoFile,
java.lang.Long id,
java.util.Map<java.lang.String,java.lang.String> context) |
RepoFile |
write(RepoFile repo,
java.lang.String text) |
RepoFile |
write(java.lang.String path,
java.lang.String text) |
onApplicationEvent, setApplicationContext
public static final java.lang.String SCRIPT_REPO
public static final org.apache.commons.io.filefilter.IOFileFilter BASE_SCRIPT_FILTER
IOFileFilter
instance used during iterate()
to find the
matching scripts in the given directory.protected final org.slf4j.Logger log
public ScriptRepoHelper(java.io.File dir, Executor ex, java.lang.String sessionUuid, Principal p, Roles roles)
public ScriptRepoHelper(java.lang.String uuid, java.io.File dir, Executor ex, java.lang.String sessionUuid, Principal p, Roles roles)
uuid
- Allows setting a non-default uuid for this script service.
Primarily for testing, since services rely on the repository
name for finding one another.dir
- The directory used by the repo as its root. Other constructors
use getDefaultScriptDir()
internally.ex
- p
- public void handleContextRefreshedEvent(org.springframework.context.event.ContextRefreshedEvent event)
ScriptFileType
instances from the context,
and uses them to initialize all scripts in the repo.handleContextRefreshedEvent
in class OnContextRefreshedEventListener
public void checkForScriptUpdates()
public void buildQuery(QueryBuilder qb)
ScriptFileType
A, B, etc. is given a chance to define
its own clause.public void setMimetype(OriginalFile ofile)
protected java.util.Map.Entry<java.lang.String,ScriptFileType> findByMimetype(java.lang.String mimetype)
ScriptFileType
instances and find one with
a matching mimetype string. Otherwise, return null.public java.lang.String getLauncher(java.lang.String mimetype)
public java.lang.String getProcess(java.lang.String mimetype)
public static java.lang.String getDefaultScriptDir()
public java.lang.String getScriptDir()
getDefaultScriptDir()
public java.lang.String getUuid()
SCRIPT_REPO
.public int countOnDisk()
public int countInDb()
public int countInDb(SqlAction sql)
public java.util.List<java.lang.Long> idsInDb()
public java.util.List<java.lang.Long> idsInDb(SqlAction sql)
public boolean isInRepo(long id)
public boolean isInRepo(SqlAction sql, long id)
public java.lang.Long findInDb(java.lang.String path, boolean scriptsOnly)
public java.lang.Long findInDb(RepoFile file, boolean scriptsOnly)
public java.lang.Long findInDb(SqlAction sql, RepoFile repoFile, boolean scriptsOnly)
public java.util.Iterator<java.io.File> iterate()
public java.util.List<OriginalFile> loadAll(boolean modificationCheck, java.lang.String mimetype)
iterate()
and adds them
if not found in the database.
If modificationCheck is true, then a change in the hash for a file in
the repository will cause the old file to be removed from the repository
(uuid == null)and a new file created in its place.
modificationCheck
- mimetype
- the mimetype of the scripts or null
.public java.util.List<OriginalFile> loadAll(boolean modificationCheck, java.lang.String mimetype, Principal pp)
public java.util.List<OriginalFile> loadAll(boolean modificationCheck)
iterate()
and adds them
if not found in the database.
If modificationCheck is true, then a change in the hash for a file in
the repository will cause the old file to be removed from the repository
(uuid == null)and a new file created in its place.
modificationCheck
- public OriginalFile addOrReplace(RepoFile repoFile, java.lang.Long old)
repoFile
- old
- protected OriginalFile addOrReplace(org.hibernate.Session session, SqlAction sqlAction, ServiceFactory sf, RepoFile repoFile, java.lang.Long old)
public long removeMissingFilesFromDb(SqlAction sqlAction, org.hibernate.Session session, java.util.List<OriginalFile> filesOnDisk)
unregister(Long, SqlAction)
all files which have been removed from disk.protected void unregister(java.lang.Long old, SqlAction sqlAction)
public OriginalFile update(RepoFile repoFile, java.lang.Long id, java.util.Map<java.lang.String,java.lang.String> context)
public java.lang.String read(java.lang.String path) throws java.io.IOException
java.io.IOException
public RepoFile write(java.lang.String path, java.lang.String text) throws java.io.IOException
java.io.IOException
public RepoFile write(RepoFile repo, java.lang.String text) throws java.io.IOException
java.io.IOException
public OriginalFile load(long id, boolean check)
public OriginalFile load(long id, org.hibernate.Session s, SqlAction sqlAction, boolean check)
public void modificationCheck()
public boolean delete(long id)
public void simpleDelete(java.util.Map<java.lang.String,java.lang.String> context, Executor executor, Principal p, long id)
delete(long)
this method simply performs the DB delete
on the given original file id.context
- Call context which affecets which group the current user is in.
Can be null to pass no call context.executor
- p
- id
- Id of the OriginalFile
to delete.public boolean isInert(OriginalFile f)
true
if the file is an "inert" file e.g. a lut,
false
otherwise.f
- The file to handle.
Version: 5.4.4-ice35-b82
Copyright © 2018 The University of Dundee & Open Microscopy Environment. All Rights Reserved.