Package omero.api

Interface _SearchOperations

  • All Superinterfaces:
    _ServiceInterfaceOperations, _StatefulServiceInterfaceOperations
    All Known Subinterfaces:
    Search
    All Known Implementing Classes:
    _SearchDisp, _SearchTie, SearchI

    public interface _SearchOperations
    extends _StatefulServiceInterfaceOperations
    Central search interface, allowing Web2.0 style queries. Each Search instance keeps up with several queries and lazily-loads the results as hasNext, next and results are called. These queries are created by the by* methods. Each instance also has a number of settings which can all be changed from their defaults via accessors, e.g. setBatchSize or setCaseSensitive. The only methods which are required for the proper functioning of a Search instance are:
    • onlyType, onlyTypes OR allTypes
    • Any by* method to create a query
    Use of the allTypes method is discouraged, since it is possibly very resource intensive, which is why any attempt to receive results without specifically setting types or allowing all is prohibited.
    See Also:
    IQuery
    • Method Detail

      • activeQueries_async

        void activeQueries_async​(AMD_Search_activeQueries __cb,
                                 Ice.Current __current)
                          throws ServerError
        Returns the number of active queries. This means that activeQueries gives the minimum number of remaining calls to results when batches are not merged.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • setBatchSize_async

        void setBatchSize_async​(AMD_Search_setBatchSize __cb,
                                int size,
                                Ice.Current __current)
                         throws ServerError
        Sets the maximum number of results that will be returned by one call to results. If batches are not merged, then results may often be less than the batch size. If batches are merged, then only the last call to results can be less than batch size. Note: some query types may not support batching at the query level, and all instances must then be loaded into memory simultaneously.
        Parameters:
        __cb - The callback object for the operation.
        size - maximum number of results per call to results
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • getBatchSize_async

        void getBatchSize_async​(AMD_Search_getBatchSize __cb,
                                Ice.Current __current)
                         throws ServerError
        Returns the current batch size. If setBatchSize has not been called, the default value will be in effect.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • setMergedBatches_async

        void setMergedBatches_async​(AMD_Search_setMergedBatches __cb,
                                    boolean merge,
                                    Ice.Current __current)
                             throws ServerError
        Set whether or not results from two separate queries can be returned in the same call to results.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • isMergedBatches_async

        void isMergedBatches_async​(AMD_Search_isMergedBatches __cb,
                                   Ice.Current __current)
                            throws ServerError
        Returns the current merged-batches setting. If setMergedBatches has not been called, the default value will be in effect.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • setCaseSentivice_async

        void setCaseSentivice_async​(AMD_Search_setCaseSentivice __cb,
                                    boolean caseSensitive,
                                    Ice.Current __current)
                             throws ServerError
        Deprecated.
        use setCaseSensitive instead
        Sets the case sensitivity on all queries where case-sensitivity is supported.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • setCaseSensitive_async

        void setCaseSensitive_async​(AMD_Search_setCaseSensitive __cb,
                                    boolean caseSensitive,
                                    Ice.Current __current)
                             throws ServerError
        Sets the case sensitivity on all queries where case-sensitivity is supported.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • isCaseSensitive_async

        void isCaseSensitive_async​(AMD_Search_isCaseSensitive __cb,
                                   Ice.Current __current)
                            throws ServerError
        Returns the current case sensitivity setting. If setCaseSensitive has not been called, the default value will be in effect.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • setUseProjections_async

        void setUseProjections_async​(AMD_Search_setUseProjections __cb,
                                     boolean useProjections,
                                     Ice.Current __current)
                              throws ServerError
        Determines if Lucene queries should not hit the database. Instead all values which are stored in the index will be loaded into the object, which includes the id. However, the entity will not be marked unloaded and therefore it is especially important to not allow a projection-instance to be saved back to the server. This can result in DATA LOSS.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • isUseProjections_async

        void isUseProjections_async​(AMD_Search_isUseProjections __cb,
                                    Ice.Current __current)
                             throws ServerError
        Returns the current use-projection setting. If true, the client must be careful with all results that are returned. See setUseProjections for more. If setUseProjections has not been called, the default value will be in effect.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • setReturnUnloaded_async

        void setReturnUnloaded_async​(AMD_Search_setReturnUnloaded __cb,
                                     boolean returnUnloaded,
                                     Ice.Current __current)
                              throws ServerError
        Determines if all results should be returned as unloaded objects. This is particularly useful for creating lists for further querying via IQuery. This value overrides the setUseProjections setting.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • isReturnUnloaded_async

        void isReturnUnloaded_async​(AMD_Search_isReturnUnloaded __cb,
                                    Ice.Current __current)
                             throws ServerError
        Returns the current return-unloaded setting. If true, all returned entities will be unloaded. If setReturnUnloaded has not been called, the default value will be in effect.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • setAllowLeadingWildcard_async

        void setAllowLeadingWildcard_async​(AMD_Search_setAllowLeadingWildcard __cb,
                                           boolean allowLeadingWildcard,
                                           Ice.Current __current)
                                    throws ServerError
        Permits full-text queries with a leading query if true.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • isAllowLeadingWildcard_async

        void isAllowLeadingWildcard_async​(AMD_Search_isAllowLeadingWildcard __cb,
                                          Ice.Current __current)
                                   throws ServerError
        Returns the current leading-wildcard setting. If false, byFullText and bySomeMustNone will throw an ApiUsageException, since leading-wildcard searches are quite slow. Use setAllowLeadingWildcard in order to permit this usage.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • onlyType_async

        void onlyType_async​(AMD_Search_onlyType __cb,
                            java.lang.String klass,
                            Ice.Current __current)
                     throws ServerError
        Restricts the search to a single type. All return values will match this type.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • onlyTypes_async

        void onlyTypes_async​(AMD_Search_onlyTypes __cb,
                             java.util.List<java.lang.String> classes,
                             Ice.Current __current)
                      throws ServerError
        Restricts searches to a set of types. The entities returned are guaranteed to be one of these types.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • allTypes_async

        void allTypes_async​(AMD_Search_allTypes __cb,
                            Ice.Current __current)
                     throws ServerError
        Permits all types to be returned. For some types of queries, this carries a performance penalty as every database table must be hit.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • onlyIds_async

        void onlyIds_async​(AMD_Search_onlyIds __cb,
                           java.util.List<java.lang.Long> ids,
                           Ice.Current __current)
                    throws ServerError
        Restricts the set of ids which will be checked. This is useful for testing one of the given restrictions on a reduced set of objects.
        Parameters:
        __cb - The callback object for the operation.
        ids - Can be null, in which case the previous restriction is removed.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • onlyOwnedBy_async

        void onlyOwnedBy_async​(AMD_Search_onlyOwnedBy __cb,
                               Details d,
                               Ice.Current __current)
                        throws ServerError
        Uses the Details.getOwner() and Details.getGroup() information to restrict the entities which will be returned. If both are non-null, the two restrictions are joined by an AND.
        Parameters:
        __cb - The callback object for the operation.
        d - Can be null, in which case the previous restriction is removed.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • notOwnedBy_async

        void notOwnedBy_async​(AMD_Search_notOwnedBy __cb,
                              Details d,
                              Ice.Current __current)
                       throws ServerError
        Uses the Details.getOwner() and Details.getGroup() information to restrict the entities which will be returned. If both are non-null, the two restrictions are joined by an AND.
        Parameters:
        __cb - The callback object for the operation.
        d - Can be null, in which case the previous restriction is removed.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • onlyCreatedBetween_async

        void onlyCreatedBetween_async​(AMD_Search_onlyCreatedBetween __cb,
                                      RTime start,
                                      RTime stop,
                                      Ice.Current __current)
                               throws ServerError
        Restricts the time between which an entity may have been created.
        Parameters:
        __cb - The callback object for the operation.
        start - Can be null, i.e. interval open to negative infinity.
        stop - Can be null, i.e. interval opens to positive infinity.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • onlyModifiedBetween_async

        void onlyModifiedBetween_async​(AMD_Search_onlyModifiedBetween __cb,
                                       RTime start,
                                       RTime stop,
                                       Ice.Current __current)
                                throws ServerError
        Restricts the time between which an entity may have last been modified.
        Parameters:
        __cb - The callback object for the operation.
        start - Can be null, i.e. interval open to negative infinity.
        stop - Can be null, i.e. interval open to positive infinity.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • onlyAnnotatedBetween_async

        void onlyAnnotatedBetween_async​(AMD_Search_onlyAnnotatedBetween __cb,
                                        RTime start,
                                        RTime stop,
                                        Ice.Current __current)
                                 throws ServerError
        Restricts entities by the time in which any annotation (which matches the other filters) was added them. This matches the Details.getCreationEvent() creation event of the Annotation.
        Parameters:
        __cb - The callback object for the operation.
        start - Can be null, i.e. interval open to negative infinity.
        stop - Can be null, i.e. interval open to positive infinity.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • onlyAnnotatedBy_async

        void onlyAnnotatedBy_async​(AMD_Search_onlyAnnotatedBy __cb,
                                   Details d,
                                   Ice.Current __current)
                            throws ServerError
        Restricts entities by who has annotated them with an Annotation matching the other filters. As onlyOwnedBy, the Details.getOwner() and Details.getGroup() information is combined with an AND condition.
        Parameters:
        __cb - The callback object for the operation.
        d - Can be null, in which case any previous restriction is removed.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • notAnnotatedBy_async

        void notAnnotatedBy_async​(AMD_Search_notAnnotatedBy __cb,
                                  Details d,
                                  Ice.Current __current)
                           throws ServerError
        Restricts entities by who has not annotated them with an Annotation matching the other filters. As notOwnedBy, the Details.getOwner() and Details.getGroup() information is combined with an AND condition.
        Parameters:
        __cb - The callback object for the operation.
        d - Can be null, in which case any previous restriction is removed.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • onlyAnnotatedWith_async

        void onlyAnnotatedWith_async​(AMD_Search_onlyAnnotatedWith __cb,
                                     java.util.List<java.lang.String> classes,
                                     Ice.Current __current)
                              throws ServerError
        Restricts entities to having an Annotation of all the given types. This is useful in combination with the other onlyAnnotated* methods to say, e.g., only annotated with a file by user X. By default, this value is null and imposes no restriction. Passing an empty array implies an object that is not annotated at all. Note: If the semantics were OR, then a client would have to query each class individually, and compare all the various values, checking which ids are where. However, since this method defaults to AND, multiple calls (optionally with isMergedBatches and isReturnUnloaded) and combine the results. Duplicate ids are still possible so a set of some form should be used to collect the results.
        Parameters:
        __cb - The callback object for the operation.
        classes - Can be empty, in which case restriction is removed.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • addOrderByAsc_async

        void addOrderByAsc_async​(AMD_Search_addOrderByAsc __cb,
                                 java.lang.String path,
                                 Ice.Current __current)
                          throws ServerError
        A path from the target entity which will be added to the current stack of order statements applied to the query.
        Parameters:
        __cb - The callback object for the operation.
        path - Non-null.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • addOrderByDesc_async

        void addOrderByDesc_async​(AMD_Search_addOrderByDesc __cb,
                                  java.lang.String path,
                                  Ice.Current __current)
                           throws ServerError
        A path from the target entity which will be added to the current stack of order statements applied to the query.
        Parameters:
        __cb - The callback object for the operation.
        path - Non-null.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • unordered_async

        void unordered_async​(AMD_Search_unordered __cb,
                             Ice.Current __current)
                      throws ServerError
        Removes the current stack of order statements.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • fetchAnnotations_async

        void fetchAnnotations_async​(AMD_Search_fetchAnnotations __cb,
                                    java.util.List<java.lang.String> classes,
                                    Ice.Current __current)
                             throws ServerError
        Queries the database for all Annotation annotations of the given types for all returned instances.
        Parameters:
        __cb - The callback object for the operation.
        classes - Can be empty, which removes previous fetch setting.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • fetchAlso_async

        void fetchAlso_async​(AMD_Search_fetchAlso __cb,
                             java.util.List<java.lang.String> fetches,
                             Ice.Current __current)
                      throws ServerError
        Adds a fetch clause for loading non-annotation fields of returned entities. Each fetch is a hibernate clause in dot notation.
        Parameters:
        __cb - The callback object for the operation.
        fetches - Can be empty, which removes previous fetch setting.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • resetDefaults_async

        void resetDefaults_async​(AMD_Search_resetDefaults __cb,
                                 Ice.Current __current)
                          throws ServerError
        Resets all settings (non-query state) to the original default values, as if the instance had just be created.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • byGroupForTags_async

        void byGroupForTags_async​(AMD_Search_byGroupForTags __cb,
                                  java.lang.String group,
                                  Ice.Current __current)
                           throws ServerError
        Returns transient (without ID) TagAnnotation instances which represent all the TagAnnotation tags in the given group. The entities are transient and without ownership since multiple users can own the same tag. This method will override settings for types.
        Parameters:
        __cb - The callback object for the operation.
        group - Can be null or empty to return all tags.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • byTagForGroups_async

        void byTagForGroups_async​(AMD_Search_byTagForGroups __cb,
                                  java.lang.String tag,
                                  Ice.Current __current)
                           throws ServerError
        Creates a query which will return transient (without ID) TagAnnotation instances which represent all the TagAnnotation tag groups which the given tag belongs to. The entities are transient and without ownership since multiple users can own the same tag group. This method will override settings for types.
        Parameters:
        __cb - The callback object for the operation.
        tag - Can be null or empty to return all groups.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • byFullText_async

        void byFullText_async​(AMD_Search_byFullText __cb,
                              java.lang.String query,
                              Ice.Current __current)
                       throws ServerError
        Passes the query as is to the Lucene backend.
        Parameters:
        __cb - The callback object for the operation.
        query - May not be null or of zero length.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • byLuceneQueryBuilder_async

        void byLuceneQueryBuilder_async​(AMD_Search_byLuceneQueryBuilder __cb,
                                        java.lang.String fields,
                                        java.lang.String from,
                                        java.lang.String to,
                                        java.lang.String dateType,
                                        java.lang.String query,
                                        Ice.Current __current)
                                 throws ServerError
        Builds a Lucene query and passes it to the Lucene backend.
        Parameters:
        __cb - The callback object for the operation.
        fields - The fields (comma separated) to search in (name, description, ...)
        from - The date range from, in the form YYYYMMDD (may be null)
        to - The date range to (inclusive), in the form YYYYMMDD (may be null)
        dateType - DATE_TYPE_ACQUISITION or DATE_TYPE_IMPORT
        query - May not be null or of zero length.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • bySimilarTerms_async

        void bySimilarTerms_async​(AMD_Search_bySimilarTerms __cb,
                                  java.util.List<java.lang.String> terms,
                                  Ice.Current __current)
                           throws ServerError
        Returns transient (without ID) TextAnnotation instances which represent terms which are similar to the given terms. For example, if the argument is cell, one return value might have as its textValue: cellular while another has cellularize. No filtering or fetching is performed.
        Parameters:
        __cb - The callback object for the operation.
        terms - Cannot be empty.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • byHqlQuery_async

        void byHqlQuery_async​(AMD_Search_byHqlQuery __cb,
                              java.lang.String query,
                              Parameters params,
                              Ice.Current __current)
                       throws ServerError
        Delegates to omero.api.IQuery.findAllByQuery method to take advantage of the and, or, and not methods, or queue-semantics.
        Parameters:
        __cb - The callback object for the operation.
        query - Not null.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • bySomeMustNone_async

        void bySomeMustNone_async​(AMD_Search_bySomeMustNone __cb,
                                  java.util.List<java.lang.String> some,
                                  java.util.List<java.lang.String> must,
                                  java.util.List<java.lang.String> none,
                                  Ice.Current __current)
                           throws ServerError
        Builds a Lucene query and passes it to byFullText.
        Parameters:
        __cb - The callback object for the operation.
        some - Some (at least one) of these terms must be present in the document. May be null.
        must - All of these terms must be present in the document. May be null.
        none - None of these terms may be present in the document. May be null.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • byAnnotatedWith_async

        void byAnnotatedWith_async​(AMD_Search_byAnnotatedWith __cb,
                                   java.util.List<Annotation> examples,
                                   Ice.Current __current)
                            throws ServerError
        Finds entities annotated with an Annotation similar to the example. This does not use Hibernate's omero.api.IQuery.findByExample Query-By-Example} mechanism, since that cannot handle joins. The fields which are used are: If the main content is null it is assumed to be a wildcard searched, and only the type of the annotation is searched. Currently, ListAnnotations are not supported.
        Parameters:
        __cb - The callback object for the operation.
        examples - Not empty.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • clearQueries_async

        void clearQueries_async​(AMD_Search_clearQueries __cb,
                                Ice.Current __current)
                         throws ServerError
        Removes all active queries (leaving resetDefaults settings alone), such that activeQueries will return 0.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • and_async

        void and_async​(AMD_Search_and __cb,
                       Ice.Current __current)
                throws ServerError
        Applies the next by* method to the previous by* method, so that a call hasNext, next, or results sees only the intersection of the two calls. For example,
         
         service.onlyType(Image.class);
         service.byFullText(&quot;foo&quot;);
         service.intersection();
         service.byAnnotatedWith(TagAnnotation.class);
         
         
        will return only the Images with TagAnnotations.

        Calling this method overrides a previous setting of or or not. If there is no active queries (i.e. activeQueries > 0), then an ApiUsageException will be thrown.

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

        void or_async​(AMD_Search_or __cb,
                      Ice.Current __current)
               throws ServerError
        Applies the next by* method to the previous by* method, so that a call hasNext, next or results sees only the union of the two calls. For example,
         
         service.onlyType(Image.class);
         service.byFullText(&quot;foo&quot;);
         service.or();
         service.onlyType(Dataset.class);
         service.byFullText(&quot;foo&quot;);
         
         
        will return both Images and Datasets together. Calling this method overrides a previous setting of and or not. If there is no active queries (i.e. activeQueries > 0), then an ApiUsageException will be thrown.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • not_async

        void not_async​(AMD_Search_not __cb,
                       Ice.Current __current)
                throws ServerError
        Applies the next by* method to the previous by* method, so that a call hasNext, next, or results sees only the intersection of the two calls. For example,
         
         service.onlyType(Image.class);
         service.byFullText(&quot;foo&quot;);
         service.complement();
         service.byAnnotatedWith(TagAnnotation.class);
         
         
        will return all the Images not annotated with TagAnnotation.

        Calling this method overrides a previous setting of or or and. If there is no active queries (i.e. activeQueries > 0), then an ApiUsageException will be thrown.

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

        void hasNext_async​(AMD_Search_hasNext __cb,
                           Ice.Current __current)
                    throws ServerError
        Returns true if another call to next is valid. A call to next may throw an exception for another reason, however.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • next_async

        void next_async​(AMD_Search_next __cb,
                        Ice.Current __current)
                 throws ServerError
        Returns the next entity from the current query. If the previous call returned the last entity from a given query, the first entity from the next query will be returned and activeQueries decremented. Since this method only returns the entity itself, a single call to currentMetadata may follow this call to gather the extra metadata which is returned in the map via results.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ApiUsageException - if {code hasNext} returns false.
        ServerError
      • results_async

        void results_async​(AMD_Search_results __cb,
                           Ice.Current __current)
                    throws ServerError
        Returns up to getBatchSize batch size number of results along with the related query metadata. If isMergedBatches batches are merged then the results from multiple queries may be returned together.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ApiUsageException - if hasNext returns false.
        ServerError
      • currentMetadata_async

        void currentMetadata_async​(AMD_Search_currentMetadata __cb,
                                   Ice.Current __current)
                            throws ServerError
        Provides access to the extra query information (for example Lucene score and boost values) for a single call to next. This method may only be called once for any given call to next.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • currentMetadataList_async

        void currentMetadataList_async​(AMD_Search_currentMetadataList __cb,
                                       Ice.Current __current)
                                throws ServerError
        Provides access to the extra query information (for example Lucene score and boost values) for a single call to results. This method may only be called once for any given call to results.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError
      • remove_async

        void remove_async​(AMD_Search_remove __cb,
                          Ice.Current __current)
                   throws ServerError
        Unsupported operation.
        Parameters:
        __cb - The callback object for the operation.
        __current - The Current object for the invocation.
        Throws:
        ServerError