Package org.hibernate.tuple.entity
Class DynamicMapEntityTuplizer
- java.lang.Object
-
- org.hibernate.tuple.entity.AbstractEntityTuplizer
-
- org.hibernate.tuple.entity.DynamicMapEntityTuplizer
-
- All Implemented Interfaces:
EntityTuplizer,Tuplizer
public class DynamicMapEntityTuplizer extends AbstractEntityTuplizer
AnEntityTuplizerspecific to the dynamic-map entity mode.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDynamicMapEntityTuplizer.BasicEntityNameResolver
-
Field Summary
-
Fields inherited from class org.hibernate.tuple.entity.AbstractEntityTuplizer
getters, hasCustomAccessors, propertySpan, setters
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected InstantiatorbuildInstantiator(EntityMetamodel entityMetamodel, PersistentClass mappingInfo)Build an appropriate Instantiator for the given mapped entity.protected GetterbuildPropertyGetter(Property mappedProperty, PersistentClass mappedEntity)Build an appropriate Getter for the given property.protected SetterbuildPropertySetter(Property mappedProperty, PersistentClass mappedEntity)Build an appropriate Setter for the given property.protected ProxyFactorybuildProxyFactory(PersistentClass mappingInfo, Getter idGetter, Setter idSetter)Build an appropriate ProxyFactory for the given mapped entity.StringdetermineConcreteSubclassEntityName(Object entityInstance, SessionFactoryImplementor factory)Given an entity instance, determine the most appropriate (most targeted) entity-name which represents it.static StringextractEmbeddedEntityName(Map entity)ClassgetConcreteProxyClass()Returns the java class to which generated proxies will be typed.EntityModegetEntityMode()Return the entity-mode handled by this tuplizer instance.EntityNameResolver[]getEntityNameResolvers()Get anyEntityNameResolversassociated with thisTuplizer.ClassgetMappedClass()Return the pojo class managed by this tuplizer.-
Methods inherited from class org.hibernate.tuple.entity.AbstractEntityTuplizer
afterInitialize, createProxy, getComponentValue, getEntityMetamodel, getEntityName, getFactory, getGetter, getIdentifier, getIdentifier, getIdentifierGetter, getIdentifierMapperType, getInstantiator, getPropertyValue, getPropertyValue, getPropertyValues, getPropertyValuesToInsert, getProxyFactory, getSubclassEntityNames, getVersion, getVersionGetter, hasProxy, instantiate, instantiate, instantiate, isInstance, isLifecycleImplementor, linkToSession, resetIdentifier, resetIdentifier, setIdentifier, setIdentifier, setPropertyValue, setPropertyValue, setPropertyValues, shouldGetAllProperties, toString
-
-
-
-
Method Detail
-
getEntityMode
public EntityMode getEntityMode()
Description copied from interface:EntityTuplizerReturn the entity-mode handled by this tuplizer instance.- Returns:
- The entity-mode
-
buildPropertyGetter
protected Getter buildPropertyGetter(Property mappedProperty, PersistentClass mappedEntity)
Description copied from class:AbstractEntityTuplizerBuild an appropriate Getter for the given property.- Specified by:
buildPropertyGetterin classAbstractEntityTuplizer- 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 Setter buildPropertySetter(Property mappedProperty, PersistentClass mappedEntity)
Description copied from class:AbstractEntityTuplizerBuild an appropriate Setter for the given property.- Specified by:
buildPropertySetterin classAbstractEntityTuplizer- 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 Instantiator buildInstantiator(EntityMetamodel entityMetamodel, PersistentClass mappingInfo)
Description copied from class:AbstractEntityTuplizerBuild an appropriate Instantiator for the given mapped entity.- Specified by:
buildInstantiatorin classAbstractEntityTuplizermappingInfo- The mapping information regarding the mapped entity.- Returns:
- An appropriate Instantiator instance.
-
buildProxyFactory
protected ProxyFactory buildProxyFactory(PersistentClass mappingInfo, Getter idGetter, Setter idSetter)
Description copied from class:AbstractEntityTuplizerBuild an appropriate ProxyFactory for the given mapped entity.- Specified by:
buildProxyFactoryin classAbstractEntityTuplizer- 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.
-
getMappedClass
public Class getMappedClass()
Description copied from interface:TuplizerReturn the pojo class managed by this tuplizer. Need to determine how to best handle this for the Tuplizers for EntityModes other than POJO. todo : be really nice to not have this here since it is essentially pojo specific...- Returns:
- The persistent class.
-
getConcreteProxyClass
public Class getConcreteProxyClass()
Description copied from interface:EntityTuplizerReturns the java class to which generated proxies will be typed. todo : look at fully encapsulatingPersistenceContext.narrowProxy(java.lang.Object, org.hibernate.persister.entity.EntityPersister, org.hibernate.engine.spi.EntityKey, java.lang.Object)here, since that is the only external use of this method- Returns:
- The java class to which generated proxies will be typed
-
getEntityNameResolvers
public EntityNameResolver[] getEntityNameResolvers()
Description copied from interface:EntityTuplizerGet anyEntityNameResolversassociated with thisTuplizer.- Returns:
- The associated resolvers. May be null or empty.
-
determineConcreteSubclassEntityName
public String determineConcreteSubclassEntityName(Object entityInstance, SessionFactoryImplementor factory)
Description copied from interface:EntityTuplizerGiven an entity instance, determine the most appropriate (most targeted) entity-name which represents it. This is called in situations where we already know an entity name for the given entityInstance; we are being asked to determine if there is a more appropriate entity-name to use, specifically within an inheritance hierarchy. For example, consider a case where a user calls session.update( "Animal", cat );. Here, the user has explicitly provided Animal as the entity-name. However, they have passed in an instance of Cat which is a subclass of Animal. In this case, we would return Cat as the entity-name. null may be returned from calls to this method. The meaning of null in that case is assumed to be that we should use whatever explicit entity-name the user provided (Animal rather than Cat in the example above).- Parameters:
entityInstance- The entity instance.factory- Reference to the SessionFactory.- Returns:
- The most appropriate entity name to use.
-
-