org.springframework.beans.factory.config
Class DependencyDescriptor

java.lang.Object
  extended by org.springframework.beans.factory.config.DependencyDescriptor
All Implemented Interfaces:
Serializable

public class DependencyDescriptor
extends Object
implements Serializable

Descriptor for a specific dependency that is about to be injected. Wraps a constructor parameter, a method parameter or a field, allowing unified access to their metadata.

Since:
2.5
Author:
Juergen Hoeller
See Also:
Serialized Form

Constructor Summary
DependencyDescriptor(Field field, boolean required)
          Create a new descriptor for a field.
DependencyDescriptor(Field field, boolean required, boolean eager)
          Create a new descriptor for a field.
DependencyDescriptor(MethodParameter methodParameter, boolean required)
          Create a new descriptor for a method or constructor parameter.
DependencyDescriptor(MethodParameter methodParameter, boolean required, boolean eager)
          Create a new descriptor for a method or constructor parameter.
 
Method Summary
 Annotation[] getAnnotations()
          Obtain the annotations associated with the wrapped parameter/field, if any.
 Class<?> getCollectionType()
          Determine the generic element type of the wrapped Collection parameter/field, if any.
 String getDependencyName()
          Determine the name of the wrapped parameter/field.
 Class<?> getDependencyType()
          Determine the declared (non-generic) type of the wrapped parameter/field.
 Field getField()
          Return the wrapped Field, if any.
 Class<?> getMapKeyType()
          Determine the generic key type of the wrapped Map parameter/field, if any.
 Class<?> getMapValueType()
          Determine the generic value type of the wrapped Map parameter/field, if any.
 MethodParameter getMethodParameter()
          Return the wrapped MethodParameter, if any.
 void increaseNestingLevel()
           
 void initParameterNameDiscovery(ParameterNameDiscoverer parameterNameDiscoverer)
          Initialize parameter name discovery for the underlying method parameter, if any.
 boolean isEager()
          Return whether this dependency is 'eager' in the sense of eagerly resolving potential target beans for type matching.
 boolean isRequired()
          Return whether this dependency is required.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DependencyDescriptor

public DependencyDescriptor(MethodParameter methodParameter,
                            boolean required)
Create a new descriptor for a method or constructor parameter. Considers the dependency as 'eager'.

Parameters:
methodParameter - the MethodParameter to wrap
required - whether the dependency is required

DependencyDescriptor

public DependencyDescriptor(MethodParameter methodParameter,
                            boolean required,
                            boolean eager)
Create a new descriptor for a method or constructor parameter.

Parameters:
methodParameter - the MethodParameter to wrap
required - whether the dependency is required
eager - whether this dependency is 'eager' in the sense of eagerly resolving potential target beans for type matching

DependencyDescriptor

public DependencyDescriptor(Field field,
                            boolean required)
Create a new descriptor for a field. Considers the dependency as 'eager'.

Parameters:
field - the field to wrap
required - whether the dependency is required

DependencyDescriptor

public DependencyDescriptor(Field field,
                            boolean required,
                            boolean eager)
Create a new descriptor for a field.

Parameters:
field - the field to wrap
required - whether the dependency is required
eager - whether this dependency is 'eager' in the sense of eagerly resolving potential target beans for type matching
Method Detail

getMethodParameter

public MethodParameter getMethodParameter()
Return the wrapped MethodParameter, if any.

Note: Either MethodParameter or Field is available.

Returns:
the MethodParameter, or null if none

getField

public Field getField()
Return the wrapped Field, if any.

Note: Either MethodParameter or Field is available.

Returns:
the Field, or null if none

isRequired

public boolean isRequired()
Return whether this dependency is required.


isEager

public boolean isEager()
Return whether this dependency is 'eager' in the sense of eagerly resolving potential target beans for type matching.


increaseNestingLevel

public void increaseNestingLevel()

initParameterNameDiscovery

public void initParameterNameDiscovery(ParameterNameDiscoverer parameterNameDiscoverer)
Initialize parameter name discovery for the underlying method parameter, if any.

This method does not actually try to retrieve the parameter name at this point; it just allows discovery to happen when the application calls getDependencyName() (if ever).


getDependencyName

public String getDependencyName()
Determine the name of the wrapped parameter/field.

Returns:
the declared name (never null)

getDependencyType

public Class<?> getDependencyType()
Determine the declared (non-generic) type of the wrapped parameter/field.

Returns:
the declared type (never null)

getCollectionType

public Class<?> getCollectionType()
Determine the generic element type of the wrapped Collection parameter/field, if any.

Returns:
the generic type, or null if none

getMapKeyType

public Class<?> getMapKeyType()
Determine the generic key type of the wrapped Map parameter/field, if any.

Returns:
the generic type, or null if none

getMapValueType

public Class<?> getMapValueType()
Determine the generic value type of the wrapped Map parameter/field, if any.

Returns:
the generic type, or null if none

getAnnotations

public Annotation[] getAnnotations()
Obtain the annotations associated with the wrapped parameter/field, if any.