Graph requests
Overview
The Blitz API offers several requests that are subclasses of GraphQuery. These may be submitted to the server for asynchronous processing of linked graphs of OMERO model objects. This section gives a brief overview of the graph requests and their purpose. Follow the links to see more details.
Querying the model object graph
- GraphQuery (base class)
The parent of the requests below, it includes a
targetObjectsproperty that specifies from which model objects to start processing. The LegalGraphTargets request can be used to determine which types of model object may be targeted.- DiskUsage2
Report on the disk usage of the target objects and their contents by type, user and group. Includes a
targetClassesproperty to allow specifying every visible instance of a type.- FindParents
Find the parents of the target objects, both direct and indirect.
typesOfParentsspecifies the types of parents to report.stopBeforespecifies types of model object to avoid in traversing the linked graph upward: those subgraphs are ignored unless otherwise reachable.- FindChildren
Find the children of the target objects, both direct and indirect.
typesOfChildrenspecifies the types of children to report.stopBeforespecifies types of model object to avoid in traversing the linked graph downward: those subgraphs are ignored unless otherwise reachable.
Changing the model object graph
- GraphModify2 (base class)
The parent of the requests below, it includes a
targetObjectsproperty that specifies from which model objects to start processing. The LegalGraphTargets request can be used to determine which types of model object may be targeted.The
childOptionsproperty lists how to process the contents of targeted objects.Because these requests change the data stored by the server, a
dryRunproperty is provided that enables attempting to obtain the same response or error without actually making any changes.- ChildOption
By default if a ‘child’ object is contained by a ‘parent’ targeted object then it is processed along with its parent if it is not also contained by another parent object that is not targeted. Use requests’
childOptionsproperty to specify that children should be processed or not regardless of other parents.The
includeTypeandexcludeTypeproperties specify for which types of children to override the behavior. For children that are annotations, theincludeNsandexcludeNsproperties use the annotation namespace to limit the applicability of the override.- Chgrp2
Change the group ID of the targeted objects and their contents. The objects are moved to the group specified by the
groupIdproperty.- Chown2
Change the user ID of the targeted objects and their contents. The objects are given to the user specified by the
userIdproperty.- Chmod2
Change the permissions for the targeted objects which must be groups. The
permissionsproperty specifies the new group type.- Delete2
Delete the targeted objects and their contents. For original file instances the underlying file in the server’s binary repository may be deleted also.
- Duplicate
Duplicate a subgraph from the model object graph, starting from the targeted objects and recursing to their contents. The
typesToDuplicate,typesToReference,typesToIgnoreproperties offer control over where in the graph traversal to stop duplicating and with what in the original graph to link the duplicate subgraph.- SkipHead
Defer processing to start only at specific contents of the targeted objects. The
startFromproperty specifies the types of object to actually target with the processing and therequestproperty, which may be any of the other requests from this section, specifies what to do to those objects once identified.
Command-line interface
OMERO’s command-line interface client includes
chgrp, chown, delete plugins that construct the
corresponding Chgrp2, Chown2, Delete2 requests.
Additionally, the group plugin offers the Chmod2 request and the
fs plugin offers the DiskUsage2 request.
Request builders for Java
The Java gateway includes the Requests.java class which offers Java developers a set of builders that use method-chaining to allow convenient construction of new instances of the above requests.