org.springframework.beans.factory.config

## Class BeanDefinitionVisitor

- java.lang.Object
- - org.springframework.beans.factory.config.BeanDefinitionVisitor

-     public class BeanDefinitionVisitor
      extends Object

  Visitor class for traversing `BeanDefinition` objects, in particular the property values and constructor argument values contained in them, resolving bean metadata values.

  Used by `PropertyPlaceholderConfigurer` to parse all String values contained in a BeanDefinition, resolving any placeholders found.

  Since:
    1.2
  Author:
    Juergen Hoeller, Sam Brannen
  See Also:
    `BeanDefinition`, `BeanDefinition.getPropertyValues()`, `BeanDefinition.getConstructorArgumentValues()`, `PropertyPlaceholderConfigurer`

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `BeanDefinitionVisitor()` Create a new BeanDefinitionVisitor for subclassing.
    `` | `BeanDefinitionVisitor(StringValueResolver valueResolver)` Create a new BeanDefinitionVisitor, applying the specified value resolver to all bean metadata values.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected String` | `resolveStringValue(String strVal)` Resolve the given String value, for example parsing placeholders.
    `protected Object` | `resolveValue(Object value)`
    `protected void` | `visitArray(Object[] arrayVal)`
    `protected void` | `visitBeanClassName(BeanDefinition beanDefinition)`
    `void` | `visitBeanDefinition(BeanDefinition beanDefinition)` Traverse the given BeanDefinition object and the MutablePropertyValues and ConstructorArgumentValues contained in them.
    `protected void` | `visitFactoryBeanName(BeanDefinition beanDefinition)`
    `protected void` | `visitFactoryMethodName(BeanDefinition beanDefinition)`
    `protected void` | `visitGenericArgumentValues(List<ConstructorArgumentValues.ValueHolder> gas)`
    `protected void` | `visitIndexedArgumentValues(Map<Integer,ConstructorArgumentValues.ValueHolder> ias)`
    `protected void` | `visitList(List listVal)`
    `protected void` | `visitMap(Map<?,?> mapVal)`
    `protected void` | `visitParentName(BeanDefinition beanDefinition)`
    `protected void` | `visitPropertyValues(MutablePropertyValues pvs)`
    `protected void` | `visitScope(BeanDefinition beanDefinition)`
    `protected void` | `visitSet(Set setVal)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### BeanDefinitionVisitor

          public BeanDefinitionVisitor(StringValueResolver valueResolver)

      Create a new BeanDefinitionVisitor, applying the specified value resolver to all bean metadata values.
      Parameters:
        `valueResolver` - the StringValueResolver to apply

    - #### BeanDefinitionVisitor

          protected BeanDefinitionVisitor()

      Create a new BeanDefinitionVisitor for subclassing. Subclasses need to override the `resolveStringValue(java.lang.String)` method.

  - ### Method Detail

    - #### visitBeanDefinition

          public void visitBeanDefinition(BeanDefinition beanDefinition)

      Traverse the given BeanDefinition object and the MutablePropertyValues and ConstructorArgumentValues contained in them.
      Parameters:
        `beanDefinition` - the BeanDefinition object to traverse
      See Also:
        `resolveStringValue(String)`

    - #### visitParentName

          protected void visitParentName(BeanDefinition beanDefinition)

    - #### visitBeanClassName

          protected void visitBeanClassName(BeanDefinition beanDefinition)

    - #### visitFactoryBeanName

          protected void visitFactoryBeanName(BeanDefinition beanDefinition)

    - #### visitFactoryMethodName

          protected void visitFactoryMethodName(BeanDefinition beanDefinition)

    - #### visitScope

          protected void visitScope(BeanDefinition beanDefinition)

    - #### visitPropertyValues

          protected void visitPropertyValues(MutablePropertyValues pvs)

    - #### visitIndexedArgumentValues

          protected void visitIndexedArgumentValues(Map<Integer,ConstructorArgumentValues.ValueHolder> ias)

    - #### visitGenericArgumentValues

          protected void visitGenericArgumentValues(List<ConstructorArgumentValues.ValueHolder> gas)

    - #### resolveValue

          protected Object resolveValue(Object value)

    - #### visitArray

          protected void visitArray(Object[] arrayVal)

    - #### visitList

          protected void visitList(List listVal)

    - #### visitSet

          protected void visitSet(Set setVal)

    - #### visitMap

          protected void visitMap(Map<?,?> mapVal)

    - #### resolveStringValue

          protected String resolveStringValue(String strVal)

      Resolve the given String value, for example parsing placeholders.
      Parameters:
        `strVal` - the original String value
      Returns:
        the resolved String value