Spring Data Core

org.springframework.data.mapping.model
Class AbstractPersistentProperty<P extends PersistentProperty<P>>

java.lang.Object
  extended by org.springframework.data.mapping.model.AbstractPersistentProperty<P>
All Implemented Interfaces:
PersistentProperty<P>
Direct Known Subclasses:
AnnotationBasedPersistentProperty

public abstract class AbstractPersistentProperty<P extends PersistentProperty<P>>
extends Object
implements PersistentProperty<P>

Simple impementation of PersistentProperty.

Author:
Jon Brisbin, Oliver Gierke

Field Summary
protected  Association<P> association
           
protected  Field field
           
protected  TypeInformation<?> information
           
protected  String name
           
protected  PersistentEntity<?,P> owner
           
protected  PropertyDescriptor propertyDescriptor
           
protected  Class<?> rawType
           
 
Constructor Summary
AbstractPersistentProperty(Field field, PropertyDescriptor propertyDescriptor, PersistentEntity<?,P> owner, SimpleTypeHolder simpleTypeHolder)
           
 
Method Summary
protected abstract  Association<P> createAssociation()
           
 boolean equals(Object obj)
           
 Class<?> getActualType()
          Returns the actual type of the property.
 Association<P> getAssociation()
           
 Class<?> getComponentType()
          Returns the component type of the type if it is a Collection.
 Field getField()
           
 Method getGetter()
          Returns the getter method to access the property value if available.
 Class<?> getMapValueType()
          Returns the type of the values if the property is a Map.
 String getName()
          The name of the property
 PersistentEntity<?,P> getOwner()
           
 Iterable<? extends TypeInformation<?>> getPersistentEntityType()
          Returns the TypeInformation if the property references a PersistentEntity.
 Class<?> getRawType()
          Returns the raw type as it's pulled from from the reflected property.
 Method getSetter()
          Returns the setter method to set a property value.
 String getSpelExpression()
           
 Class<?> getType()
          The type of the property
 TypeInformation<?> getTypeInformation()
          Returns the TypeInformation of the property.
 int hashCode()
           
 boolean isArray()
          Returns whether the property is an array.
 boolean isAssociation()
          Returns whether the property is an Association.
 boolean isCollectionLike()
          Returns whether the property is a Collection, Iterable or an array.
 boolean isEntity()
          Returns whether the type of the PersistentProperty is actually to be regarded as PersistentEntity in turn.
 boolean isMap()
          Returns whether the property is a Map.
 boolean isTransient()
          Returns whether the property is transient.
 boolean shallBePersisted()
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.springframework.data.mapping.PersistentProperty
isIdProperty, isVersionProperty
 

Field Detail

name

protected final String name

propertyDescriptor

protected final PropertyDescriptor propertyDescriptor

information

protected final TypeInformation<?> information

rawType

protected final Class<?> rawType

field

protected final Field field

association

protected final Association<P extends PersistentProperty<P>> association

owner

protected final PersistentEntity<?,P extends PersistentProperty<P>> owner
Constructor Detail

AbstractPersistentProperty

public AbstractPersistentProperty(Field field,
                                  PropertyDescriptor propertyDescriptor,
                                  PersistentEntity<?,P> owner,
                                  SimpleTypeHolder simpleTypeHolder)
Method Detail

createAssociation

protected abstract Association<P> createAssociation()

getOwner

public PersistentEntity<?,P> getOwner()
Specified by:
getOwner in interface PersistentProperty<P extends PersistentProperty<P>>

getName

public String getName()
Description copied from interface: PersistentProperty
The name of the property

Specified by:
getName in interface PersistentProperty<P extends PersistentProperty<P>>
Returns:
The property name

getType

public Class<?> getType()
Description copied from interface: PersistentProperty
The type of the property

Specified by:
getType in interface PersistentProperty<P extends PersistentProperty<P>>
Returns:
The property type

getRawType

public Class<?> getRawType()
Description copied from interface: PersistentProperty
Returns the raw type as it's pulled from from the reflected property.

Specified by:
getRawType in interface PersistentProperty<P extends PersistentProperty<P>>
Returns:
the raw type of the property.

getTypeInformation

public TypeInformation<?> getTypeInformation()
Description copied from interface: PersistentProperty
Returns the TypeInformation of the property.

Specified by:
getTypeInformation in interface PersistentProperty<P extends PersistentProperty<P>>
Returns:

getPersistentEntityType

public Iterable<? extends TypeInformation<?>> getPersistentEntityType()
Description copied from interface: PersistentProperty
Returns the TypeInformation if the property references a PersistentEntity. Will return null in case it refers to a simple type. Will return Collection's component type or the Map's value type transparently.

Specified by:
getPersistentEntityType in interface PersistentProperty<P extends PersistentProperty<P>>
Returns:

getGetter

public Method getGetter()
Description copied from interface: PersistentProperty
Returns the getter method to access the property value if available. Might return null in case there is no getter method with a return type assignable to the actual property's type.

Specified by:
getGetter in interface PersistentProperty<P extends PersistentProperty<P>>
Returns:
the getter method to access the property value if available, otherwise null.

getSetter

public Method getSetter()
Description copied from interface: PersistentProperty
Returns the setter method to set a property value. Might return null in case there is no setter available.

Specified by:
getSetter in interface PersistentProperty<P extends PersistentProperty<P>>

getField

public Field getField()
Specified by:
getField in interface PersistentProperty<P extends PersistentProperty<P>>

getSpelExpression

public String getSpelExpression()
Specified by:
getSpelExpression in interface PersistentProperty<P extends PersistentProperty<P>>

isTransient

public boolean isTransient()
Description copied from interface: PersistentProperty
Returns whether the property is transient.

Specified by:
isTransient in interface PersistentProperty<P extends PersistentProperty<P>>
Returns:

shallBePersisted

public boolean shallBePersisted()
Specified by:
shallBePersisted in interface PersistentProperty<P extends PersistentProperty<P>>

isAssociation

public boolean isAssociation()
Description copied from interface: PersistentProperty
Returns whether the property is an Association.

Specified by:
isAssociation in interface PersistentProperty<P extends PersistentProperty<P>>
Returns:

getAssociation

public Association<P> getAssociation()
Specified by:
getAssociation in interface PersistentProperty<P extends PersistentProperty<P>>

isCollectionLike

public boolean isCollectionLike()
Description copied from interface: PersistentProperty
Returns whether the property is a Collection, Iterable or an array.

Specified by:
isCollectionLike in interface PersistentProperty<P extends PersistentProperty<P>>
Returns:

isMap

public boolean isMap()
Description copied from interface: PersistentProperty
Returns whether the property is a Map.

Specified by:
isMap in interface PersistentProperty<P extends PersistentProperty<P>>
Returns:

isArray

public boolean isArray()
Description copied from interface: PersistentProperty
Returns whether the property is an array.

Specified by:
isArray in interface PersistentProperty<P extends PersistentProperty<P>>
Returns:

isEntity

public boolean isEntity()
Description copied from interface: PersistentProperty
Returns whether the type of the PersistentProperty is actually to be regarded as PersistentEntity in turn.

Specified by:
isEntity in interface PersistentProperty<P extends PersistentProperty<P>>
Returns:

getComponentType

public Class<?> getComponentType()
Description copied from interface: PersistentProperty
Returns the component type of the type if it is a Collection. Will return the type of the key if the property is a Map.

Specified by:
getComponentType in interface PersistentProperty<P extends PersistentProperty<P>>
Returns:
the component type, the map's key type or null if neither Collection nor Map.

getMapValueType

public Class<?> getMapValueType()
Description copied from interface: PersistentProperty
Returns the type of the values if the property is a Map.

Specified by:
getMapValueType in interface PersistentProperty<P extends PersistentProperty<P>>
Returns:
the map's value type or null if no Map

getActualType

public Class<?> getActualType()
Description copied from interface: PersistentProperty
Returns the actual type of the property. This will be the original property type if no generics were used, the component type for collection-like types and arrays as well as the value type for map properties.

Specified by:
getActualType in interface PersistentProperty<P extends PersistentProperty<P>>
Returns:

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object

Spring Data Core

Copyright © 2011-2013-2013 Pivotal. All Rights Reserved.