Package org.hibernate.tuple.entity
Class AbstractEntityTuplizer
- java.lang.Object
-
- org.hibernate.tuple.entity.AbstractEntityTuplizer
-
- All Implemented Interfaces:
EntityTuplizer,Tuplizer
- Direct Known Subclasses:
DynamicMapEntityTuplizer,PojoEntityTuplizer
public abstract class AbstractEntityTuplizer extends Object implements EntityTuplizer
Support for tuplizers relating to entities.
-
-
Field Summary
Fields Modifier and Type Field Description protected Getter[]gettersprotected booleanhasCustomAccessorsprotected intpropertySpanprotected Setter[]setters
-
Constructor Summary
Constructors Constructor Description AbstractEntityTuplizer(EntityMetamodel entityMetamodel, PersistentClass mappingInfo)Constructs a new AbstractEntityTuplizer instance.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidafterInitialize(Object entity, SharedSessionContractImplementor session)Called just after the entities properties have been initialized.protected abstract InstantiatorbuildInstantiator(EntityMetamodel entityMetamodel, PersistentClass mappingInfo)Build an appropriate Instantiator for the given mapped entity.protected abstract GetterbuildPropertyGetter(Property mappedProperty, PersistentClass mappedEntity)Build an appropriate Getter for the given property.protected abstract SetterbuildPropertySetter(Property mappedProperty, PersistentClass mappedEntity)Build an appropriate Setter for the given property.protected abstract ProxyFactorybuildProxyFactory(PersistentClass mappingInfo, Getter idGetter, Setter idSetter)Build an appropriate ProxyFactory for the given mapped entity.ObjectcreateProxy(Serializable id, SharedSessionContractImplementor session)Generates an appropriate proxy representation of this entity for this entity-mode.protected ObjectgetComponentValue(ComponentType type, Object component, String propertyPath)Extract a component property value.protected EntityMetamodelgetEntityMetamodel()protected StringgetEntityName()Retrieves the defined entity-name for the tuplized entity.protected SessionFactoryImplementorgetFactory()GettergetGetter(int i)Retrieve the getter for the specified property.SerializablegetIdentifier(Object entity)Extract the identifier value from the given entity.SerializablegetIdentifier(Object entity, SharedSessionContractImplementor session)Extract the identifier value from the given entity.GettergetIdentifierGetter()Retrieve the getter for the identifier property.TypegetIdentifierMapperType()protected InstantiatorgetInstantiator()ObjectgetPropertyValue(Object entity, int i)Extract the value of a particular property from the given entity.ObjectgetPropertyValue(Object entity, String propertyPath)Extract the value of a particular property from the given entity.Object[]getPropertyValues(Object entity)Extract the current values contained on the given entity.Object[]getPropertyValuesToInsert(Object entity, Map mergeMap, SharedSessionContractImplementor session)Extract the values of the insertable properties of the entity (including backrefs)ProxyFactorygetProxyFactory()protected SetgetSubclassEntityNames()Retrieves the defined entity-names for any subclasses defined for this entity.ObjectgetVersion(Object entity)Extract the value of the version property from the given entity.GettergetVersionGetter()Retrieve the getter for the version property.booleanhasProxy()Does this entity, for this mode, present a possibility for proxying?Objectinstantiate()Generate a new, empty entity.Objectinstantiate(Serializable id)Create an entity instance initialized with the given identifier.Objectinstantiate(Serializable id, SharedSessionContractImplementor session)Create an entity instance initialized with the given identifier.booleanisInstance(Object object)Is the given object considered an instance of the the entity (accounting for entity-mode) managed by this tuplizer.booleanisLifecycleImplementor()protected voidlinkToSession(Object entity, SharedSessionContractImplementor session)voidresetIdentifier(Object entity, Serializable currentId, Object currentVersion)Inject the given identifier and version into the entity, in order to "roll back" to their original values.voidresetIdentifier(Object entity, Serializable currentId, Object currentVersion, SharedSessionContractImplementor session)Inject the given identifier and version into the entity, in order to "roll back" to their original values.voidsetIdentifier(Object entity, Serializable id)Inject the identifier value into the given entity.voidsetIdentifier(Object entity, Serializable id, SharedSessionContractImplementor session)Inject the identifier value into the given entity.voidsetPropertyValue(Object entity, int i, Object value)Inject the value of a particular property.voidsetPropertyValue(Object entity, String propertyName, Object value)Inject the value of a particular property.voidsetPropertyValues(Object entity, Object[] values)Inject the given values into the given entity.protected booleanshouldGetAllProperties(Object entity)StringtoString()-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.hibernate.tuple.entity.EntityTuplizer
determineConcreteSubclassEntityName, getConcreteProxyClass, getEntityMode, getEntityNameResolvers
-
Methods inherited from interface org.hibernate.tuple.Tuplizer
getMappedClass
-
-
-
-
Constructor Detail
-
AbstractEntityTuplizer
public AbstractEntityTuplizer(EntityMetamodel entityMetamodel, PersistentClass mappingInfo)
Constructs a new AbstractEntityTuplizer instance.- Parameters:
entityMetamodel- The "interpreted" information relating to the mapped entity.mappingInfo- The parsed "raw" mapping data relating to the given entity.
-
-
Method Detail
-
getIdentifierMapperType
public Type getIdentifierMapperType()
-
buildPropertyGetter
protected abstract Getter buildPropertyGetter(Property mappedProperty, PersistentClass mappedEntity)
Build an appropriate Getter for the given property.- Parameters:
mappedProperty- The property to be accessed via the built Getter.mappedEntity- The entity information regarding the mapped entity owning this property.- Returns:
- An appropriate Getter instance.
-
buildPropertySetter
protected abstract Setter buildPropertySetter(Property mappedProperty, PersistentClass mappedEntity)
Build an appropriate Setter for the given property.- Parameters:
mappedProperty- The property to be accessed via the built Setter.mappedEntity- The entity information regarding the mapped entity owning this property.- Returns:
- An appropriate Setter instance.
-
buildInstantiator
protected abstract Instantiator buildInstantiator(EntityMetamodel entityMetamodel, PersistentClass mappingInfo)
Build an appropriate Instantiator for the given mapped entity.- Parameters:
mappingInfo- The mapping information regarding the mapped entity.- Returns:
- An appropriate Instantiator instance.
-
buildProxyFactory
protected abstract ProxyFactory buildProxyFactory(PersistentClass mappingInfo, Getter idGetter, Setter idSetter)
Build an appropriate ProxyFactory for the given mapped entity.- Parameters:
mappingInfo- The mapping information regarding the mapped entity.idGetter- The constructed Getter relating to the entity's id property.idSetter- The constructed Setter relating to the entity's id property.- Returns:
- An appropriate ProxyFactory instance.
-
getEntityName
protected String getEntityName()
Retrieves the defined entity-name for the tuplized entity.- Returns:
- The entity-name.
-
getSubclassEntityNames
protected Set getSubclassEntityNames()
Retrieves the defined entity-names for any subclasses defined for this entity.- Returns:
- Any subclass entity-names.
-
getIdentifier
public Serializable getIdentifier(Object entity) throws HibernateException
Description copied from interface:EntityTuplizerExtract the identifier value from the given entity.- Specified by:
getIdentifierin interfaceEntityTuplizer- Parameters:
entity- The entity from which to extract the identifier value.- Returns:
- The identifier value.
- Throws:
HibernateException- If the entity does not define an identifier property, or an error occurs accessing its value.
-
getIdentifier
public Serializable getIdentifier(Object entity, SharedSessionContractImplementor session)
Description copied from interface:EntityTuplizerExtract the identifier value from the given entity.- Specified by:
getIdentifierin interfaceEntityTuplizer- Parameters:
entity- The entity from which to extract the identifier value.session- The session from which is requests originates- Returns:
- The identifier value.
-
setIdentifier
public void setIdentifier(Object entity, Serializable id) throws HibernateException
Description copied from interface:EntityTuplizerInject the identifier value into the given entity. Has no effect if the entity does not define an identifier property- Specified by:
setIdentifierin interfaceEntityTuplizer- Parameters:
entity- The entity to inject with the identifier value.id- The value to be injected as the identifier.- Throws:
HibernateException
-
setIdentifier
public void setIdentifier(Object entity, Serializable id, SharedSessionContractImplementor session)
Description copied from interface:EntityTuplizerInject the identifier value into the given entity. Has no effect if the entity does not define an identifier property- Specified by:
setIdentifierin interfaceEntityTuplizer- Parameters:
entity- The entity to inject with the identifier value.id- The value to be injected as the identifier.session- The session from which is requests originates
-
resetIdentifier
public void resetIdentifier(Object entity, Serializable currentId, Object currentVersion)
Description copied from interface:EntityTuplizerInject the given identifier and version into the entity, in order to "roll back" to their original values.- Specified by:
resetIdentifierin interfaceEntityTuplizer- Parameters:
entity- The entity for which to reset the id/version valuescurrentId- The identifier value to inject into the entity.currentVersion- The version value to inject into the entity.
-
resetIdentifier
public void resetIdentifier(Object entity, Serializable currentId, Object currentVersion, SharedSessionContractImplementor session)
Description copied from interface:EntityTuplizerInject the given identifier and version into the entity, in order to "roll back" to their original values.- Specified by:
resetIdentifierin interfaceEntityTuplizer- Parameters:
entity- The entity for which to reset the id/version valuescurrentId- The identifier value to inject into the entity.currentVersion- The version value to inject into the entity.session- The session from which the request originated
-
getVersion
public Object getVersion(Object entity) throws HibernateException
Description copied from interface:EntityTuplizerExtract the value of the version property from the given entity.- Specified by:
getVersionin interfaceEntityTuplizer- Parameters:
entity- The entity from which to extract the version value.- Returns:
- The value of the version property, or null if not versioned.
- Throws:
HibernateException- Indicates a problem accessing the version property
-
shouldGetAllProperties
protected boolean shouldGetAllProperties(Object entity)
-
getPropertyValues
public Object[] getPropertyValues(Object entity)
Description copied from interface:TuplizerExtract the current values contained on the given entity.- Specified by:
getPropertyValuesin interfaceTuplizer- Parameters:
entity- The entity from which to extract values.- Returns:
- The current property values.
-
getPropertyValuesToInsert
public Object[] getPropertyValuesToInsert(Object entity, Map mergeMap, SharedSessionContractImplementor session)
Description copied from interface:EntityTuplizerExtract the values of the insertable properties of the entity (including backrefs)- Specified by:
getPropertyValuesToInsertin interfaceEntityTuplizer- Parameters:
entity- The entity from which to extract.mergeMap- a map of instances being merged to merged instancessession- The session in which the result set is being made.- Returns:
- The insertable property values.
-
getPropertyValue
public Object getPropertyValue(Object entity, int i) throws HibernateException
Description copied from interface:TuplizerExtract the value of a particular property from the given entity.- Specified by:
getPropertyValuein interfaceTuplizer- Parameters:
entity- The entity from which to extract the property value.i- The index of the property for which to extract the value.- Returns:
- The current value of the given property on the given entity.
- Throws:
HibernateException
-
getPropertyValue
public Object getPropertyValue(Object entity, String propertyPath) throws HibernateException
Description copied from interface:EntityTuplizerExtract the value of a particular property from the given entity.- Specified by:
getPropertyValuein interfaceEntityTuplizer- Parameters:
entity- The entity from which to extract the property value.propertyPath- The name of the property for which to extract the value.- Returns:
- The current value of the given property on the given entity.
- Throws:
HibernateException- Indicates a problem access the property
-
getComponentValue
protected Object getComponentValue(ComponentType type, Object component, String propertyPath)
Extract a component property value.- Parameters:
type- The component property types.component- The component instance itself.propertyPath- The property path for the property to be extracted.- Returns:
- The property value extracted.
-
setPropertyValues
public void setPropertyValues(Object entity, Object[] values) throws HibernateException
Description copied from interface:TuplizerInject the given values into the given entity.- Specified by:
setPropertyValuesin interfaceTuplizer- Parameters:
entity- The entity.values- The values to be injected.- Throws:
HibernateException
-
setPropertyValue
public void setPropertyValue(Object entity, int i, Object value) throws HibernateException
Description copied from interface:EntityTuplizerInject the value of a particular property.- Specified by:
setPropertyValuein interfaceEntityTuplizer- Parameters:
entity- The entity into which to inject the value.i- The property's index.value- The property value to inject.- Throws:
HibernateException- Indicates a problem access the property
-
setPropertyValue
public void setPropertyValue(Object entity, String propertyName, Object value) throws HibernateException
Description copied from interface:EntityTuplizerInject the value of a particular property.- Specified by:
setPropertyValuein interfaceEntityTuplizer- Parameters:
entity- The entity into which to inject the value.propertyName- The name of the property.value- The property value to inject.- Throws:
HibernateException- Indicates a problem access the property
-
instantiate
public final Object instantiate(Serializable id) throws HibernateException
Description copied from interface:EntityTuplizerCreate an entity instance initialized with the given identifier.- Specified by:
instantiatein interfaceEntityTuplizer- Parameters:
id- The identifier value for the entity to be instantiated.- Returns:
- The instantiated entity.
- Throws:
HibernateException
-
instantiate
public final Object instantiate(Serializable id, SharedSessionContractImplementor session)
Description copied from interface:EntityTuplizerCreate an entity instance initialized with the given identifier.- Specified by:
instantiatein interfaceEntityTuplizer- Parameters:
id- The identifier value for the entity to be instantiated.session- The session from which is requests originates- Returns:
- The instantiated entity.
-
linkToSession
protected void linkToSession(Object entity, SharedSessionContractImplementor session)
-
instantiate
public final Object instantiate() throws HibernateException
Description copied from interface:TuplizerGenerate a new, empty entity.- Specified by:
instantiatein interfaceTuplizer- Returns:
- The new, empty entity instance.
- Throws:
HibernateException
-
afterInitialize
public void afterInitialize(Object entity, SharedSessionContractImplementor session)
Description copied from interface:EntityTuplizerCalled just after the entities properties have been initialized.- Specified by:
afterInitializein interfaceEntityTuplizer- Parameters:
entity- The entity being initialized.session- The session initializing this entity.
-
isInstance
public final boolean isInstance(Object object)
Description copied from interface:TuplizerIs the given object considered an instance of the the entity (accounting for entity-mode) managed by this tuplizer.- Specified by:
isInstancein interfaceTuplizer- Parameters:
object- The object to be checked.- Returns:
- True if the object is considered as an instance of this entity within the given mode.
-
hasProxy
public boolean hasProxy()
Description copied from interface:EntityTuplizerDoes this entity, for this mode, present a possibility for proxying?- Specified by:
hasProxyin interfaceEntityTuplizer- Returns:
- True if this tuplizer can generate proxies for this entity.
-
createProxy
public final Object createProxy(Serializable id, SharedSessionContractImplementor session)
Description copied from interface:EntityTuplizerGenerates an appropriate proxy representation of this entity for this entity-mode.- Specified by:
createProxyin interfaceEntityTuplizer- Parameters:
id- The id of the instance for which to generate a proxy.session- The session to which the proxy should be bound.- Returns:
- The generate proxies.
-
isLifecycleImplementor
public boolean isLifecycleImplementor()
Description copied from interface:EntityTuplizer- Specified by:
isLifecycleImplementorin interfaceEntityTuplizer- Returns:
- True if the Lifecycle interface is implemented; false otherwise.
-
getEntityMetamodel
protected final EntityMetamodel getEntityMetamodel()
-
getFactory
protected final SessionFactoryImplementor getFactory()
-
getInstantiator
protected final Instantiator getInstantiator()
-
getProxyFactory
public final ProxyFactory getProxyFactory()
- Specified by:
getProxyFactoryin interfaceEntityTuplizer
-
getIdentifierGetter
public Getter getIdentifierGetter()
Description copied from interface:EntityTuplizerRetrieve the getter for the identifier property. May return null.- Specified by:
getIdentifierGetterin interfaceEntityTuplizer- Returns:
- The getter for the identifier property.
-
getVersionGetter
public Getter getVersionGetter()
Description copied from interface:EntityTuplizerRetrieve the getter for the version property. May return null.- Specified by:
getVersionGetterin interfaceEntityTuplizer- Returns:
- The getter for the version property.
-
-