org.kuali.rice.krad.datadictionary.uif
Class UifDictionaryIndex

java.lang.Object
  extended by org.kuali.rice.krad.datadictionary.uif.UifDictionaryIndex
All Implemented Interfaces:
Runnable

public class UifDictionaryIndex
extends Object
implements Runnable

Indexes View bean entries for retrieval

This is used to retrieve a View instance by its unique id. Furthermore, view of certain types (that have a ViewTypeService are indexed by their type to support retrieval of views based on parameters.

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

Field Summary
protected  Map<String,View> viewCache
           
 
Constructor Summary
UifDictionaryIndex(DefaultListableBeanFactory ddBeans)
           
 
Method Summary
protected  String buildTypeIndex(Map<String,String> typeParameters)
          Builds up an index string from the given Map of parameters
protected  void buildViewIndicies()
          Initializes the view index Map then iterates through all the beans in the factory that implement View, adding them to the index
 View getImmutableViewById(String viewId)
          Gets a view instance from the pool or factory but does not replace the view, meant for view readonly access (not running the lifecycle but just checking configuration)
protected  ViewTypeDictionaryIndex getTypeIndex(UifConstants.ViewType viewType)
          Retrieves the ViewTypeDictionaryIndex instance for the given view type name.
 View getViewById(String viewId)
          Retrieves the View instance with the given id
 View getViewByTypeIndex(UifConstants.ViewType viewTypeName, Map<String,String> indexKey)
          Retrieves a View instance that is of the given type based on the index key
 String getViewIdByTypeIndex(UifConstants.ViewType viewTypeName, Map<String,String> indexKey)
          Retrieves the id for the view that is associated with the given view type and index key
 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
protected  void indexViewForType(org.springframework.beans.PropertyValues propertyValues, String id)
          Performs additional indexing based on the view type associated with the view instance.
 void run()
           
 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

viewCache

protected Map<String,View> viewCache
Constructor Detail

UifDictionaryIndex

public UifDictionaryIndex(DefaultListableBeanFactory ddBeans)
Method Detail

run

public void run()
Specified by:
run in interface Runnable

getViewById

public View getViewById(String viewId)
Retrieves the View instance with the given id

First an attempt is made to get a cached view (if one exists). If found it is pulled from the cache and cloned to preserve the integrity of the cache. If not already cached, one is built by Spring from the bean factory and then cloned.

Parameters:
viewId - the unique id for the view
Returns:
View instance with the given id
Throws:
DataDictionaryException - if view doesn't exist for id

getImmutableViewById

public View getImmutableViewById(String viewId)
Gets a view instance from the pool or factory but does not replace the view, meant for view readonly access (not running the lifecycle but just checking configuration)

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

getViewByTypeIndex

public View getViewByTypeIndex(UifConstants.ViewType viewTypeName,
                               Map<String,String> indexKey)
Retrieves a View instance that is of the given type based on the index key

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 or Null if one is not found

getViewIdByTypeIndex

public String getViewIdByTypeIndex(UifConstants.ViewType viewTypeName,
                                   Map<String,String> indexKey)
Retrieves the id for the view that is associated with the given view type and index key

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:
id for the view that matches the view type and index or null if a match is not found

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

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

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

buildViewIndicies

protected void buildViewIndicies()
Initializes the view index Map then iterates through all the beans in the factory that implement View, adding them to the index


indexViewForType

protected void indexViewForType(org.springframework.beans.PropertyValues propertyValues,
                                String id)
Performs additional indexing based on the view type associated with the view instance. The ViewTypeService associated with the view type name on the instance is invoked to retrieve the parameter key/value pairs from the configured property values, which are then used to build up an index used to key the entry

Parameters:
propertyValues - - property values configured on the view bean definition
id - - id (or bean name if id was not set) for the view

getTypeIndex

protected ViewTypeDictionaryIndex getTypeIndex(UifConstants.ViewType viewType)
Retrieves the ViewTypeDictionaryIndex instance for the given view type name. If one does not exist yet for the given name, a new instance is created

Parameters:
viewType - - name of the view type to retrieve index for
Returns:
ViewTypeDictionaryIndex instance

buildTypeIndex

protected String buildTypeIndex(Map<String,String> typeParameters)
Builds up an index string from the given Map of parameters

Parameters:
typeParameters - - Map of parameters to use for index
Returns:
String index


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