Class DocumentSearchGeneratorImpl

java.lang.Object
org.kuali.rice.kew.impl.document.search.DocumentSearchGeneratorImpl
All Implemented Interfaces:
DocumentSearchGenerator

public class DocumentSearchGeneratorImpl extends Object implements DocumentSearchGenerator
Reference implementation of the DocumentSearchGenerator.
Author:
Kuali Rice Team (rice.collab@kuali.org)
  • Constructor Details

    • DocumentSearchGeneratorImpl

      public DocumentSearchGeneratorImpl()
  • Method Details

    • clearSearch

      public org.kuali.rice.kew.api.document.search.DocumentSearchCriteria clearSearch(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria criteria)
      Specified by:
      clearSearch in interface DocumentSearchGenerator
    • getValidDocumentType

      public DocumentType getValidDocumentType(String documentTypeFullName)
    • validateSearchableAttributes

      public List<org.kuali.rice.core.api.uif.RemotableAttributeError> validateSearchableAttributes(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria.Builder criteria)
      Specified by:
      validateSearchableAttributes in interface DocumentSearchGenerator
    • getSearchableAttributeSql

      public QueryComponent getSearchableAttributeSql(Map<String,List<String>> documentAttributeValues, List<org.kuali.rice.core.api.uif.RemotableAttributeField> searchFields, String whereClausePredicatePrefix)
    • generateSearchableAttributeSql

      public QueryComponent generateSearchableAttributeSql(String tableName, String documentAttributeName, String whereSqlStarter, int tableIndex)
    • getSearchableAttributeJoinSql

      public QueryComponent getSearchableAttributeJoinSql(String tableName, String tableIdentifier, String whereSqlStarter, String attributeTableKeyColumnName)
    • generateSearchableAttributeWhereClauseJoin

      public StringBuilder generateSearchableAttributeWhereClauseJoin(String whereSqlStarter, String tableIdentifier, String attributeTableKeyColumnName)
    • generateSearchableAttributeFromSql

      public StringBuilder generateSearchableAttributeFromSql(String tableName, String tableIdentifier)
    • constructWhereClauseElement

      public StringBuilder constructWhereClauseElement(String clauseStarter, String queryTableColumnName, String operand, String valueToSearch, String valuePrefix, String valueSuffix)
    • processResultSet

      public org.kuali.rice.kew.api.document.search.DocumentSearchResults.Builder processResultSet(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria criteria, boolean criteriaModified, Statement searchAttributeStatement, ResultSet resultSet, int maxResultCap, int fetchLimit) throws SQLException
      Specified by:
      processResultSet in interface DocumentSearchGenerator
      Throws:
      SQLException
    • processRow

      protected org.kuali.rice.kew.api.document.search.DocumentSearchResult.Builder processRow(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria criteria, Statement searchAttributeStatement, ResultSet rs) throws SQLException
      Processes the search result row, returning a DocumentSearchResult
      Parameters:
      criteria - the original search criteria
      searchAttributeStatement - statement being used to call the database for queries
      rs - the search result set
      Returns:
      a DocumentSearchResult representing the current ResultSet row
      Throws:
      SQLException
    • populateDocumentAttributesValues

      public void populateDocumentAttributesValues(org.kuali.rice.kew.api.document.search.DocumentSearchResult.Builder resultBuilder, Statement searchAttributeStatement) throws SQLException
      This method performs searches against the search attribute value tables (see classes implementing SearchableAttributeValue) to get data to fill in search attribute values on the given resultBuilder parameter
      Parameters:
      resultBuilder - - document search result object getting search attributes added to it
      searchAttributeStatement - - statement being used to call the database for queries
      Throws:
      SQLException
    • generateSearchSql

      public String generateSearchSql(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria criteria, List<org.kuali.rice.core.api.uif.RemotableAttributeField> searchFields)
      Specified by:
      generateSearchSql in interface DocumentSearchGenerator
    • getDocumentIdSql

      public String getDocumentIdSql(String documentId, String whereClausePredicatePrefix, String tableAlias)
    • getDocTitleSql

      public String getDocTitleSql(String docTitle, String whereClausePredicatePrefix)
    • getAppDocIdSql

      public String getAppDocIdSql(String appDocId, String whereClausePredicatePrefix)
    • getDateCreatedSql

      public String getDateCreatedSql(org.joda.time.DateTime fromDateCreated, org.joda.time.DateTime toDateCreated, String whereClausePredicatePrefix)
    • getDateApprovedSql

      public String getDateApprovedSql(org.joda.time.DateTime fromDateApproved, org.joda.time.DateTime toDateApproved, String whereClausePredicatePrefix)
    • getDateFinalizedSql

      public String getDateFinalizedSql(org.joda.time.DateTime fromDateFinalized, org.joda.time.DateTime toDateFinalized, String whereClausePredicatePrefix)
    • getDateLastModifiedSql

      public String getDateLastModifiedSql(org.joda.time.DateTime fromDateLastModified, org.joda.time.DateTime toDateLastModified, String whereClausePredicatePrefix)
    • getStatusTransitionDateSql

      public String getStatusTransitionDateSql(org.joda.time.DateTime fromStatusTransitionDate, org.joda.time.DateTime toStatusTransitionDate, String whereClausePredicatePrefix)
    • getViewerSql

      public String getViewerSql(String viewer, String whereClausePredicatePrefix)
    • getViewerIdSql

      public String getViewerIdSql(String viewerId, String whereClausePredicatePrefix)
    • getGroupViewerSql

      public String getGroupViewerSql(String groupId, String whereClausePredicatePrefix)
    • getInitiatorSql

      public String getInitiatorSql(String initiatorPrincipalName, String whereClausePredicatePrefix)
    • getInitiatorIdSql

      public String getInitiatorIdSql(String initiatorPrincipalId, String whereClausePredicatePrefix)
    • getApproverSql

      public String getApproverSql(String approver, String whereClausePredicatePrefix)
    • getApproverIdSql

      public String getApproverIdSql(String approverId, String whereClausePredicatePrefix)
    • getDocTypeFullNameWhereSql

      public String getDocTypeFullNameWhereSql(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria criteria, String whereClausePredicatePrefix)
    • addChildDocumentTypes

      public void addChildDocumentTypes(StringBuilder whereSql, Collection<DocumentType> childDocumentTypes)
    • addDocumentTypeNameToSearchOn

      public void addDocumentTypeNameToSearchOn(StringBuilder whereSql, String documentTypeName)
    • addDocumentTypeNameToSearchOn

      public void addDocumentTypeNameToSearchOn(StringBuilder whereSql, String documentTypeName, String clause)
    • addDocumentTypeLikeNameToSearchOn

      public void addDocumentTypeLikeNameToSearchOn(StringBuilder whereSql, String documentTypeName, String clause)
    • getDocRouteNodeSql

      public String getDocRouteNodeSql(String documentTypeFullName, String routeNodeName, org.kuali.rice.kew.api.document.search.RouteNodeLookupLogic docRouteLevelLogic, String whereClausePredicatePrefix)
    • getDocumentStatusSql

      public String getDocumentStatusSql(List<org.kuali.rice.kew.api.document.DocumentStatus> documentStatuses, List<org.kuali.rice.kew.api.document.DocumentStatusCategory> categories, String whereClausePredicatePrefix)
    • getAppDocStatusesSql

      public String getAppDocStatusesSql(List<String> appDocStatuses, String whereClausePredicatePrefix, int statusTransitionWhereClauseLength)
      This method generates the where clause fragment related to Application Document Status. If the Status values only are defined, search for the appDocStatus value in the route header. If either the transition from/to dates are defined, search agains the status transition history.
    • getGeneratedPredicatePrefix

      public String getGeneratedPredicatePrefix(int whereClauseSize)
    • establishDateString

      public String establishDateString(org.joda.time.DateTime fromDate, org.joda.time.DateTime toDate, String tableName, String tableAlias, String colName, String whereStatementClause)
    • getDbPlatform

      public org.kuali.rice.core.framework.persistence.platform.DatabasePlatform getDbPlatform()
    • getSqlBuilder

      public org.kuali.rice.core.framework.persistence.jdbc.sql.SqlBuilder getSqlBuilder()
    • setSqlBuilder

      public void setSqlBuilder(org.kuali.rice.core.framework.persistence.jdbc.sql.SqlBuilder sqlBuilder)
    • isUsingAtLeastOneSearchAttribute

      protected boolean isUsingAtLeastOneSearchAttribute(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria criteria)
      A helper method for determining whether any searchable attributes are in use for the search.
      Returns:
      True if the search criteria contains at least one searchable attribute or the criteria's doc type name is non-blank; false otherwise.
    • getApiDocumentTypeService

      protected org.kuali.rice.kew.api.doctype.DocumentTypeService getApiDocumentTypeService()
    • setApiDocumentTypeService

      protected void setApiDocumentTypeService(org.kuali.rice.kew.api.doctype.DocumentTypeService apiDocumentTypeService)