@Transactional public class PojosImpl extends AbstractLevel2Service implements IContainer
iQuery, iUpdate, metadata, queryFactory, readOnlyStatus, sec| Constructor and Description | 
|---|
| PojosImpl() | 
| Modifier and Type | Method and Description | 
|---|---|
| protected void | checkProperty(java.lang.String type,
             java.lang.String property) | 
| protected void | checkType(java.lang.String type) | 
| IObject | createDataObject(IObject arg0,
                Parameters arg1)Creates the specified data object. | 
| IObject[] | createDataObjects(IObject[] arg0,
                 Parameters arg1)convenience method to save network calls. | 
| java.util.Set | findContainerHierarchies(java.lang.Class rootNodeType,
                        java.util.Set imageIds,
                        Parameters options)Retrieves hierarchy trees in various hierarchies that contain the
 specified Images. | 
| java.util.Map | getCollectionCount(java.lang.String type,
                  java.lang.String property,
                  java.util.Set ids,
                  Parameters options)Counts the number of members in a collection for a given object. | 
| java.util.Set | getImages(java.lang.Class rootNodeType,
         java.util.Set rootNodeIds,
         Parameters options)Retrieve a user's (or all users') images within any given container. | 
| java.util.Set | getImagesByOptions(Parameters options)Retrieve images by options. | 
| java.util.Map<java.lang.Long,java.util.Map<java.lang.Boolean,java.util.List<java.lang.Long>>> | getImagesBySplitFilesets(java.util.Map<java.lang.Class<? extends IObject>,java.util.List<java.lang.Long>> included,
                        Parameters options)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. | 
| java.lang.Class<? extends ServiceInterface> | getServiceInterface()Returns the Interface implemented by this class. | 
| java.util.Set | getUserImages(Parameters options)Retrieve a user's images. | 
| ILink[] | link(ILink[] arg0,
    Parameters arg1)Convenience method for creating links. | 
| java.util.Set | loadContainerHierarchy(java.lang.Class rootNodeType,
                      java.util.Set rootNodeIds,
                      Parameters options)Retrieves hierarchy trees rooted by a given node (unless orphan is
 specified -- See below)
 
 This method also retrieves the Experimenters linked to the objects in the
 tree. | 
| java.util.Collection | retrieveCollection(IObject arg0,
                  java.lang.String arg1,
                  Parameters arg2)Retrieves a collection with all members initialized ("loaded"). | 
| void | unlink(ILink[] arg0,
      Parameters arg1)Removes links between OmeroDataObjects e.g Project-Dataset, Dataset-Image
 Note that the objects themselves aren't deleted, only the Link objects. | 
| IObject | updateDataObject(IObject arg0,
                Parameters arg1)Updates a data object. | 
| IObject[] | updateDataObjects(IObject[] arg0,
                 Parameters arg1)convenience method to save network calls. | 
getBeanHelper, getExtendedMetadata, getQueryFactory, getSecuritySystem, selfConfigure, setExtendedMetadata, setQueryFactory, setQueryService, setReadOnlyStatus, setSecuritySystem, setUpdateServicepublic final java.lang.Class<? extends ServiceInterface> getServiceInterface()
getServiceInterface in interface SelfConfigurableService@Transactional(readOnly=true)
public java.util.Set loadContainerHierarchy(java.lang.Class rootNodeType,
                                                                          java.util.Set rootNodeIds,
                                                                          Parameters options)
IContainerThis 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 in interface IContainerrootNodeType - The type of the root node. Can be
                      Project,
                      Dataset,
                      Screen or
                      Plate.
            Cannot be null.rootNodeIds - 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.
 TODO should it be applied at all levels?rootNodeType, unless orphan is specified
           in which case objects of type rootNodeType and below
           may be returned.@Transactional(readOnly=true)
public java.util.Set findContainerHierarchies(java.lang.Class rootNodeType,
                                                                            java.util.Set imageIds,
                                                                            Parameters options)
IContainerThis 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 in interface IContainerrootNodeType - 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.Set with all root nodes that were found.
 TODO decide on use of experimenter option@Transactional(readOnly=true)
public java.util.Set getImages(java.lang.Class rootNodeType,
                                                             java.util.Set rootNodeIds,
                                                             Parameters options)
IContainergetImages in interface IContainerrootNodeType - A Class which will have its hierarchy searched for Images. Not
            null. TODO types?rootNodeIds - 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.Parameters.paginate(Integer, Integer), 
Parameters.startTime(java.sql.Timestamp), 
Parameters.endTime(java.sql.Timestamp)@Transactional(readOnly=true) public java.util.Set getImagesByOptions(Parameters options)
IContainergetImagesByOptions in interface IContaineroptions - 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.@Transactional(readOnly=true) public java.util.Map<java.lang.Long,java.util.Map<java.lang.Boolean,java.util.List<java.lang.Long>>> getImagesBySplitFilesets(java.util.Map<java.lang.Class<? extends IObject>,java.util.List<java.lang.Long>> included, Parameters options)
IContainergetImagesBySplitFilesets in interface IContainerincluded - the entities includedoptions - parameters, presently ignored@Transactional(readOnly=true) public java.util.Set getUserImages(Parameters options)
IContainergetUserImages in interface IContaineroptions - Parameters as above. No notion of leaves.
            experimenter|group apply at the Image level and
            must be present.@Transactional(readOnly=true)
public java.util.Map getCollectionCount(java.lang.String type,
                                                                      java.lang.String property,
                                                                      java.util.Set ids,
                                                                      Parameters options)
IContainergetCollectionCount in interface IContainertype - 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.@Transactional(readOnly=true) public java.util.Collection retrieveCollection(IObject arg0, java.lang.String arg1, Parameters arg2)
IContainerretrieveCollection in interface IContainerarg0 - Can be "unloaded".arg1 - public final static String from the
            IObject.classarg2 - Parameters. Unused.@Transactional(readOnly=false) public IObject createDataObject(IObject arg0, Parameters arg1)
IContainerA 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 in interface IContainerarg0 - IObject. Supported: Project, Dataset,
            Annotation, Group, Experimenter. Not null.arg1 - Parameters as above.@Transactional(readOnly=false) public IObject[] createDataObjects(IObject[] arg0, Parameters arg1)
IContainercreateDataObjects in interface IContainerarg0 - Array of Omero IObjectsarg1 - Parameters as above.IContainer.createDataObject(IObject, Parameters)@Transactional(readOnly=false) public void unlink(ILink[] arg0, Parameters arg1)
IContainerunlink in interface IContainerarg0 - Not null.arg1 - Parameters as above.@Transactional(readOnly=false) public ILink[] link(ILink[] arg0, Parameters arg1)
IContainerIContainer.createDataObject(IObject, Parameters)link in interface IContainerarg0 - Array of links to be created.arg1 - Parameters as above.@Transactional(readOnly=false) public IObject updateDataObject(IObject arg0, Parameters arg1)
IContainer
 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. Tink 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 in interface IContainerarg0 - Pojos-based IObject. Supported: supported: Project, Dataset,
            Annotation, Group, Experimenter.arg1 - Parameters as above.@Transactional(readOnly=false) public IObject[] updateDataObjects(IObject[] arg0, Parameters arg1)
IContainerupdateDataObjects in interface IContainerarg1 - Parameters as above.IContainer.updateDataObject(IObject, Parameters)protected void checkType(java.lang.String type)
protected void checkProperty(java.lang.String type,
                             java.lang.String property)
                
                
Version: 5.4.6-ice35-b87
Copyright © 2018 The University of Dundee & Open Microscopy Environment. All Rights Reserved.