public class DictionaryBeanFactoryPostProcessor extends Object
The 'driver' for other post processors. Essentially this iterates through each bean and its properties, making calls to the message and expression processors
| Constructor and Description |
|---|
DictionaryBeanFactoryPostProcessor(DataDictionary dataDictionary,
org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
Constructs a new processor for the given data dictionary and bean factory
|
| Modifier and Type | Method and Description |
|---|---|
protected org.springframework.beans.factory.config.BeanDefinition |
getBeanDefinition(Object value)
Returns the given value as a bean definition (parsing from holder if necessary)
|
protected String |
getBeanName(Object value)
Gets the bean name from the given value which is assumed to be a bean definition holder
|
protected DataDictionaryService |
getDataDictionaryService()
Retrieves the data dictionary service using the KRAD service locator
|
protected String |
getString(Object value)
Determines whether the given value is of String type and if so returns the string value
|
protected boolean |
isBeanDefinitionValue(Object value)
Indicate whether the given value is a bean definition (or holder)
|
protected boolean |
isCollectionValue(Object value)
Indicate whether the given value is a collection
|
protected boolean |
isStringValue(Object value)
Indicate whether the given value is a string or holds a string
|
void |
postProcessBeanFactory()
Iterates through all beans in the factory and invokes processing of root bean definitions
|
protected String |
processArrayStringPropertyValue(String propertyName,
Object[] propertyValue,
String elementValue,
int elementIndex,
Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack,
List<DictionaryBeanProcessor> beanProcessors)
Invokes the processors to handle an array string value (which may be changed)
|
protected void |
processBeanProperties(org.springframework.beans.factory.config.BeanDefinition beanDefinition,
Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
Iterates through the properties defined for the bean definition and invokes helper methods to process
the property value
|
protected String |
processListStringPropertyValue(String propertyName,
List<?> propertyValue,
String elementValue,
int elementIndex,
Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack,
List<DictionaryBeanProcessor> beanProcessors)
Invokes the processors to handle an list string value (which may be changed)
|
protected String |
processMapStringPropertyValue(String propertyName,
Map<?,?> propertyValue,
String elementValue,
Object elementKey,
Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack,
List<DictionaryBeanProcessor> beanProcessors)
Invokes the processors to handle an map string value (which may be changed)
|
void |
processNestedBeanDefinition(String beanName,
org.springframework.beans.factory.config.BeanDefinition beanDefinition,
String nestedPropertyPath,
boolean isCollectionBean,
Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
Invokes the processors to handle the given nested bean definition
|
protected void |
processRootBeanDefinition(String beanName,
org.springframework.beans.factory.config.BeanDefinition beanDefinition)
Invokes processors to handle the root bean definition then processes the bean properties
|
protected String |
processSetStringPropertyValue(String propertyName,
Set<?> propertyValue,
String elementValue,
Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack,
List<DictionaryBeanProcessor> beanProcessors)
Invokes the processors to handle an set string value (which may be changed)
|
protected String |
processStringPropertyValue(String propertyName,
String propertyValue,
Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
Invokes the processors to handle the string value (which may be changed)
|
protected void |
visitArray(Object array,
String propertyName,
Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
Iterates through the array values and calls helpers to process the value
|
protected void |
visitCollection(Object value,
String propertyName,
Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
Determines what kind of collection (or array) the given value is and call handlers based on the determined type
|
protected void |
visitList(List<?> listVal,
String propertyName,
Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
Iterates through the list values and calls helpers to process the value
|
protected void |
visitMap(Map<?,?> mapVal,
String propertyName,
Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
Iterates through the map values and calls helpers to process the value
|
protected Object |
visitPropertyValue(String propertyName,
Object propertyValue,
Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
Determines if the property value is a bean or collection, and calls the appropriate helper method
to process further.
|
protected void |
visitSet(Set setVal,
String propertyName,
Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
Iterates through the set values and calls helpers to process the value
|
public DictionaryBeanFactoryPostProcessor(DataDictionary dataDictionary, org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
dataDictionary - data dictionary instance that contains the bean factorybeanFactory - bean factory to processpublic void postProcessBeanFactory() throws org.springframework.beans.BeansException
org.springframework.beans.BeansExceptionprotected void processRootBeanDefinition(String beanName, org.springframework.beans.factory.config.BeanDefinition beanDefinition)
beanName - name of the bean within the factorybeanDefinition - root bean definition to processpublic void processNestedBeanDefinition(String beanName, org.springframework.beans.factory.config.BeanDefinition beanDefinition, String nestedPropertyPath, boolean isCollectionBean, Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
A check is also made to determine if the nested bean has a non-generated id which is not registered in the factory, if so the bean is added as a registered bean (so it can be found by id)
beanName - name of the nested bean definition in the bean factorybeanDefinition - nested bean definition to processnestedPropertyPath - the property path to the nested bean from the parent bean definitionisCollectionBean - indicates whether the nested bean is in a collection, if so a different handler
method is called on the processorsnestedBeanStack - the stack of bean containers(those beans which contain the bean)protected String processStringPropertyValue(String propertyName, String propertyValue, Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
propertyName - name of the property that is being processedpropertyValue - the string property value to processnestedBeanStack - the stack of bean containers, including the bean that contains the propertyprotected String processArrayStringPropertyValue(String propertyName, Object[] propertyValue, String elementValue, int elementIndex, Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack, List<DictionaryBeanProcessor> beanProcessors)
propertyName - name of the property that is being processedpropertyValue - the array which contains the stringelementValue - the string element valueelementIndex - the index of the string within the arraynestedBeanStack - the stack of bean containers, including the bean that contains the propertyprotected String processListStringPropertyValue(String propertyName, List<?> propertyValue, String elementValue, int elementIndex, Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack, List<DictionaryBeanProcessor> beanProcessors)
propertyName - name of the property that is being processedpropertyValue - the list which contains the stringelementValue - the string element valueelementIndex - the index of the string within the listnestedBeanStack - the stack of bean containers, including the bean that contains the propertyprotected String processSetStringPropertyValue(String propertyName, Set<?> propertyValue, String elementValue, Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack, List<DictionaryBeanProcessor> beanProcessors)
propertyName - name of the property that is being processedpropertyValue - the set which contains the stringelementValue - the string element valuenestedBeanStack - the stack of bean containers, including the bean that contains the propertyprotected String processMapStringPropertyValue(String propertyName, Map<?,?> propertyValue, String elementValue, Object elementKey, Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack, List<DictionaryBeanProcessor> beanProcessors)
propertyName - name of the property that is being processedpropertyValue - the map which contains the stringelementValue - the string element valueelementKey - the key for the string within the mapnestedBeanStack - the stack of bean containers, including the bean that contains the propertyprotected void processBeanProperties(org.springframework.beans.factory.config.BeanDefinition beanDefinition, Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
beanDefinition - bean definition whose properties will be processednestedBeanStack - stack of beans which contain the given beanprotected Object visitPropertyValue(String propertyName, Object propertyValue, Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
propertyName - name for the property being processedpropertyValue - value for the property to processnestedBeanStack - stack of beans which contain the propertyprotected void visitCollection(Object value, String propertyName, Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
value - collection value to processpropertyName - name of the property which has the collection valuenestedBeanStack - stack of bean containers which contains the collection propertyprotected void visitArray(Object array, String propertyName, Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
array - the array to processpropertyName - name of the property which has the array valuenestedBeanStack - stack of bean containers which contains the array propertyprotected void visitList(List<?> listVal, String propertyName, Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
listVal - the list to processpropertyName - name of the property which has the list valuenestedBeanStack - stack of bean containers which contains the list propertyprotected void visitSet(Set setVal, String propertyName, Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
setVal - the set to processpropertyName - name of the property which has the set valuenestedBeanStack - stack of bean containers which contains the set propertyprotected void visitMap(Map<?,?> mapVal, String propertyName, Stack<org.springframework.beans.factory.config.BeanDefinitionHolder> nestedBeanStack)
mapVal - the set to processpropertyName - name of the property which has the map valuenestedBeanStack - stack of bean containers which contains the map propertyprotected boolean isStringValue(Object value)
value - value to testprotected String getString(Object value)
value - object value to checkprotected boolean isBeanDefinitionValue(Object value)
value - value to testprotected org.springframework.beans.factory.config.BeanDefinition getBeanDefinition(Object value)
value - value to convertprotected String getBeanName(Object value)
value - value retrieve bean name fromprotected boolean isCollectionValue(Object value)
value - value to testprotected DataDictionaryService getDataDictionaryService()
Copyright © 2005–2014 The Kuali Foundation. All rights reserved.