public interface SearchableAttribute
A searchable attribute provides the following basic functions:
Searchable attributes are mapped to document types via the KEW extension framework (see
ExtensionRepositoryService
).
Through this extension mechanism, searchable attributes are designed to allow for re-use if desired. To
facilitate this, the name of the document type for which the operation is being performed is included for all such
methods which might make use of it. Additionally, all of the operations on a searchable attribute are passed the
ExtensionDefinition
which was used to define the instance of the searchable attribute and link it to the
document type. The extension definition can be defined to include additional configuration which can be used by the
various methods on the searchable attribute implementation. This allows for creating a single
SearchableAttribute
implementation which can then be parameterized externally by reusing the implementation
in the extension repository, but parameterizing it via one ore more extension definitions.
This interface is annotated to allow for it to be exposed as a JAXWS web service, so client applications
wanting to publish their own searchable attribute implementations may do so by publishing their search attribute
implementations on the bus. However, this is optional as it is possible to declare an extension definition for a searchable
attribute which uses the class name instead of a service name. In these cases, searchable attribute implementations
will be located and invoked via an application's
DocumentSearchCustomizationHandlerService
endpoint assuming that
the proper application id is associated with the extension definition.
DocumentSearchCustomizationHandlerService
,
ExtensionRepositoryService
,
ExtensionDefinition
,
WorkflowAttributeDefinition
Modifier and Type | Method and Description |
---|---|
List<DocumentAttribute> |
extractDocumentAttributes(ExtensionDefinition extensionDefinition,
DocumentWithContent documentWithContent)
Extracts and returns document attributes for the given document in order to allow indexing of those values for
association with the document and use in document searches.
|
String |
generateSearchContent(ExtensionDefinition extensionDefinition,
String documentTypeName,
WorkflowAttributeDefinition attributeDefinition)
Allows for generation of custom XML for this searchable attribute.
|
List<RemotableAttributeField> |
getSearchFields(ExtensionDefinition extensionDefinition,
String documentTypeName)
Returns a list of
RemotableAttributeField objects which define which searchable attribute criteria fields
should be included in the criteria section of the document search user interface for this searchable attribute. |
List<RemotableAttributeError> |
validateDocumentAttributeCriteria(ExtensionDefinition extensionDefinition,
DocumentSearchCriteria documentSearchCriteria)
Performs custom validation of document attribute values that come from this searchable attribute whenever a
document search is performed against a document type which uses this searchable attribute.
|
String generateSearchContent(ExtensionDefinition extensionDefinition, String documentTypeName, WorkflowAttributeDefinition attributeDefinition)
DocumentContentUpdate
). This XML is ultimately included as part of the
document's content.
It is intended that this XML can be used by the extractDocumentAttributes
method in order to pull
values out for indexing, though this method is free to use any source available to it for extracting data for
indexing alongside a document.
A null or blank value may be returned from this method to indicate that no XML was generated.
extensionDefinition
- the extension definition which was used to locate and load this searchable attribute
implementationdocumentTypeName
- the name of the document type for which this method is being invokedattributeDefinition
- contains parameters and properties that can be used to inform generation of the XML,
these are supplied by the user of the workflow API when the document's searchable XML content is requested to be
updatedList<DocumentAttribute> extractDocumentAttributes(ExtensionDefinition extensionDefinition, DocumentWithContent documentWithContent)
There are a finite set of DocumentAttribute
implementations which can be returned and interpreted
correctly. Client application's should not create custom extensions of the
DocumentAttribute
abstract class but should preferably use the
DocumentAttributeFactory
to construct strongly-typed document
attribute instances for indexing.
extensionDefinition
- the extension definition which was used to locate and load this searchable attribute
implementationdocumentWithContent
- the workflow document and it's XML contentDocumentAttributeFactory
List<RemotableAttributeField> getSearchFields(ExtensionDefinition extensionDefinition, String documentTypeName)
RemotableAttributeField
objects which define which searchable attribute criteria fields
should be included in the criteria section of the document search user interface for this searchable attribute.extensionDefinition
- the extension definition which was used to locate and load this searchable attribute
implementationdocumentTypeName
- the name of the document type for which this method is being invokedList<RemotableAttributeError> validateDocumentAttributeCriteria(ExtensionDefinition extensionDefinition, DocumentSearchCriteria documentSearchCriteria)
The entire DocumentSearchCriteria
is passed to this method, though it's intended that implementing
code will pull out the document attribute values on the criteria which are managed by this searchable attribute
and perform any desired validation. However, there are certainly no restrictions on this method that would
prevent it from performing validations outside of this scope and in relation to other portions of the criteria,
though this is certainly not the intent of this validation hook.
Note that this method is invoked when performing a document search from the user interface as well as via
the WorkflowDocumentService
api.
extensionDefinition
- the extension definition which was used to locate and load this searchable attribute
implementationdocumentSearchCriteria
- the criteria that was submitted to the document search and against which validation
is requestedCopyright © 2005–2016 The Kuali Foundation. All rights reserved.