Top Description Fields Constructors Methods
org.springframework.core.convert

public final Class Property

extends Object
Class Inheritance
Imports
java.lang.annotation.Annotation, java.lang.reflect.AnnotatedElement, .Field, .Method, java.util.LinkedHashMap, .Map, .Objects, org.springframework.core.MethodParameter, org.springframework.lang.Nullable, org.springframework.util.ConcurrentReferenceHashMap, .ObjectUtils, .ReflectionUtils, .StringUtils

A description of a JavaBeans Property that allows us to avoid a dependency on java.beans.PropertyDescriptor. The java.beans package is not available in a number of environments (e.g. Android, Java ME), so this is desirable for portability of Spring's core conversion facility.

Used to build a TypeDescriptor from a property location. The built TypeDescriptor can then be used to convert from/to the property type.

Authors
Keith Donald, Phillip Webb
Since
3.1
See Also
TypeDescriptor#TypeDescriptor(Property), TypeDescriptor#nested(Property, int)

Field Summary

Modifier and TypeField and Description
private static final Map<Property, Annotation[]>
private Annotation[]
private final MethodParameter
private final String
private final Class<?>
private final Method
private final Method

Constructor Summary

AccessConstructor and Description
public
Property(Class<?> objectType, Method readMethod, Method writeMethod)

public
Property(Class<?> objectType, Method readMethod, Method writeMethod, String name)

Method Summary

Modifier and TypeMethod and Description
private void
addAnnotationsToMap(Map<Class<? extends Annotation>, Annotation> annotationMap, AnnotatedElement object)

private Class<?>
public boolean
equals(Object
the reference object with which to compare.
other
)

Overrides java.lang.Object.equals.

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

pack-priv Annotation[]
private Field
pack-priv MethodParameter
public String
getName()

The name of the property: e.g. 'foo'

public Class<?>
getObjectType()

The object declaring this property, either directly or in a superclass the object extends.

public Method
getReadMethod()

The property getter method: e.g. getFoo()

public Class<?>
getType()

The property type: e.g. java.lang.String

public Method
getWriteMethod()

The property setter method: e.g. setFoo(String)

public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this object.

private Annotation[]
private MethodParameter
private String
private MethodParameter
private MethodParameter
Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAlltoStringwaitwaitwait

Field Detail

annotationCacheback to summary
private static final Map<Property, Annotation[]> annotationCache
annotationsback to summary
private Annotation[] annotations
Annotations
@Nullable
methodParameterback to summary
private final MethodParameter methodParameter
nameback to summary
private final String name
objectTypeback to summary
private final Class<?> objectType
readMethodback to summary
private final Method readMethod
Annotations
@Nullable
writeMethodback to summary
private final Method writeMethod
Annotations
@Nullable

Constructor Detail

Propertyback to summary
public Property(Class<?> objectType, Method readMethod, Method writeMethod)
Propertyback to summary
public Property(Class<?> objectType, Method readMethod, Method writeMethod, String name)

Method Detail

addAnnotationsToMapback to summary
private void addAnnotationsToMap(Map<Class<? extends Annotation>, Annotation> annotationMap, AnnotatedElement object)
declaringClassback to summary
private Class<?> declaringClass()
Annotations
@Nullable
equalsback to summary
public boolean equals(Object other)

Overrides java.lang.Object.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
getAnnotationsback to summary
pack-priv Annotation[] getAnnotations()
getFieldback to summary
private Field getField()
Annotations
@Nullable
getMethodParameterback to summary
pack-priv MethodParameter getMethodParameter()
getNameback to summary
public String getName()

The name of the property: e.g. 'foo'

getObjectTypeback to summary
public Class<?> getObjectType()

The object declaring this property, either directly or in a superclass the object extends.

getReadMethodback to summary
public Method getReadMethod()

The property getter method: e.g. getFoo()

Annotations
@Nullable
getTypeback to summary
public Class<?> getType()

The property type: e.g. java.lang.String

getWriteMethodback to summary
public Method getWriteMethod()

The property setter method: e.g. setFoo(String)

Annotations
@Nullable
hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for this 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
resolveAnnotationsback to summary
private Annotation[] resolveAnnotations()
resolveMethodParameterback to summary
private MethodParameter resolveMethodParameter()
resolveNameback to summary
private String resolveName()
resolveReadMethodParameterback to summary
private MethodParameter resolveReadMethodParameter()
Annotations
@Nullable
resolveWriteMethodParameterback to summary
private MethodParameter resolveWriteMethodParameter()
Annotations
@Nullable