public class ContainerI extends AbstractAmdServant implements _IContainerOperations
IContainer
Constructor and Description |
---|
ContainerI(ome.api.IContainer service,
BlitzExecutor be) |
Modifier and Type | Method and Description |
---|---|
void |
createDataObject_async(AMD_IContainer_createDataObject __cb,
IObject obj,
Parameters options,
Ice.Current __current)
Creates the specified data object.
|
void |
createDataObjects_async(AMD_IContainer_createDataObjects __cb,
java.util.List<IObject> dataObjects,
Parameters options,
Ice.Current __current)
Convenience method to save network calls.
|
void |
findContainerHierarchies_async(AMD_IContainer_findContainerHierarchies __cb,
java.lang.String rootType,
java.util.List<java.lang.Long> imageIds,
Parameters options,
Ice.Current __current)
Retrieves hierarchy trees in various hierarchies that
contain the specified Images.
|
void |
getCollectionCount_async(AMD_IContainer_getCollectionCount __cb,
java.lang.String type,
java.lang.String property,
java.util.List<java.lang.Long> ids,
Parameters options,
Ice.Current __current)
Counts the number of members in a collection for a given
object.
|
void |
getImages_async(AMD_IContainer_getImages __cb,
java.lang.String rootType,
java.util.List<java.lang.Long> rootIds,
Parameters options,
Ice.Current __current)
Retrieve a user's (or all users') images within any given
container.
|
void |
getImagesByOptions_async(AMD_IContainer_getImagesByOptions __cb,
Parameters options,
Ice.Current __current)
Retrieves images by options.
|
void |
getImagesBySplitFilesets_async(AMD_IContainer_getImagesBySplitFilesets __cb,
java.util.Map<java.lang.String,java.util.List<java.lang.Long>> included,
Parameters options,
Ice.Current __current)
Given a list of IDs of certain entity types, calculates
which filesets are split such that a non-empty proper
subset of their images are referenced, directly or
indirectly, as being included.
|
void |
getUserImages_async(AMD_IContainer_getUserImages __cb,
Parameters options,
Ice.Current __current)
Retrieves a user's images.
|
void |
link_async(AMD_IContainer_link __cb,
java.util.List<IObject> links,
Parameters options,
Ice.Current __current)
Convenience method for creating links.
|
void |
loadContainerHierarchy_async(AMD_IContainer_loadContainerHierarchy __cb,
java.lang.String rootType,
java.util.List<java.lang.Long> rootIds,
Parameters options,
Ice.Current __current)
Retrieves hierarchy trees rooted by a given node (unless
orphan is specified -- See below)
|
void |
retrieveCollection_async(AMD_IContainer_retrieveCollection __cb,
IObject obj,
java.lang.String collectionName,
Parameters options,
Ice.Current __current)
Retrieves a collection with all members initialized
(loaded).
|
void |
unlink_async(AMD_IContainer_unlink __cb,
java.util.List<IObject> links,
Parameters options,
Ice.Current __current)
Removes links between OmeroDataObjects e.g Project-Dataset,
Dataset-Image
Note that the objects themselves aren't deleted, only the
Link objects.
|
void |
updateDataObject_async(AMD_IContainer_updateDataObject __cb,
IObject obj,
Parameters options,
Ice.Current __current)
Updates a data object.
|
void |
updateDataObjects_async(AMD_IContainer_updateDataObjects __cb,
java.util.List<IObject> objs,
Parameters options,
Ice.Current __current)
Convenience method to save network calls.
|
activate_async, applyHardWiredInterceptors, callInvokerOnMappedArgs, callInvokerOnRawArgs, executorWorkCall, getCurrentEventContext_async, onSetOmeroContext, passivate_async, runnableCall, safeRunnableCall, setApplicationContext, setHolder
public ContainerI(ome.api.IContainer service, BlitzExecutor be)
public void createDataObject_async(AMD_IContainer_createDataObject __cb, IObject obj, Parameters options, Ice.Current __current) throws ServerError
_IContainerOperations
A placeholder parent object is created if the data object is to be put in a collection.
For example, if the object is a Dataset
, we
first create a Project
as parent then we set
the Dataset parent as follows:
//pseudo-code TODO
Project p = new Project(id,false);
dataset.addProject(p);
then for each parent relationship a DataObject
ILink
is created.
createDataObject_async
in interface _IContainerOperations
__cb
- The callback object for the operation.obj
- IObject. Supported: Project, Dataset,
Annotation, Group, Experimenter. Not null.options
- Parameters as above.__current
- The Current object for the invocation.ServerError
public void createDataObjects_async(AMD_IContainer_createDataObjects __cb, java.util.List<IObject> dataObjects, Parameters options, Ice.Current __current) throws ServerError
_IContainerOperations
createDataObject
.createDataObjects_async
in interface _IContainerOperations
__cb
- The callback object for the operation.dataObjects
- Array of Omero IObjects
options
- Parameters as above.__current
- The Current object for the invocation.ServerError
public void findContainerHierarchies_async(AMD_IContainer_findContainerHierarchies __cb, java.lang.String rootType, java.util.List<java.lang.Long> imageIds, Parameters options, Ice.Current __current) throws ServerError
_IContainerOperations
This method will look for all the containers containing the specified Images and then for all containers containing those containers and on up the container hierarchy.
This method returns a Set
with all root nodes
that were
found. Every root node is linked to the found objects and
so on until the leaf nodes, which are
Image
objects. Note that the type of any
root node in the returned set can be the given
rootNodeType, any of its containees or an
Image
.
For example, say that you pass in the ids of six Images:
i1, i2, i3, i4, i5, i6
.
If the P/D/I hierarchy in the DB looks like this:
| __p1__ | / \ | _d1_ _d2_ d3 | / \ / \ | | i1 i2 i3 i4 i5 i6
Then the returned set will contain
p1, d3, i5, i6
. All objects will be properly
linked up.
Finally, this method will only retrieve the nodes
that are connected in a tree to the specified leaf image
nodes. Back to the previous example, if d1
contained image img500
, then the returned
object would not contain img500
. In a
similar way, if p1
contained
ds300
and this dataset weren't linked to any of
the i1, i2, i3, i4, i5, i6
images, then
ds300
would not be part of the returned
tree rooted by p1
.
findContainerHierarchies_async
in interface _IContainerOperations
__cb
- The callback object for the operation.rootType
- top-most type which will be searched for Can be
Project
. Not null.imageIds
- Contains the ids of the Images that sit at the
bottom of the trees. Not null.options
- Parameters as above. annotator
used.
experimenter|group
may be applied
at the top-level only or at each level in the
hierarchy, but will not apply to the leaf
(Image) level.__current
- The Current object for the invocation.ServerError
public void getCollectionCount_async(AMD_IContainer_getCollectionCount __cb, java.lang.String type, java.lang.String property, java.util.List<java.lang.Long> ids, Parameters options, Ice.Current __current) throws ServerError
_IContainerOperations
getCollectionCount_async
in interface _IContainerOperations
__cb
- The callback object for the operation.type
- The fully-qualified classname of the object to
be testedproperty
- Name of the property on that class, omitting
getters and setters.ids
- Set of Longs, the ids of the objects to testoptions
- Parameters. Unused.__current
- The Current object for the invocation.ServerError
public void getImagesByOptions_async(AMD_IContainer_getImagesByOptions __cb, Parameters options, Ice.Current __current) throws ServerError
_IContainerOperations
getImagesByOptions_async
in interface _IContainerOperations
__cb
- The callback object for the operation.options
- Parameters as above. No notion of
leaves
.
experimenter|group
apply at the
Image level and must be present.
OPTIONS:
- startTime and/or endTime should be
Timestamp.valueOf("YYYY-MM-DD hh:mm:ss.ms").
acquisition data
is only relevant
for images.__current
- The Current object for the invocation.ServerError
public void getImages_async(AMD_IContainer_getImages __cb, java.lang.String rootType, java.util.List<java.lang.Long> rootIds, Parameters options, Ice.Current __current) throws ServerError
_IContainerOperations
getImages_async
in interface _IContainerOperations
__cb
- The callback object for the operation.rootType
- A Class which will have its hierarchy searched
for Images. Not null.rootIds
- A set of ids of type rootNodeType
Not null.options
- Parameters as above. No notion of
leaves
.
experimenter|group
apply at the
Image level.
OPTIONS: - startTime and/or endTime should be
Timestamp.valueOf("YYYY-MM-DD hh:mm:ss.ms");
limit
and offset
are
applied at the Image-level. That is, calling
with Dataset.class, limit == 10 and offset == 0
will first perform one query to get an effective
set of rootNodeIds, then getImages will be
called with an effective rootNodeType of
Image.class and the new ids.
acquisition data
is only relevant
for images.__current
- The Current object for the invocation.ServerError
public void getImagesBySplitFilesets_async(AMD_IContainer_getImagesBySplitFilesets __cb, java.util.Map<java.lang.String,java.util.List<java.lang.Long>> included, Parameters options, Ice.Current __current) throws ServerError
_IContainerOperations
getImagesBySplitFilesets_async
in interface _IContainerOperations
__cb
- The callback object for the operation.included
- the entities included__current
- The Current object for the invocation.ServerError
public void getUserImages_async(AMD_IContainer_getUserImages __cb, Parameters options, Ice.Current __current) throws ServerError
_IContainerOperations
getUserImages_async
in interface _IContainerOperations
__cb
- The callback object for the operation.options
- Parameters as above. No notion of
leaves
.
experimenter|group
apply at the
Image level and must be present.__current
- The Current object for the invocation.ServerError
public void link_async(AMD_IContainer_link __cb, java.util.List<IObject> links, Parameters options, Ice.Current __current) throws ServerError
_IContainerOperations
createDataObject
link_async
in interface _IContainerOperations
__cb
- The callback object for the operation.links
- Array of links to be created.__current
- The Current object for the invocation.ServerError
public void loadContainerHierarchy_async(AMD_IContainer_loadContainerHierarchy __cb, java.lang.String rootType, java.util.List<java.lang.Long> rootIds, Parameters options, Ice.Current __current) throws ServerError
_IContainerOperations
This method also retrieves the Experimenters linked to the objects in the tree. Similarly, all Images will be linked to their Pixel objects if included.
Note that objects are never duplicated. For example, if an
Experimenter owns all the objects in the retrieved tree,
then those objects will be linked to the same
instance of Experimenter
. Or if an
Image is contained in more than one Dataset in the
retrieved tree, then all enclosing
Dataset
objects will point
to the same Image
object. And
so on.
loadContainerHierarchy_async
in interface _IContainerOperations
__cb
- The callback object for the operation.rootType
- The type of the root node. Can be
Project
,
Dataset
,
Screen
or
Plate
.
Cannot be null.rootIds
- The ids of the root nodes. Can be null if an
Experimenter is specified in
options
, otherwise an Exception
is thrown to prevent all images in the entire
database from being downloaded.options
- Parameters as above. annotator
,
leaves
, orphan
,
acquisition data
used.
acquisition data
is only relevant
for images and taken into account if the images
are loaded.
If rootNodeIds==null
,
experimenter|group
must be set and
filtering will be applied at the
Class-level; e.g. to retrieve a user's
Projects, or user's Datasets. If
rootNodeIds!=null
, the result will
be filtered by the
experimenter|group
at the
Image
and intermediate levels
if available.
Due to the amount of data potentially linked a
Screen/Plate, the leaves
option is
not taken into account when the root node is a
Screen
.
orphan
implies that objects which
are not contained in an object of rootNodeType
should also be returned.__current
- The Current object for the invocation.ServerError
public void retrieveCollection_async(AMD_IContainer_retrieveCollection __cb, IObject obj, java.lang.String collectionName, Parameters options, Ice.Current __current) throws ServerError
_IContainerOperations
retrieveCollection_async
in interface _IContainerOperations
__cb
- The callback object for the operation.obj
- Can be unloaded.options
- Parameters. Unused.__current
- The Current object for the invocation.ServerError
public void unlink_async(AMD_IContainer_unlink __cb, java.util.List<IObject> links, Parameters options, Ice.Current __current) throws ServerError
_IContainerOperations
unlink_async
in interface _IContainerOperations
__cb
- The callback object for the operation.links
- Not null.__current
- The Current object for the invocation.ServerError
public void updateDataObject_async(AMD_IContainer_updateDataObject __cb, IObject obj, Parameters options, Ice.Current __current) throws ServerError
_IContainerOperations
To link or unlink objects to the specified object, we
should call the methods link or unlink. TODO Or do we use
for example dataset.setProjects(set of projects) to add.
Link has to be set as follows dataset→project and
project→dataset.
Alternatively, you can make sure that the collection is
exactly how it should be in the database. If you
can't guarantee this, it's best to send all your
collections back as null
updateDataObject_async
in interface _IContainerOperations
__cb
- The callback object for the operation.obj
- Pojos-based IObject. Supported: Project,
Dataset, Annotation, Group, Experimenter.options
- Parameters as above.__current
- The Current object for the invocation.ServerError
public void updateDataObjects_async(AMD_IContainer_updateDataObjects __cb, java.util.List<IObject> objs, Parameters options, Ice.Current __current) throws ServerError
_IContainerOperations
updateDataObject
.updateDataObjects_async
in interface _IContainerOperations
__cb
- The callback object for the operation.__current
- The Current object for the invocation.ServerError