Spring Data Commons

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)
           
 Association<P> getAssociation()
           
 Class<?> getComponentType()
          Returns the component type of the type if it is a Collection.
 Field getField()
           
 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.
 PropertyDescriptor getPropertyDescriptor()
          Returns the PropertyDescriptor backing the PersistentProperty.
 Class<?> getRawType()
          Returns the raw type as it's pulled from from the reflected property.
 String getSpelExpression()
           
 Class<?> getType()
          The type of the property
 TypeInformation<?> getTypeInformation()
           
 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()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.springframework.data.mapping.PersistentProperty
isIdProperty
 

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()
Specified by:
getTypeInformation in interface PersistentProperty<P extends PersistentProperty<P>>

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:

getPropertyDescriptor

public PropertyDescriptor getPropertyDescriptor()
Description copied from interface: PersistentProperty
Returns the PropertyDescriptor backing the PersistentProperty.

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

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

equals

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

hashCode

public int hashCode()
Overrides:
hashCode in class Object

Spring Data Commons

Copyright © 2012. All Rights Reserved.