public class ConstructorArgumentValues extends Object
Supports values for a specific index in the constructor argument list as well as for generic argument matches by type.
BeanDefinition.getConstructorArgumentValues()
Modifier and Type | Class and Description |
---|---|
static class |
ConstructorArgumentValues.ValueHolder
Holder for a constructor argument value, with an optional type
attribute indicating the target type of the actual constructor argument.
|
Constructor and Description |
---|
ConstructorArgumentValues()
Create a new empty ConstructorArgumentValues object.
|
ConstructorArgumentValues(ConstructorArgumentValues original)
Deep copy constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addArgumentValues(ConstructorArgumentValues other)
Copy all given argument values into this object, using separate holder
instances to keep the values independent from the original object.
|
void |
addGenericArgumentValue(ConstructorArgumentValues.ValueHolder newValue)
Add a generic argument value to be matched by type or name (if available).
|
void |
addGenericArgumentValue(Object value)
Add a generic argument value to be matched by type.
|
void |
addGenericArgumentValue(Object value,
String type)
Add a generic argument value to be matched by type.
|
void |
addIndexedArgumentValue(int index,
ConstructorArgumentValues.ValueHolder newValue)
Add an argument value for the given index in the constructor argument list.
|
void |
addIndexedArgumentValue(int index,
Object value)
Add an argument value for the given index in the constructor argument list.
|
void |
addIndexedArgumentValue(int index,
Object value,
String type)
Add an argument value for the given index in the constructor argument list.
|
void |
clear()
Clear this holder, removing all argument values.
|
boolean |
equals(Object other) |
int |
getArgumentCount()
Return the number of argument values held in this instance,
counting both indexed and generic argument values.
|
ConstructorArgumentValues.ValueHolder |
getArgumentValue(int index,
Class<?> requiredType)
Look for an argument value that either corresponds to the given index
in the constructor argument list or generically matches by type.
|
ConstructorArgumentValues.ValueHolder |
getArgumentValue(int index,
Class<?> requiredType,
String requiredName)
Look for an argument value that either corresponds to the given index
in the constructor argument list or generically matches by type.
|
ConstructorArgumentValues.ValueHolder |
getArgumentValue(int index,
Class<?> requiredType,
String requiredName,
Set<ConstructorArgumentValues.ValueHolder> usedValueHolders)
Look for an argument value that either corresponds to the given index
in the constructor argument list or generically matches by type.
|
ConstructorArgumentValues.ValueHolder |
getGenericArgumentValue(Class<?> requiredType)
Look for a generic argument value that matches the given type.
|
ConstructorArgumentValues.ValueHolder |
getGenericArgumentValue(Class<?> requiredType,
String requiredName)
Look for a generic argument value that matches the given type.
|
ConstructorArgumentValues.ValueHolder |
getGenericArgumentValue(Class<?> requiredType,
String requiredName,
Set<ConstructorArgumentValues.ValueHolder> usedValueHolders)
Look for the next generic argument value that matches the given type,
ignoring argument values that have already been used in the current
resolution process.
|
List<ConstructorArgumentValues.ValueHolder> |
getGenericArgumentValues()
Return the list of generic argument values.
|
ConstructorArgumentValues.ValueHolder |
getIndexedArgumentValue(int index,
Class<?> requiredType)
Get argument value for the given index in the constructor argument list.
|
ConstructorArgumentValues.ValueHolder |
getIndexedArgumentValue(int index,
Class<?> requiredType,
String requiredName)
Get argument value for the given index in the constructor argument list.
|
Map<Integer,ConstructorArgumentValues.ValueHolder> |
getIndexedArgumentValues()
Return the map of indexed argument values.
|
int |
hashCode() |
boolean |
hasIndexedArgumentValue(int index)
Check whether an argument value has been registered for the given index.
|
boolean |
isEmpty()
Return if this holder does not contain any argument values,
neither indexed ones nor generic ones.
|
public ConstructorArgumentValues()
public ConstructorArgumentValues(ConstructorArgumentValues original)
original
- the ConstructorArgumentValues to copypublic void addArgumentValues(@Nullable ConstructorArgumentValues other)
Note: Identical ValueHolder instances will only be registered once, to allow for merging and re-merging of argument value definitions. Distinct ValueHolder instances carrying the same content are of course allowed.
public void addIndexedArgumentValue(int index, @Nullable Object value)
index
- the index in the constructor argument listvalue
- the argument valuepublic void addIndexedArgumentValue(int index, @Nullable Object value, String type)
index
- the index in the constructor argument listvalue
- the argument valuetype
- the type of the constructor argumentpublic void addIndexedArgumentValue(int index, ConstructorArgumentValues.ValueHolder newValue)
index
- the index in the constructor argument listnewValue
- the argument value in the form of a ValueHolderpublic boolean hasIndexedArgumentValue(int index)
index
- the index in the constructor argument list@Nullable public ConstructorArgumentValues.ValueHolder getIndexedArgumentValue(int index, @Nullable Class<?> requiredType)
index
- the index in the constructor argument listrequiredType
- the type to match (can be null
to match
untyped values only)null
if none set@Nullable public ConstructorArgumentValues.ValueHolder getIndexedArgumentValue(int index, @Nullable Class<?> requiredType, @Nullable String requiredName)
index
- the index in the constructor argument listrequiredType
- the type to match (can be null
to match
untyped values only)requiredName
- the type to match (can be null
to match
unnamed values only, or empty String to match any name)null
if none setpublic Map<Integer,ConstructorArgumentValues.ValueHolder> getIndexedArgumentValues()
ConstructorArgumentValues.ValueHolder
public void addGenericArgumentValue(Object value)
Note: A single generic argument value will just be used once, rather than matched multiple times.
value
- the argument valuepublic void addGenericArgumentValue(Object value, String type)
Note: A single generic argument value will just be used once, rather than matched multiple times.
value
- the argument valuetype
- the type of the constructor argumentpublic void addGenericArgumentValue(ConstructorArgumentValues.ValueHolder newValue)
Note: A single generic argument value will just be used once, rather than matched multiple times.
newValue
- the argument value in the form of a ValueHolder
Note: Identical ValueHolder instances will only be registered once, to allow for merging and re-merging of argument value definitions. Distinct ValueHolder instances carrying the same content are of course allowed.
@Nullable public ConstructorArgumentValues.ValueHolder getGenericArgumentValue(Class<?> requiredType)
requiredType
- the type to matchnull
if none set@Nullable public ConstructorArgumentValues.ValueHolder getGenericArgumentValue(Class<?> requiredType, String requiredName)
requiredType
- the type to matchrequiredName
- the name to matchnull
if none set@Nullable public ConstructorArgumentValues.ValueHolder getGenericArgumentValue(@Nullable Class<?> requiredType, @Nullable String requiredName, @Nullable Set<ConstructorArgumentValues.ValueHolder> usedValueHolders)
requiredType
- the type to match (can be null
to find
an arbitrary next generic argument value)requiredName
- the name to match (can be null
to not
match argument values by name, or empty String to match any name)usedValueHolders
- a Set of ValueHolder objects that have already been used
in the current resolution process and should therefore not be returned againnull
if none foundpublic List<ConstructorArgumentValues.ValueHolder> getGenericArgumentValues()
ConstructorArgumentValues.ValueHolder
@Nullable public ConstructorArgumentValues.ValueHolder getArgumentValue(int index, Class<?> requiredType)
index
- the index in the constructor argument listrequiredType
- the parameter type to matchnull
if none set@Nullable public ConstructorArgumentValues.ValueHolder getArgumentValue(int index, Class<?> requiredType, String requiredName)
index
- the index in the constructor argument listrequiredType
- the parameter type to matchrequiredName
- the parameter name to matchnull
if none set@Nullable public ConstructorArgumentValues.ValueHolder getArgumentValue(int index, @Nullable Class<?> requiredType, @Nullable String requiredName, @Nullable Set<ConstructorArgumentValues.ValueHolder> usedValueHolders)
index
- the index in the constructor argument listrequiredType
- the parameter type to match (can be null
to find an untyped argument value)requiredName
- the parameter name to match (can be null
to find an unnamed argument value, or empty String to match any name)usedValueHolders
- a Set of ValueHolder objects that have already
been used in the current resolution process and should therefore not
be returned again (allowing to return the next generic argument match
in case of multiple generic argument values of the same type)null
if none setpublic int getArgumentCount()
public boolean isEmpty()
public void clear()