org.kuali.rice.krad.datadictionary.validation
Interface AttributeValueReader

All Known Implementing Classes:
BaseAttributeValueReader, DictionaryObjectAttributeValueReader, MaintenanceDocumentAttributeValueReader, SingleAttributeValueReader, ViewAttributeValueReader

public interface AttributeValueReader

An interface to define classes that encapsulate access to both dictionary metadata and object field values, for example, by reflection and introspection, for the purpose of performing validation against constraints defined in the DictionaryValidationService implementation. Practically speaking, this interface should only need to be implemented by a small number of classes. The two major use cases are for (1) a dictionary object with members (2) a specific member of a dictionary object In the first case, implementing classes should provide access to all underlying members of the object via reflection or some other mechanism. In the second case, implementing classes only need to provide access to the value associated with that specific member, and constraints requiring access to additional members will be skipped.

Since:
1.1
Author:
Kuali Rice Team (rice.collab@kuali.org)

Method Summary
 AttributeValueReader clone()
           
 String getAttributeName()
          This method is an accessor for the attribute name that is currently being processed by the DictionaryValidationService implementation.
 List<String> getCleanSearchableValues(String attributeName)
          A method to enable legacy processing of string representations of attribute values like a date range in the format 12/03/2001..1/29/2009
 Constrainable getDefinition(String attributeName)
          This method provides access to the constrainable attribute definition of a specific attribute name.
 List<Constrainable> getDefinitions()
          This method returns a list of all constrainable dictionary metadata definitions for attributes or fields encapsulated by this object.
 Constrainable getEntry()
          The dictionary metadata associated with an object (its "entry" in the dictionary) can also be constrainable, in which case the object value itself can be validated against one or more constraints.
 String getEntryName()
          An entry name should be returned for the purposes of correcting looking up errors, which are generally found by entry name + attribute name + error key.
 String getLabel(String attributeName)
          This method looks up a label for a specific attribute name.
 Object getObject()
          The underlying object itself (not the field/attribute value, but the object).
 String getPath()
          The path is a string representation of specifically which attribute (at some depth) is being accessed, for example, on a person object there might be the following field path: joe.home.mailingAddress.state
 Class<?> getType(String attributeName)
          The type of the attribute specified.
<X> X
getValue()
          A convenience method for looking up the attribute value that is currently being processed.
<X> X
getValue(String attributeName)
          A method for looking up any attribute value by name for the object being processed.
 boolean isReadable()
          Indicates whether the configured attribute name is readable for the object
 void setAttributeName(String attributeName)
          Setter for the current attribute that is being processed.
 

Method Detail

getAttributeName

String getAttributeName()
This method is an accessor for the attribute name that is currently being processed by the DictionaryValidationService implementation.

Returns:
the current attribute name being processed

getDefinition

Constrainable getDefinition(String attributeName)
This method provides access to the constrainable attribute definition of a specific attribute name. If the value of the metadata associated with the object field does not implement constrainable, or if no metadata is associated with this object field, then null should be returned.

Parameters:
attributeName - - the name of the attribute/field whose metadata is being requested
Returns:
dictionary metadata object implementing some constrainable capability

getDefinitions

List<Constrainable> getDefinitions()
This method returns a list of all constrainable dictionary metadata definitions for attributes or fields encapsulated by this object.

Returns:
a list of constrainable definitions

getEntry

Constrainable getEntry()
The dictionary metadata associated with an object (its "entry" in the dictionary) can also be constrainable, in which case the object value itself can be validated against one or more constraints. If the specific entry for the dictionary object encapsulated by this reader is not constrainable, or if no entry exists for this dictionary object, or no dictionary object is being encapsulted, then null should be returned.

Returns:
the constrainable dictionary entry metadata for this object, or null

getEntryName

String getEntryName()
An entry name should be returned for the purposes of correcting looking up errors, which are generally found by entry name + attribute name + error key.

Returns:
the name that the data dictionary uses to store metadata about this object (not its attributes)

getLabel

String getLabel(String attributeName)
This method looks up a label for a specific attribute name.

Parameters:
attributeName -
Returns:
some descriptive label that can be exposed to the end user for error messages

getObject

Object getObject()
The underlying object itself (not the field/attribute value, but the object).

Returns:
the object that is being encapsulated by this reader, or null if no object is being encapsulated.

getPath

String getPath()
The path is a string representation of specifically which attribute (at some depth) is being accessed, for example, on a person object there might be the following field path: joe.home.mailingAddress.state

Returns:
the string representation of the attribute identifier currently being processed

getType

Class<?> getType(String attributeName)
The type of the attribute specified. A Java class.

Parameters:
attributeName -
Returns:
the type of the attribute referenced by the passed name, or null if no attribute exists of that name

isReadable

boolean isReadable()
Indicates whether the configured attribute name is readable for the object

Returns:
boolean if attribute is readable, false if not

getValue

<X> X getValue()
           throws AttributeValidationException
A convenience method for looking up the attribute value that is currently being processed.

Type Parameters:
X -
Returns:
Throws:
AttributeValidationException

getValue

<X> X getValue(String attributeName)
           throws AttributeValidationException
A method for looking up any attribute value by name for the object being processed.

Type Parameters:
X -
Parameters:
attributeName -
Returns:
Throws:
AttributeValidationException

getCleanSearchableValues

List<String> getCleanSearchableValues(String attributeName)
                                      throws AttributeValidationException
A method to enable legacy processing of string representations of attribute values like a date range in the format 12/03/2001..1/29/2009

Parameters:
attributeName -
Returns:
the list of token strings for the attribute value of the named attribute
Throws:
AttributeValidationException

setAttributeName

void setAttributeName(String attributeName)
Setter for the current attribute that is being processed.

Parameters:
attributeName -

clone

AttributeValueReader clone()


Copyright © 2005-2012 The Kuali Foundation. All Rights Reserved.