Top Description Fields Constructors Methods
org.springframework.beans

public Class PropertyValue

extends BeanMetadataAttributeAccessor
implements Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable
Annotations
@SuppressWarnings:serial
Imports
java.io.Serializable, org.springframework.lang.Nullable, org.springframework.util.Assert, .ObjectUtils

Object to hold information and value for an individual bean property. Using an object here, rather than just storing all properties in a map keyed by property name, allows for more flexibility, and the ability to handle indexed properties etc in an optimized way.

Note that the value doesn't need to be the final required type: A BeanWrapper implementation should handle any necessary conversion, as this object doesn't know anything about the objects it will be applied to.

Authors
Rod Johnson, Rob Harrop, Juergen Hoeller
Since
13 May 2001
See Also
PropertyValues, BeanWrapper

Field Summary

Modifier and TypeField and Description
pack-priv volatile Boolean
conversionNecessary

Package-visible field that indicates whether conversion is necessary.

private boolean
private Object
private final String
private boolean
pack-priv transient volatile Object
resolvedTokens

Package-visible field for caching the resolved property path tokens.

private final Object

Constructor Summary

AccessConstructor and Description
public
PropertyValue(String
the name of the property (never null)
name
,
Object
the value of the property (possibly before type conversion)
value
)

Create a new PropertyValue instance.

public
PropertyValue(PropertyValue
the PropertyValue to copy (never null)
original
)

Copy constructor.

public
PropertyValue(PropertyValue
the PropertyValue to link to (never null)
original
,
Object
the new value to apply
newValue
)

Constructor that exposes a new value for an original value holder.

Method Summary

Modifier and TypeMethod and Description
public boolean
equals(Object
the reference object with which to compare.
other
)

Overrides org.springframework.core.AttributeAccessorSupport.equals.

Indicates whether some other object is "equal to" this one.
public synchronized Object
getConvertedValue()

Return the converted value of this property value, after processed type conversion.

public String
getName()

Return the name of the property.

public PropertyValue

Returns:

the original PropertyValue (either a source of this value holder or this value holder itself).
getOriginalPropertyValue
()

Return the original PropertyValue instance for this value holder.

public Object
getValue()

Return the value of the property.

public int
hashCode()

Overrides org.springframework.core.AttributeAccessorSupport.hashCode.

Returns a hash code value for the object.
public synchronized boolean
isConverted()

Return whether this holder contains a converted value already (true), or whether the value still needs to be converted (false).

public boolean
isOptional()

Return whether this is an optional value, that is, to be ignored when no corresponding property exists on the target class.

public synchronized void
setConvertedValue(Object value)

Set the converted value of this property value, after processed type conversion.

public void
setOptional(boolean optional)

Set whether this is an optional value, that is, to be ignored when no corresponding property exists on the target class.

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.
Inherited from org.springframework.beans.BeanMetadataAttributeAccessor:
addMetadataAttributegetAttributegetMetadataAttributegetSourceremoveAttributesetAttributesetSource

Field Detail

conversionNecessaryback to summary
pack-priv volatile Boolean conversionNecessary

Package-visible field that indicates whether conversion is necessary.

Annotations
@Nullable
convertedback to summary
private boolean converted
convertedValueback to summary
private Object convertedValue
Annotations
@Nullable
nameback to summary
private final String name
optionalback to summary
private boolean optional
resolvedTokensback to summary
pack-priv transient volatile Object resolvedTokens

Package-visible field for caching the resolved property path tokens.

Annotations
@Nullable
valueback to summary
private final Object value
Annotations
@Nullable

Constructor Detail

PropertyValueback to summary
public PropertyValue(String name, Object value)

Create a new PropertyValue instance.

Parameters
name:String

the name of the property (never null)

value:Object

the value of the property (possibly before type conversion)

PropertyValueback to summary
public PropertyValue(PropertyValue original)

Copy constructor.

Parameters
original:PropertyValue

the PropertyValue to copy (never null)

PropertyValueback to summary
public PropertyValue(PropertyValue original, Object newValue)

Constructor that exposes a new value for an original value holder. The original holder will be exposed as source of the new holder.

Parameters
original:PropertyValue

the PropertyValue to link to (never null)

newValue:Object

the new value to apply

Method Detail

equalsback to summary
public boolean equals(Object other)

Overrides org.springframework.core.AttributeAccessorSupport.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
other:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

Annotations
@Override
getConvertedValueback to summary
public synchronized Object getConvertedValue()

Return the converted value of this property value, after processed type conversion.

Annotations
@Nullable
getNameback to summary
public String getName()

Return the name of the property.

getOriginalPropertyValueback to summary
public PropertyValue getOriginalPropertyValue()

Return the original PropertyValue instance for this value holder.

Returns:PropertyValue

the original PropertyValue (either a source of this value holder or this value holder itself).

getValueback to summary
public Object getValue()

Return the value of the property.

Note that type conversion will not have occurred here. It is the responsibility of the BeanWrapper implementation to perform type conversion.

Annotations
@Nullable
hashCodeback to summary
public int hashCode()

Overrides org.springframework.core.AttributeAccessorSupport.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object.

Annotations
@Override
isConvertedback to summary
public synchronized boolean isConverted()

Return whether this holder contains a converted value already (true), or whether the value still needs to be converted (false).

isOptionalback to summary
public boolean isOptional()

Return whether this is an optional value, that is, to be ignored when no corresponding property exists on the target class.

Since
3.0
setConvertedValueback to summary
public synchronized void setConvertedValue(Object value)

Set the converted value of this property value, after processed type conversion.

setOptionalback to summary
public void setOptional(boolean optional)

Set whether this is an optional value, that is, to be ignored when no corresponding property exists on the target class.

Since
3.0
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object.

Returns:String

a string representation of the object.

Annotations
@Override