org.kuali.rice.krad.datadictionary
Class DataDictionary

java.lang.Object
  extended by org.kuali.rice.krad.datadictionary.DataDictionary
Direct Known Subclasses:
ReloadingDataDictionary

public class DataDictionary
extends Object

Collection of named BusinessObjectEntry objects, each of which contains information relating to the display, validation, and general maintenance of a BusinessObject.


Field Summary
protected  List<String> configFileLocations
           
protected  KualiDefaultListableBeanFactory ddBeans
           
protected  DataDictionaryIndex ddIndex
          The encapsulation of DataDictionary indices
protected  DataDictionaryMapper ddMapper
          The DataDictionaryMapper The default mapper simply consults the initialized indices on workflow document type
static PersistenceStructureService persistenceStructureService
           
protected  UifDictionaryIndex uifIndex
           
protected  org.springframework.beans.factory.xml.XmlBeanDefinitionReader xmlReader
           
 
Constructor Summary
DataDictionary()
           
 
Method Summary
 void addConfigFileLocation(String location)
           
static PropertyDescriptor buildReadDescriptor(Class propertyClass, String propertyName)
           
static PropertyDescriptor buildSimpleReadDescriptor(Class propertyClass, String propertyName)
           
 boolean containsDictionaryObject(String id)
          Indicates whether the data dictionary contains a bean with the given id
 Set<InactivationBlockingMetadata> getAllInactivationBlockingMetadatas(Class blockedClass)
           
static Class getAttributeClass(Class boClass, String attributeName)
          This method determines the Class of the attributeName passed in.
 List<String> getBusinessObjectClassNames()
           
 Map<String,BusinessObjectEntry> getBusinessObjectEntries()
           
 BusinessObjectEntry getBusinessObjectEntry(String className)
          Deprecated. 
 BusinessObjectEntry getBusinessObjectEntryForConcreteClass(String className)
          This method gets the business object entry for a concrete class
static Class getCollectionElementClass(Class boClass, String collectionName)
          This method determines the Class of the elements in the collectionName passed in.
 List<String> getConfigFileLocations()
           
 DataObjectEntry getDataObjectEntry(String className)
           
 Object getDictionaryObject(String beanName)
          Returns an object from the dictionary by its spring bean name
 DataDictionaryEntry getDictionaryObjectEntry(String className)
           
 Map<String,DocumentEntry> getDocumentEntries()
           
 DocumentEntry getDocumentEntry(String documentTypeDDKey)
          Returns the KNS document entry for the given lookup key.
protected  org.springframework.core.io.Resource getFileResource(String sourceName)
           
 MaintenanceDocumentEntry getMaintenanceDocumentEntryForBusinessObjectClass(Class<?> businessObjectClass)
          Note: only MaintenanceDocuments are indexed by businessObject Class This is a special case that is referenced in one location.
static PersistenceStructureService getPersistenceStructureService()
           
 View getViewById(String viewId)
          Returns the View entry identified by the given id
 View getViewByTypeIndex(UifConstants.ViewType viewTypeName, Map<String,String> indexKey)
          Returns View instance identified by the view type name and index
 org.springframework.beans.PropertyValues getViewPropertiesById(String viewId)
          Retrieves the configured property values for the view bean definition associated with the given id
 org.springframework.beans.PropertyValues getViewPropertiesByType(UifConstants.ViewType viewTypeName, Map<String,String> indexKey)
          Retrieves the configured property values for the view bean definition associated with the given type and index
 List<View> getViewsForType(UifConstants.ViewType viewTypeName)
          Gets all View prototypes configured for the given view type name
static boolean isCollectionPropertyOf(Class targetClass, String propertyName)
           
static boolean isPropertyOf(Class targetClass, String propertyName)
           
 void parseDataDictionaryConfigurationFiles(boolean allowConcurrentValidation)
           
 void performBeanOverrides()
          This method gathers beans of type BeanOverride and invokes each one's performOverride() method.
 void setConfigFileLocations(List<String> configFileLocations)
           
 void setDataDictionaryMapper(DataDictionaryMapper mapper)
          Sets the DataDictionaryMapper
 void validateDD()
           
 void validateDD(boolean validateEbos)
           
 boolean viewByTypeExist(UifConstants.ViewType viewTypeName, Map<String,String> indexKey)
          Indicates whether a View exists for the given view type and index information
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ddBeans

protected KualiDefaultListableBeanFactory ddBeans

xmlReader

protected org.springframework.beans.factory.xml.XmlBeanDefinitionReader xmlReader

ddIndex

protected DataDictionaryIndex ddIndex
The encapsulation of DataDictionary indices


uifIndex

protected UifDictionaryIndex uifIndex

ddMapper

protected DataDictionaryMapper ddMapper
The DataDictionaryMapper The default mapper simply consults the initialized indices on workflow document type


configFileLocations

protected List<String> configFileLocations

persistenceStructureService

public static PersistenceStructureService persistenceStructureService
Constructor Detail

DataDictionary

public DataDictionary()
Method Detail

getConfigFileLocations

public List<String> getConfigFileLocations()

setConfigFileLocations

public void setConfigFileLocations(List<String> configFileLocations)

addConfigFileLocation

public void addConfigFileLocation(String location)
                           throws IOException
Throws:
IOException

setDataDictionaryMapper

public void setDataDictionaryMapper(DataDictionaryMapper mapper)
Sets the DataDictionaryMapper

Parameters:
mapper - the datadictionary mapper

getFileResource

protected org.springframework.core.io.Resource getFileResource(String sourceName)

parseDataDictionaryConfigurationFiles

public void parseDataDictionaryConfigurationFiles(boolean allowConcurrentValidation)

validateDD

public void validateDD(boolean validateEbos)

validateDD

public void validateDD()

getBusinessObjectEntry

@Deprecated
public BusinessObjectEntry getBusinessObjectEntry(String className)
Deprecated. 

Parameters:
className -
Returns:
BusinessObjectEntry for the named class, or null if none exists

getDataObjectEntry

public DataObjectEntry getDataObjectEntry(String className)
Parameters:
className -
Returns:
BusinessObjectEntry for the named class, or null if none exists

getBusinessObjectEntryForConcreteClass

public BusinessObjectEntry getBusinessObjectEntryForConcreteClass(String className)
This method gets the business object entry for a concrete class

Parameters:
className -
Returns:

getBusinessObjectClassNames

public List<String> getBusinessObjectClassNames()
Returns:
List of businessObject classnames

getBusinessObjectEntries

public Map<String,BusinessObjectEntry> getBusinessObjectEntries()
Returns:
Map of (classname, BusinessObjectEntry) pairs

getDictionaryObjectEntry

public DataDictionaryEntry getDictionaryObjectEntry(String className)
Parameters:
className -
Returns:
DataDictionaryEntryBase for the named class, or null if none exists

getDocumentEntry

public DocumentEntry getDocumentEntry(String documentTypeDDKey)
Returns the KNS document entry for the given lookup key. The documentTypeDDKey is interpreted successively in the following ways until a mapping is found (or none if found):
  1. KEW/workflow document type
  2. business object class name
  3. maintainable class name
This mapping is compiled when DataDictionary files are parsed on startup (or demand). Currently this means the mapping is static, and one-to-one (one KNS document maps directly to one and only one key).

Parameters:
documentTypeDDKey - the KEW/workflow document type name
Returns:
the KNS DocumentEntry if it exists

getMaintenanceDocumentEntryForBusinessObjectClass

public MaintenanceDocumentEntry getMaintenanceDocumentEntryForBusinessObjectClass(Class<?> businessObjectClass)
Note: only MaintenanceDocuments are indexed by businessObject Class This is a special case that is referenced in one location. Do we need another map for this stuff??

Parameters:
businessObjectClass -
Returns:
DocumentEntry associated with the given Class, or null if there is none

getDocumentEntries

public Map<String,DocumentEntry> getDocumentEntries()

getViewById

public View getViewById(String viewId)
Returns the View entry identified by the given id

Parameters:
viewId - - unique id for view
Returns:
View instance associated with the id

getViewByTypeIndex

public View getViewByTypeIndex(UifConstants.ViewType viewTypeName,
                               Map<String,String> indexKey)
Returns View instance identified by the view type name and index

Parameters:
viewTypeName - - type name for the view
indexKey - - Map of index key parameters, these are the parameters the indexer used to index the view initially and needs to identify an unique view instance
Returns:
View instance that matches the given index

viewByTypeExist

public boolean viewByTypeExist(UifConstants.ViewType viewTypeName,
                               Map<String,String> indexKey)
Indicates whether a View exists for the given view type and index information

Parameters:
viewTypeName - - type name for the view
indexKey - - Map of index key parameters, these are the parameters the indexer used to index the view initially and needs to identify an unique view instance
Returns:
boolean true if view exists, false if not

getViewsForType

public List<View> getViewsForType(UifConstants.ViewType viewTypeName)
Gets all View prototypes configured for the given view type name

Parameters:
viewTypeName - - view type name to retrieve
Returns:
List view prototypes with the given type name, or empty list

getDictionaryObject

public Object getDictionaryObject(String beanName)
Returns an object from the dictionary by its spring bean name

Parameters:
beanName - - id or name for the bean definition
Returns:
Object object instance created or the singleton being maintained

containsDictionaryObject

public boolean containsDictionaryObject(String id)
Indicates whether the data dictionary contains a bean with the given id

Parameters:
id - - id of the bean to check for
Returns:
boolean true if dictionary contains bean, false otherwise

getViewPropertiesById

public org.springframework.beans.PropertyValues getViewPropertiesById(String viewId)
Retrieves the configured property values for the view bean definition associated with the given id

Since constructing the View object can be expensive, when metadata only is needed this method can be used to retrieve the configured property values. Note this looks at the merged bean definition

Parameters:
viewId - - id for the view to retrieve
Returns:
PropertyValues configured on the view bean definition, or null if view is not found

getViewPropertiesByType

public org.springframework.beans.PropertyValues getViewPropertiesByType(UifConstants.ViewType viewTypeName,
                                                                        Map<String,String> indexKey)
Retrieves the configured property values for the view bean definition associated with the given type and index

Since constructing the View object can be expensive, when metadata only is needed this method can be used to retrieve the configured property values. Note this looks at the merged bean definition

Parameters:
viewTypeName - - type name for the view
indexKey - - Map of index key parameters, these are the parameters the indexer used to index the view initially and needs to identify an unique view instance
Returns:
PropertyValues configured on the view bean definition, or null if view is not found

isPropertyOf

public static boolean isPropertyOf(Class targetClass,
                                   String propertyName)
Parameters:
targetClass -
propertyName -
Returns:
true if the given propertyName names a property of the given class
Throws:
CompletionException - if there is a problem accessing the named property on the given class

isCollectionPropertyOf

public static boolean isCollectionPropertyOf(Class targetClass,
                                             String propertyName)
Parameters:
targetClass -
propertyName -
Returns:
true if the given propertyName names a Collection property of the given class
Throws:
CompletionException - if there is a problem accessing the named property on the given class

getPersistenceStructureService

public static PersistenceStructureService getPersistenceStructureService()
Returns:
the persistenceStructureService

getAttributeClass

public static Class getAttributeClass(Class boClass,
                                      String attributeName)
This method determines the Class of the attributeName passed in. Null will be returned if the member is not available, or if a reflection exception is thrown.

Parameters:
boClass - - Class that the attributeName property exists in.
attributeName - - Name of the attribute you want a class for.
Returns:
The Class of the attributeName, if the attribute exists on the rootClass. Null otherwise.

getCollectionElementClass

public static Class getCollectionElementClass(Class boClass,
                                              String collectionName)
This method determines the Class of the elements in the collectionName passed in.

Parameters:
boClass - Class that the collectionName collection exists in.
collectionName - the name of the collection you want the element class for
Returns:

buildReadDescriptor

public static PropertyDescriptor buildReadDescriptor(Class propertyClass,
                                                     String propertyName)
Parameters:
propertyClass -
propertyName -
Returns:
PropertyDescriptor for the getter for the named property of the given class, if one exists.

buildSimpleReadDescriptor

public static PropertyDescriptor buildSimpleReadDescriptor(Class propertyClass,
                                                           String propertyName)
Parameters:
propertyClass -
propertyName -
Returns:
PropertyDescriptor for the getter for the named property of the given class, if one exists.

getAllInactivationBlockingMetadatas

public Set<InactivationBlockingMetadata> getAllInactivationBlockingMetadatas(Class blockedClass)

performBeanOverrides

public void performBeanOverrides()
This method gathers beans of type BeanOverride and invokes each one's performOverride() method.



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