Package omero.api

Interface _IQueryOperations

  • All Superinterfaces:
    _ServiceInterfaceOperations
    All Known Subinterfaces:
    IQuery
    All Known Implementing Classes:
    _IQueryDisp, _IQueryTie, QueryI

    public interface _IQueryOperations
    extends _ServiceInterfaceOperations
    Provides methods for directly querying object graphs. As far as is possible, IQuery should be considered the lowest level DB-access (SELECT) interface. Unlike the IUpdate interface, using other methods will most likely not leave the database in an inconsistent state, but may provide stale data in some situations. By convention, all methods that begin with get will never return a null or empty Collection, but instead will throw a ValidationException.
    • Method Detail

      • get_async

        void get_async​(AMD_IQuery_get __cb,
                       java.lang.String klass,
                       long id,
                       Ice.Current __current)
                throws ServerError
        Looks up an entity by class and id. If no such object exists, an exception will be thrown.
        Parameters:
        __cb - The callback object for the operation.
        klass - the type of the entity. Not null.
        __current - The Current object for the invocation.
        Throws:
        ValidationException - if the id doesn't exist.
        ServerError
      • find_async

        void find_async​(AMD_IQuery_find __cb,
                        java.lang.String klass,
                        long id,
                        Ice.Current __current)
                 throws ServerError
        Looks up an entity by class and id. If no such objects exists, return a null.
        Parameters:
        __cb - The callback object for the operation.
        klass - klass the type of the entity. Not null.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • findAll_async

        void findAll_async​(AMD_IQuery_findAll __cb,
                           java.lang.String klass,
                           Filter filter,
                           Ice.Current __current)
                    throws ServerError
        Looks up all entities that belong to this class and match filter.
        Parameters:
        __cb - The callback object for the operation.
        klass - entity type to be searched. Not null.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • findByExample_async

        void findByExample_async​(AMD_IQuery_findByExample __cb,
                                 IObject example,
                                 Ice.Current __current)
                          throws ServerError
        Searches based on provided example entity. The example entity should uniquely specify the entity or an exception will be thrown. Note: findByExample does not operate on the id field. For that, use find, get, findByQuery, or findAllByQuery.
        Parameters:
        __cb - The callback object for the operation.
        example - Non-null example object.
        __current - The Current object for the invocation.
        Throws:
        ApiUsageException - if more than one result is return.
        ServerError
      • findAllByExample_async

        void findAllByExample_async​(AMD_IQuery_findAllByExample __cb,
                                    IObject example,
                                    Filter filter,
                                    Ice.Current __current)
                             throws ServerError
        Searches based on provided example entity. The returned entities will be limited by the Filter object. Note: findAllbyExample does not operate on the id field. For that, use find, get, findByQuery, or findAllByQuery.
        Parameters:
        __cb - The callback object for the operation.
        example - Non-null example object.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • findByString_async

        void findByString_async​(AMD_IQuery_findByString __cb,
                                java.lang.String klass,
                                java.lang.String field,
                                java.lang.String value,
                                Ice.Current __current)
                         throws ServerError
        Searches a given field matching against a String. Method does not allow for case sensitive or insensitive searching since this is essentially a lookup. The existence of more than one result will result in an exception.
        Parameters:
        __cb - The callback object for the operation.
        klass - type of entity to be searched
        value - String used for search.
        __current - The Current object for the invocation.
        Throws:
        ome.conditions.ApiUsageException - if more than one result.
        ServerError
      • findAllByString_async

        void findAllByString_async​(AMD_IQuery_findAllByString __cb,
                                   java.lang.String klass,
                                   java.lang.String field,
                                   java.lang.String value,
                                   boolean caseSensitive,
                                   Filter filter,
                                   Ice.Current __current)
                            throws ServerError
        Searches a given field matching against a String. Method allows for case sensitive or insensitive searching using the (I)LIKE comparators. Result set will be reduced by the Filter instance.
        Parameters:
        __cb - The callback object for the operation.
        klass - type of entity to be searched. Not null.
        value - String used for search. Not null.
        filter - filters the result set. Can be null.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • findByQuery_async

        void findByQuery_async​(AMD_IQuery_findByQuery __cb,
                               java.lang.String query,
                               Parameters params,
                               Ice.Current __current)
                        throws ServerError
        Executes the stored query with the given name. If a query with the name cannot be found, an exception will be thrown. The queryName parameter can be an actual query String if the StringQuerySource is configured on the server and the user running the query has proper permissions.
        Parameters:
        __cb - The callback object for the operation.
        query - Query to execute
        __current - The Current object for the invocation.
        Throws:
        ValidationException
        ServerError
      • findAllByQuery_async

        void findAllByQuery_async​(AMD_IQuery_findAllByQuery __cb,
                                  java.lang.String query,
                                  Parameters params,
                                  Ice.Current __current)
                           throws ServerError
        Executes the stored query with the given name. If a query with the name cannot be found, an exception will be thrown. The queryName parameter can be an actual query String if the StringQuerySource is configured on the server and the user running the query has proper permissions. Queries can only return lists of IObject instances. This means all must be of the form:
         select this from SomeModelClass this ...
         
        though the alias this is unimportant. Do not try to return multiple classes in one call like:
         select this, that from SomeClass this, SomeOtherClass that ...
         
        nor to project values out of an object:
         select this.name from SomeClass this ...
         
        If a page is desired, add it to the query parameters.
        Parameters:
        __cb - The callback object for the operation.
        query - Query to execute. Not null.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • findAllByFullText_async

        void findAllByFullText_async​(AMD_IQuery_findAllByFullText __cb,
                                     java.lang.String klass,
                                     java.lang.String query,
                                     Parameters params,
                                     Ice.Current __current)
                              throws ServerError
        Executes a full text search based on Lucene. Each term in the query can also be prefixed by the name of the field to which is should be restricted. Examples:
        • owner:root AND annotation:someTag
        • file:xml AND name:*hoechst*
        For more information, see Query Parser Syntax The return values are first filtered by the security system.
        Parameters:
        __cb - The callback object for the operation.
        klass - A non-null class specification of which type should be searched.
        query - A non-null query string. An empty string will return no results.
        params - Currently the parameters themselves are unused. But the Parameters.theFilter can be used to limit the number of results returned (Filter.limit) or the user for who the results will be found (Filter.ownerId).
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • projection_async

        void projection_async​(AMD_IQuery_projection __cb,
                              java.lang.String query,
                              Parameters params,
                              Ice.Current __current)
                       throws ServerError
        Return a sequence of RType sequences.

        Each element of the outer sequence is one row in the return value. Each element of the inner sequence is one column specified in the HQL.

        IObject instances are returned wrapped in an RObject instance. Primitives are mapped to the expected RType subclass. Types without an RType mapper if returned will throw an exception if present in the select except where a manual conversion is present on the server. This includes:

        • Permissions instances are serialized to an RMap containing the keys: perms, canAnnotate, canEdit, canLink, canDelete, canChgrp, canChown
        • The quantity types like Length are serialized to an RMap containing the keys: value, unit, symbol

        As with SQL, if an aggregation statement is used, a group by clause must be added.

        Examples:

         select i.name, i.description from Image i where i.name like '%.dv'
         
         select tag.textValue, tagset.textValue from TagAnnotation tag join tag.annotationLinks l join l.child tagset
         
         select p.pixelsType.value, count(p.id) from Pixel p group by p.pixelsType.value
         

        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • refresh_async

        void refresh_async​(AMD_IQuery_refresh __cb,
                           IObject iObject,
                           Ice.Current __current)
                    throws ServerError
        Refreshes an entire IObject graph, recursive loading all data for the managed instances in the graph from the database. If any non-managed entities are detected (e.g. without ids), an ApiUsageException will be thrown.
        Parameters:
        __cb - The callback object for the operation.
        iObject - Non-null managed IObject graph which should have all values re-assigned from the database
        __current - The Current object for the invocation.
        Throws:
        ApiUsageException - if any non-managed entities are found.
        ServerError