Interface DocumentSearchCustomizationHandlerService


public interface DocumentSearchCustomizationHandlerService
A remotable service which handles processing of a client application's document search customizations.
Author:
Kuali Rice Team (rice.collab@kuali.org)
  • Method Details

    • getDocumentSearchConfiguration

      DocumentSearchCriteriaConfiguration getDocumentSearchConfiguration(String documentTypeName, List<String> searchableAttributeNames) throws org.kuali.rice.core.api.exception.RiceIllegalArgumentException
      Retrieves the custom DocumentSearchCriteriaConfiguration to use for the document type with the given name and for the given list of searchable attributes. This method is invoked by the document search implementation in order to help assemble the final criteria attribute fields (which includes configuration for all searchable attributes on the document type).

      The given list of searchable attribute names may not necessary include all searchable attribute on the document type, only those which need to be handled by the client application hosting this service. This determination is made based on the applicationId which is associated with the searchable attribute. Implementations of this method will assemble this information by invoking the SearchableAttribute.getSearchFields(org.kuali.rice.kew.api.extension.ExtensionDefinition, String) methods on each of the requested searchable attributes.

      Parameters:
      documentTypeName - the document type name for which to retrieve the configuration
      searchableAttributeNames - the names of the searchable attributes from which to assemble criteria configuration which are owned by the application hosting this service
      Returns:
      the custom document search criteria configuration for the given searchable attribute, or null if no custom configuration is needed
      Throws:
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException - if documentTypeName is a null or blank value
    • validateCriteria

      List<org.kuali.rice.core.api.uif.RemotableAttributeError> validateCriteria(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria documentSearchCriteria, List<String> searchableAttributeNames) throws org.kuali.rice.core.api.exception.RiceIllegalArgumentException
      Executes validation of the given DocumentSearchCriteria against the searchable attributes with the given names.. This method is invoked by the document search implementation in order to allow for validation to be customized via custom searchable attribute implementations.

      The given list of searchable attribute names may not necessary include all searchable attribute on the document type, only those which need to be handled by the client application hosting this service. This determination is made based on the applicationId which is associated with the searchable attribute. Implementations of this method execute this validationby invoking the SearchableAttribute.validateDocumentAttributeCriteria(org.kuali.rice.kew.api.extension.ExtensionDefinition, org.kuali.rice.kew.api.document.search.DocumentSearchCriteria) methods on each of the requested searchable attributes.

      Parameters:
      documentSearchCriteria - the criteria against which to perform the validation
      searchableAttributeNames - the names of the searchable attributes against which to execute validation which are owned by the application hosting this service
      Returns:
      a list or remotable attribute errors in the case that any validation errors were raised by the requested searchable attributes
      Throws:
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException - if documentTypeName is a null or blank value
    • customizeCriteria

      org.kuali.rice.kew.api.document.search.DocumentSearchCriteria customizeCriteria(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria documentSearchCriteria, String customizerName) throws org.kuali.rice.core.api.exception.RiceIllegalArgumentException
      Executes criteria customization against the given criteria using the DocumentSearchCustomizer with the given customizer name. This name is the name of the ExtensionDefinition that defines the customizer where the customizer extension's applicationId is the same as the application hosting this service.

      This method effectively invokes the DocumentSearchCustomizer.customizeCriteria(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria) on the requested customizer which is owned by this application.

      Parameters:
      documentSearchCriteria - the criteria to customize
      customizerName - the name of the extension definition for the DocumentSearchCustomizer which should be used in order to execute the customization
      Returns:
      the customized criteria, or null if no customization was performed
      Throws:
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException - if documentSearchCriteria is null
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException - if customizerName is a null or blank value
    • customizeClearCriteria

      org.kuali.rice.kew.api.document.search.DocumentSearchCriteria customizeClearCriteria(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria documentSearchCriteria, String customizerName) throws org.kuali.rice.core.api.exception.RiceIllegalArgumentException
      Executes custom criteria clearing against the given criteria using the DocumentSearchCustomizer with the given customizer name. This name is the name of the ExtensionDefinition that defines the customizer where the customizer extension's applicationId is the same as the application hosting this service.

      This method effectively invokes the DocumentSearchCustomizer.customizeClearCriteria(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria) on the requested customizer which is owned by this application.

      Parameters:
      documentSearchCriteria - the criteria on which to perform custom clearing
      customizerName - the name of the extension definition for the DocumentSearchCustomizer which should be used in order to execute the customization
      Returns:
      the cleared criteria, or null if no custom clear was performed
      Throws:
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException - if documentSearchCriteria is null
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException - if customizerName is a null or blank value
    • customizeResults

      DocumentSearchResultValues customizeResults(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria documentSearchCriteria, List<org.kuali.rice.kew.api.document.search.DocumentSearchResult> results, String customizerName) throws org.kuali.rice.core.api.exception.RiceIllegalArgumentException
      Executes customization of document search results using the DocumentSearchCustomizer with the given customizer name. This name is the name of the ExtensionDefinition that defines the customizer where the customizer extension's applicationId is the same as the application hosting this service.

      This method effectively invokes the DocumentSearchCustomizer.customizeResults(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria, java.util.List) on the requested customizer which is owned by this application.

      Parameters:
      documentSearchCriteria - the criteria that was used to perform the lookup
      results - the results that were returned from the lookup
      customizerName - the name of the extension definition for the DocumentSearchCustomizer which should be used in order to execute the customization
      Returns:
      the customized document search results values, or null if no customization was performed
      Throws:
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException - if documentSearchCriteria is null
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException - if results is null
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException - if customizerName is a null or blank value
    • customizeResultSetConfiguration

      DocumentSearchResultSetConfiguration customizeResultSetConfiguration(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria documentSearchCriteria, String customizerName) throws org.kuali.rice.core.api.exception.RiceIllegalArgumentException
      Executes customization of document search result set configuration using the DocumentSearchCustomizer with the given customizer name. This name is the name of the ExtensionDefinition that defines the customizer where the customizer extension's applicationId is the same as the application hosting this service.

      This method effectively invokes the DocumentSearchCustomizer.customizeResultSetConfiguration(org.kuali.rice.kew.api.document.search.DocumentSearchCriteria) on the requested customizer which is owned by this application.

      Parameters:
      documentSearchCriteria - the criteria that was used to perform the lookup
      customizerName - the name of the extension definition for the DocumentSearchCustomizer which should be used in order to execute the customization
      Returns:
      the customized document search result configuration, or null if no customization was performed
      Throws:
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException - if documentSearchCriteria is null
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException - if customizerName is a null or blank value
    • getEnabledCustomizations

      Set<DocumentSearchCustomization> getEnabledCustomizations(String documentTypeName, String customizerName) throws org.kuali.rice.core.api.exception.RiceIllegalArgumentException
      Returns the set of customizations that are enabled and should be executed for the DocumentSearchCustomizer with the given customizer name. This name is the name of the ExtensionDefinition that defines the customizer where the customizer extension's applicationId is the same as the application hosting this service.

      This method essentially invokes the various boolean methods on the DocumentSearchCustomizer which indicate which customizations the implementation provides. This primarily serves as a means of optimization to reduce the number of remote callbacks that the document search implementation needs to make to the various customizations provided by this service and the customizers it delegates too.

      Parameters:
      documentTypeName - the name of the document type against which to check for enabled customizations on the specified customizer
      customizerName - the name of the extension definition for the DocumentSearchCustomizer which should be used in order to check for enabled customizations
      Returns:
      the set of customizations that are enabled
      Throws:
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException - if documentTypeName is a null or blank value
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException - if customizerName is a null or blank value