Interface DocumentSearchCriteriaContract

All Known Implementing Classes:
DocumentSearchCriteria, DocumentSearchCriteria.Builder

public interface DocumentSearchCriteriaContract
Defines the contract for criteria used to perform lookups of workflow document data. None of the elements that can be defined on the criteria are required. Therefore, any method on this class may return a null value, though in the case of collections, an empty collection will be returned instead.

In general, the different values on the criteria allow the standard lookup "operators" as defined by SearchOperator unless otherwise noted. The primary place where this differs is on principal name-based criteria (see below).

<On criteria which contains a principal name, the rules are as follows:

  • only literal principal names that resolve to a valid principal are allowed
  • however, if the principal names don't resolve to valid prinicpals, this simply means the lookup will return no results
  • "!" is allowed before a principal name
  • when wanting to search for more than one principal, "|" and "&&" is allowed though they cannot be used together

Wildcards, ranges, and other "inequality" operators (such as ">", "<", etc.) are not permitted on principal names.

In cases where a criteria element takes a list of values, this should be treated as an implicit "OR" by the lookup implementation. This is true of document attribute values as well, which are passed as a map keyed off the document attribute name with a list of values representing the document attribute values to be searched for.

The optional "save name" on the search defines a name under which the criteria can be stored so that it can be recalled and reused later.

Author:
Kuali Rice Team (rice.collab@kuali.org)
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns an optional list of additional document type name criteria against which to search.
    Returns the application document id criteria to search against when executing the document search.
    Deprecated.
    Return the list of application document statuses to match when executing the document search.
    Returns the criteria for the principal id of an "approver" of a document (someone who took action against the document) to search against when executing the document search.
    Returns the criteria for the principal name of an "approver" of a document (someone who took action against the document) to search against when executing the document search.
    org.joda.time.DateTime
    Returns the inclusive lower end of the date of application document status change criteria to search against when executing the document search.
    org.joda.time.DateTime
    Returns the inclusive upper end of the date of application document status change criteria to search against when executing the document search.
    org.joda.time.DateTime
    Returns the inclusive lower end of the date approved criteria to search against when executing the document search.
    org.joda.time.DateTime
    Returns the inclusive upper end of the date approved criteria to search against when executing the document search.
    org.joda.time.DateTime
    Returns the inclusive lower end of the date created criteria to search against when executing the document search.
    org.joda.time.DateTime
    Returns the inclusive upper end of the date created criteria to search against when executing the document search.
    org.joda.time.DateTime
    Returns the inclusive lower end of the date finalized criteria to search against when executing the document search.
    org.joda.time.DateTime
    Returns the inclusive upper end of the date finalized criteria to search against when executing the document search.
    org.joda.time.DateTime
    Returns the inclusive lower end of the date last modified criteria to search against when executing the document search.
    org.joda.time.DateTime
    Returns the inclusive upper end of the date last modified criteria to search against when executing the document search.
    Returns the principalId of the user performing the search
    Returns a map of document attribute values to search against when executing the document search.
    Returns the document id criteria to search against when executing the document search.
    Returns an unmodifiable list of document status categories to search against when executing the document search.
    Returns an unmodifiable list of document statuses to search against when executing the document search.
    Returns the document type name criteria to search against when executing the document search.
    Returns the criteria for the id of a group who is a "viewer" of a document (a group who received an action request related to the document) to search against when executing the document search.
    Returns the criteria for the name of a group who is a "viewer" of a document (a group who received an action request related to the document) to search against when executing the document search.
    Returns the criteria for the principal id of the document initiator to search against when executing the document search.
    Returns the criteria for the principal name of the document initiator to search against when executing the document search.
    Returns a string that indicates if a query was run in advanced mode.
    Returns the requested maximum number of documents that should be returned from a document search performed using this criteria.
    Returns the logic that should be used when performing a document search against the route name.
    Returns the route node name criteria to search against when executing the document search.
    Return the name under which to save this criteria so that it can be recalled and used again in the future.
    Returns a map of custom options for document search when either executing the document search or returning results.
    Returns the 0-based index in the result set at which to start returning results from a document search which is performed using this criteria.
    Returns the document title criteria to search against when executing the document search.
    Returns the criteria for the principal id of a "viewer" of a document (someone who received an action request related to the document) to search against when executing the document search.
    Returns the criteria for the principal name of a "viewer" of a document (someone who received an action request related to the document) to search against when executing the document search.
  • Method Details

    • getDocumentId

      String getDocumentId()
      Returns the document id criteria to search against when executing the document search.
      Returns:
      the document id criteria
    • getDocumentStatuses

      List<DocumentStatus> getDocumentStatuses()
      Returns an unmodifiable list of document statuses to search against when executing the document search. If there is more than one of these, then the search should treat this as an "OR" case (i.e. search for documents with one or more of these statuses).
      Returns:
      the document status criteria
    • getDocumentStatusCategories

      List<DocumentStatusCategory> getDocumentStatusCategories()
      Returns an unmodifiable list of document status categories to search against when executing the document search. If there is more than one of these, then the search should treat this as an "OR" case (i.e. search for documents that have a status contained in one or more of these categories).
      Returns:
      the document status category criteria
    • getTitle

      String getTitle()
      Returns the document title criteria to search against when executing the document search.
      Returns:
      the title criteria
    • getApplicationDocumentId

      String getApplicationDocumentId()
      Returns the application document id criteria to search against when executing the document search.
      Returns:
      the application document id criteria
    • getApplicationDocumentStatus

      @Deprecated String getApplicationDocumentStatus()
      Deprecated.
      Returns the application document status criteria to search against when executing the document search.
      Returns:
      the application document status criteria
    • getInitiatorPrincipalName

      String getInitiatorPrincipalName()
      Returns the criteria for the principal name of the document initiator to search against when executing the document search. Follows the rules for principal name criteria (see class-level documentation).
      Returns:
      the initiator principal name criteria
    • getInitiatorPrincipalId

      String getInitiatorPrincipalId()
      Returns the criteria for the principal id of the document initiator to search against when executing the document search.
      Returns:
      the initiator principal id criteria
    • getViewerPrincipalName

      String getViewerPrincipalName()
      Returns the criteria for the principal name of a "viewer" of a document (someone who received an action request related to the document) to search against when executing the document search. Follows the rules for principal name criteria (see class-level documentation).
      Returns:
      the viewer principal name criteria
    • getViewerPrincipalId

      String getViewerPrincipalId()
      Returns the criteria for the principal id of a "viewer" of a document (someone who received an action request related to the document) to search against when executing the document search.
      Returns:
      the viewer principal id criteria
    • getGroupViewerId

      String getGroupViewerId()
      Returns the criteria for the id of a group who is a "viewer" of a document (a group who received an action request related to the document) to search against when executing the document search. Group id criteria follows rules similar to principal name criteria:
      • only literal group ids that resolve to a valid group are allowed
      • however, if the group ids don't resolve to valid groups, this simply means the search will return no results
      • "!" is allowed before a group id
      • when wanting to search on more than one viewer group id, use of "|" and "&&" is allowed, though they cannot be used together
      Returns:
      the viewer principal name criteria
    • getGroupViewerName

      String getGroupViewerName()
      Returns the criteria for the name of a group who is a "viewer" of a document (a group who received an action request related to the document) to search against when executing the document search. Group name criteria follows rules similar to principal name criteria:
      • only literal group names that resolve to a valid group are allowed
      • however, if the group names don't resolve to valid groups, this simply means the search will return no results
      • "!" is allowed before a group id
      • when wanting to search on more than one viewer group name, use of "|" and "&&" is allowed, though they cannot be used together
      Returns:
      the viewer principal name criteria
    • getApproverPrincipalName

      String getApproverPrincipalName()
      Returns the criteria for the principal name of an "approver" of a document (someone who took action against the document) to search against when executing the document search. Follows the rules for principal name criteria (see class-level documentation).
      Returns:
      the viewer principal name criteria
    • getApproverPrincipalId

      String getApproverPrincipalId()
      Returns the criteria for the principal id of an "approver" of a document (someone who took action against the document) to search against when executing the document search.
      Returns:
      the viewer principal id criteria
    • getRouteNodeName

      String getRouteNodeName()
      Returns the route node name criteria to search against when executing the document search. By default this will match only documents which are at the node with the given name, unless getRouteNodeLookupLogic() returns a non-null value that specifies different criteria for how the route node-based lookup should be performed.
      Returns:
      the route node name criteria
    • getRouteNodeLookupLogic

      RouteNodeLookupLogic getRouteNodeLookupLogic()
      Returns the logic that should be used when performing a document search against the route name. This essentially allows for the criteria to specify whether or not it should look at documents which are currently before, exactly at, or after the specified route node. This value only has an effect if the route node name is also defined on this criteria.
      Returns:
      the route node lookup logic to use in conjunction with the route node name criteria
    • getDocumentTypeName

      String getDocumentTypeName()
      Returns the document type name criteria to search against when executing the document search. If the document type name matches a single document type exactly, this might trigger document search customizations which are tied to that document type (assuming the document type has such customizations configured).

      In order for the map of document attribute values to be properly searchable, this document type name should result to a valid document type. This is because the document type itself defines information about custom document attributes and the parameters around how searches against those attributes can be executed.

      Note that searches against a document type name should be document type hierarchy-aware. Meaning that the search should also return results for any documents that have document types that are children of the specified document type name (assuming that the specified document type name is valid and not wildcarded at all).

      Returns:
      the document type name criteria
    • getAdditionalDocumentTypeNames

      List<String> getAdditionalDocumentTypeNames()
      Returns an optional list of additional document type name criteria against which to search. The search should effectively return all documents that have a document type name within the set of the main document type name on the criteria as well as any additional document type names.

      As with getDocumentTypeName(), the additional document type name criteria is document type hierarchy aware.

      Returns:
      the list of additional document type names to use on the search criteria
    • getDateCreatedFrom

      org.joda.time.DateTime getDateCreatedFrom()
      Returns the inclusive lower end of the date created criteria to search against when executing the document search.
      Returns:
      the date created "from" criteria
    • getDateCreatedTo

      org.joda.time.DateTime getDateCreatedTo()
      Returns the inclusive upper end of the date created criteria to search against when executing the document search.
      Returns:
      the date created "to" criteria
    • getDateLastModifiedFrom

      org.joda.time.DateTime getDateLastModifiedFrom()
      Returns the inclusive lower end of the date last modified criteria to search against when executing the document search.
      Returns:
      the date last modified "from" criteria
    • getDateLastModifiedTo

      org.joda.time.DateTime getDateLastModifiedTo()
      Returns the inclusive upper end of the date last modified criteria to search against when executing the document search.
      Returns:
      the date last modified "to" criteria
    • getDateApprovedFrom

      org.joda.time.DateTime getDateApprovedFrom()
      Returns the inclusive lower end of the date approved criteria to search against when executing the document search.
      Returns:
      the date approved "from" criteria
    • getDateApprovedTo

      org.joda.time.DateTime getDateApprovedTo()
      Returns the inclusive upper end of the date approved criteria to search against when executing the document search.
      Returns:
      the date approved "tp" criteria
    • getDateFinalizedFrom

      org.joda.time.DateTime getDateFinalizedFrom()
      Returns the inclusive lower end of the date finalized criteria to search against when executing the document search.
      Returns:
      the date finalized "from" criteria
    • getDateFinalizedTo

      org.joda.time.DateTime getDateFinalizedTo()
      Returns the inclusive upper end of the date finalized criteria to search against when executing the document search.
      Returns:
      the date finalized "to" criteria
    • getDateApplicationDocumentStatusChangedFrom

      org.joda.time.DateTime getDateApplicationDocumentStatusChangedFrom()
      Returns the inclusive lower end of the date of application document status change criteria to search against when executing the document search.
      Returns:
      the date application document status changed "from" criteria
    • getDateApplicationDocumentStatusChangedTo

      org.joda.time.DateTime getDateApplicationDocumentStatusChangedTo()
      Returns the inclusive upper end of the date of application document status change criteria to search against when executing the document search.
      Returns:
      the date application document status changed "to" criteria
    • getDocumentAttributeValues

      Map<String,List<String>> getDocumentAttributeValues()
      Returns a map of document attribute values to search against when executing the document search. The key of the map is the name of the document attribute, while the list of values contains values of those attributes to search against. These individual attribute values support the different search operations where appropriate. The resulting List of criteria values however should ultimately be "or"-ed together when executing the document search.

      In order for the document attribute values to be processed as part of the criteria during the search, the getDocumentTypeName() must return a valid name of a document type which is configured to understand the attributes passed as part of the document attribute values map.

      Returns:
    • getSearchOptions

      Map<String,List<String>> getSearchOptions()
      Returns a map of custom options for document search when either executing the document search or returning results. The key of the map is the name of the document attribute, while the list of values contains values of those attributes to customize against.

      In order for the search options to be processed as part of the criteria during the search, a custom document search customizer must be used to fill and process these values.

      Returns:
      Since:
      2.1.1
    • getSaveName

      String getSaveName()
      Return the name under which to save this criteria so that it can be recalled and used again in the future. If no save name is specified, then this criteria will not be saved for future use.
      Returns:
    • getStartAtIndex

      Integer getStartAtIndex()
      Returns the 0-based index in the result set at which to start returning results from a document search which is performed using this criteria. If not specified, results from the search should be returned starting at the beginning of the result set. If this index is larger then the total number of results returned by the actual search, then no values should be returned.
      Returns:
      the index in the result set at which to begin returning results
    • getMaxResults

      Integer getMaxResults()
      Returns the requested maximum number of documents that should be returned from a document search performed using this criteria. If not specified, it is up to the document search implementation to decide how many results to return. It is likely in such cases that the implementation will use a default result cap in order to prevent too many documents from being returned.

      It is important to note that this value is meant simply as a request to the document search for the number of results to return. The implementation may return fewer results then requested if it decides to impose it's own internal cap on results.

      Returns:
      the requested number of maximum document results that should be returned from the search
    • getIsAdvancedSearch

      String getIsAdvancedSearch()
      Returns a string that indicates if a query was run in advanced mode.
      Returns:
      whether or not the search was run in advanced mode
    • getApplicationDocumentStatuses

      List<String> getApplicationDocumentStatuses()
      Return the list of application document statuses to match when executing the document search.
      Returns:
      the list of application document statuses to match
      Since:
      2.1.2
    • getDocSearchUserId

      String getDocSearchUserId()
      Returns the principalId of the user performing the search
      Returns:
      Since:
      2.1.2