Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.hibernate.tuple.entity
Class PojoEntityTuplizer

    java.lang.Object
      org.hibernate.tuple.entity.AbstractEntityTuplizer
          org.hibernate.tuple.entity.PojoEntityTuplizer

All Implemented Interfaces:
  EntityTuplizer, Tuplizer

    public class PojoEntityTuplizer

extends AbstractEntityTuplizer

An `EntityTuplizer` specific to the pojo entity mode.

Field Summary

Fields inherited from class org.hibernate.tuple.entity.AbstractEntityTuplizer
`getters, hasCustomAccessors, propertySpan, setters`

Constructor Summary
`PojoEntityTuplizer(EntityMetamodel entityMetamodel, EntityBinding mappedEntity)`
`PojoEntityTuplizer(EntityMetamodel entityMetamodel, PersistentClass mappedEntity)`

Method Summary
`void` | `afterInitialize(Object entity, boolean lazyPropertiesAreUnfetched, SessionImplementor session)` Called just after the entities properties have been initialized.
`protected Instantiator` | `buildInstantiator(EntityBinding entityBinding)` Build an appropriate Instantiator for the given mapped entity.
`protected Instantiator` | `buildInstantiator(PersistentClass persistentClass)` Build an appropriate Instantiator for the given mapped entity.
`protected Getter` | `buildPropertyGetter(AttributeBinding mappedProperty)` Build an appropriate Getter for the given property.
`protected Getter` | `buildPropertyGetter(Property mappedProperty, PersistentClass mappedEntity)` Build an appropriate Getter for the given property.
`protected Setter` | `buildPropertySetter(AttributeBinding mappedProperty)` Build an appropriate Setter for the given property.
`protected Setter` | `buildPropertySetter(Property mappedProperty, PersistentClass mappedEntity)` Build an appropriate Setter for the given property.
`protected ProxyFactory` | `buildProxyFactory(EntityBinding entityBinding, Getter idGetter, Setter idSetter)` Build an appropriate ProxyFactory for the given mapped entity.
`protected ProxyFactory` | `buildProxyFactory(PersistentClass persistentClass, Getter idGetter, Setter idSetter)` Build an appropriate ProxyFactory for the given mapped entity.
`protected ProxyFactory` | `buildProxyFactoryInternal(EntityBinding entityBinding, Getter idGetter, Setter idSetter)`
`protected ProxyFactory` | `buildProxyFactoryInternal(PersistentClass persistentClass, Getter idGetter, Setter idSetter)`
`String` | `determineConcreteSubclassEntityName(Object entityInstance, SessionFactoryImplementor factory)` Given an entity instance, determine the most appropriate (most targeted) entity-name which represents it.
`Class` | `getConcreteProxyClass()` Returns the java class to which generated proxies will be typed.
`EntityMode` | `getEntityMode()` Return the entity-mode handled by this tuplizer instance.
`EntityNameResolver[]` | `getEntityNameResolvers()` Get any `EntityNameResolvers` associated with this `Tuplizer`.
`Class` | `getMappedClass()` Return the pojo class managed by this tuplizer.
`Object[]` | `getPropertyValues(Object entity)` Extract the current values contained on the given entity.
`Object[]` | `getPropertyValuesToInsert(Object entity, Map mergeMap, SessionImplementor session)` Extract the values of the insertable properties of the entity (including backrefs)
`protected Object[]` | `getPropertyValuesWithOptimizer(Object object)`
`boolean` | `hasUninitializedLazyProperties(Object entity)` Does the given entity instance have any currently uninitialized lazy properties?
`boolean` | `isInstrumented()` Is it an instrumented POJO?
`boolean` | `isLifecycleImplementor()` Does the `class` managed by this tuplizer implement the `Lifecycle` interface.
`void` | `setPropertyValues(Object entity, Object[] values)` Inject the given values into the given entity.
`protected void` | `setPropertyValuesWithOptimizer(Object object, Object[] values)`

Methods inherited from class org.hibernate.tuple.entity.AbstractEntityTuplizer
`createProxy, getComponentValue, getEntityMetamodel, getEntityName, getFactory, getGetter, getIdentifier, getIdentifier, getIdentifierGetter, getIdentifierMapperType, getInstantiator, getPropertyValue, getPropertyValue, getProxyFactory, getSubclassEntityNames, getVersion, getVersionGetter, hasProxy, instantiate, instantiate, instantiate, isInstance, resetIdentifier, resetIdentifier, setIdentifier, setIdentifier, setPropertyValue, setPropertyValue, shouldGetAllProperties, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### PojoEntityTuplizer

    public PojoEntityTuplizer(EntityMetamodel entityMetamodel,
                              PersistentClass mappedEntity)

### PojoEntityTuplizer

    public PojoEntityTuplizer(EntityMetamodel entityMetamodel,
                              EntityBinding mappedEntity)

Method Detail

### buildProxyFactory

    protected ProxyFactory buildProxyFactory(PersistentClass persistentClass,
                                             Getter idGetter,
                                             Setter idSetter)

  Build an appropriate ProxyFactory for the given mapped entity.

  Specified by:
    `buildProxyFactory` in class `AbstractEntityTuplizer`
  Parameters:
    `persistentClass` - 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.

### buildProxyFactoryInternal

    protected ProxyFactory buildProxyFactoryInternal(PersistentClass persistentClass,
                                                     Getter idGetter,
                                                     Setter idSetter)

### buildInstantiator

    protected Instantiator buildInstantiator(PersistentClass persistentClass)

  Build an appropriate Instantiator for the given mapped entity.

  Specified by:
    `buildInstantiator` in class `AbstractEntityTuplizer`
  Parameters:
    `persistentClass` - The mapping information regarding the mapped entity.
  Returns:
    An appropriate Instantiator instance.

### buildProxyFactory

    protected ProxyFactory buildProxyFactory(EntityBinding entityBinding,
                                             Getter idGetter,
                                             Setter idSetter)

  Build an appropriate ProxyFactory for the given mapped entity.

  Specified by:
    `buildProxyFactory` in class `AbstractEntityTuplizer`
  Parameters:
    `entityBinding` - 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.

### buildProxyFactoryInternal

    protected ProxyFactory buildProxyFactoryInternal(EntityBinding entityBinding,
                                                     Getter idGetter,
                                                     Setter idSetter)

### buildInstantiator

    protected Instantiator buildInstantiator(EntityBinding entityBinding)

  Build an appropriate Instantiator for the given mapped entity.

  Specified by:
    `buildInstantiator` in class `AbstractEntityTuplizer`
  Parameters:
    `entityBinding` - The mapping information regarding the mapped entity.
  Returns:
    An appropriate Instantiator instance.

### setPropertyValues

    public void setPropertyValues(Object entity,
                                  Object[] values)
                           throws HibernateException

  Inject the given values into the given entity.

  Specified by:
    `setPropertyValues` in interface `Tuplizer`
  Overrides:
    `setPropertyValues` in class `AbstractEntityTuplizer`
  Parameters:
    `entity` - The entity.
    `values` - The values to be injected.
  Throws:
    `HibernateException`

### getPropertyValues

    public Object[] getPropertyValues(Object entity)
                               throws HibernateException

  Extract the current values contained on the given entity.

  Specified by:
    `getPropertyValues` in interface `Tuplizer`
  Overrides:
    `getPropertyValues` in class `AbstractEntityTuplizer`
  Parameters:
    `entity` - The entity from which to extract values.
  Returns:
    The current property values.
  Throws:
    `HibernateException`

### getPropertyValuesToInsert

    public Object[] getPropertyValuesToInsert(Object entity,
                                              Map mergeMap,
                                              SessionImplementor session)
                                       throws HibernateException

  Extract the values of the insertable properties of the entity (including backrefs)

  Specified by:
    `getPropertyValuesToInsert` in interface `EntityTuplizer`
  Overrides:
    `getPropertyValuesToInsert` in class `AbstractEntityTuplizer`
  Parameters:
    `entity` - The entity from which to extract.
    `mergeMap` - a map of instances being merged to merged instances
    `session` - The session in which the resuest is being made.
  Returns:
    The insertable property values.
  Throws:
    `HibernateException` - Indicates a problem access the properties

### setPropertyValuesWithOptimizer

    protected void setPropertyValuesWithOptimizer(Object object,
                                                  Object[] values)

### getPropertyValuesWithOptimizer

    protected Object[] getPropertyValuesWithOptimizer(Object object)

### getEntityMode

    public EntityMode getEntityMode()

  Return the entity-mode handled by this tuplizer instance.

  Returns:
    The entity-mode

### getMappedClass

    public Class getMappedClass()

  Return 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.

### isLifecycleImplementor

    public boolean isLifecycleImplementor()

  Does the `class` managed by this tuplizer implement the `Lifecycle` interface.

  Specified by:
    `isLifecycleImplementor` in interface `EntityTuplizer`
  Overrides:
    `isLifecycleImplementor` in class `AbstractEntityTuplizer`
  Returns:
    True if the Lifecycle interface is implemented; false otherwise.

### buildPropertyGetter

    protected Getter buildPropertyGetter(Property mappedProperty,
                                         PersistentClass mappedEntity)

  Build an appropriate Getter for the given property.

  Specified by:
    `buildPropertyGetter` in class `AbstractEntityTuplizer`
  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)

  Build an appropriate Setter for the given property.

  Specified by:
    `buildPropertySetter` in class `AbstractEntityTuplizer`
  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.

### buildPropertyGetter

    protected Getter buildPropertyGetter(AttributeBinding mappedProperty)

  Build an appropriate Getter for the given property.

  Specified by:
    `buildPropertyGetter` in class `AbstractEntityTuplizer`
  Parameters:
    `mappedProperty` - The property to be accessed via the built Getter.
  Returns:
    An appropriate Getter instance.

### buildPropertySetter

    protected Setter buildPropertySetter(AttributeBinding mappedProperty)

  Build an appropriate Setter for the given property.

  Specified by:
    `buildPropertySetter` in class `AbstractEntityTuplizer`
  Parameters:
    `mappedProperty` - The property to be accessed via the built Setter.
  Returns:
    An appropriate Setter instance.

### getConcreteProxyClass

    public Class getConcreteProxyClass()

  Returns the java class to which generated proxies will be typed.

  todo : look at fully encapsulating `PersistenceContext.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

### afterInitialize

    public void afterInitialize(Object entity,
                                boolean lazyPropertiesAreUnfetched,
                                SessionImplementor session)

  Called just after the entities properties have been initialized.

  Specified by:
    `afterInitialize` in interface `EntityTuplizer`
  Overrides:
    `afterInitialize` in class `AbstractEntityTuplizer`
  Parameters:
    `entity` - The entity being initialized.
    `lazyPropertiesAreUnfetched` - Are defined lazy properties currently unfecthed
    `session` - The session initializing this entity.

### hasUninitializedLazyProperties

    public boolean hasUninitializedLazyProperties(Object entity)

  Does the given entity instance have any currently uninitialized lazy properties?

  Specified by:
    `hasUninitializedLazyProperties` in interface `EntityTuplizer`
  Overrides:
    `hasUninitializedLazyProperties` in class `AbstractEntityTuplizer`
  Parameters:
    `entity` - The entity to be check for uninitialized lazy properties.
  Returns:
    True if uninitialized lazy properties were found; false otherwise.

### isInstrumented

    public boolean isInstrumented()

  Is it an instrumented POJO?

  Returns:
    `true` if the entity class is instrumented; `false` otherwise.

### determineConcreteSubclassEntityName

    public String determineConcreteSubclassEntityName(Object entityInstance,
                                                      SessionFactoryImplementor factory)

  Given 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 inheritence 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 meaining 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.

### getEntityNameResolvers

    public EntityNameResolver[] getEntityNameResolvers()

  Get any `EntityNameResolvers` associated with this `Tuplizer`.

  Returns:
    The associated resolvers. May be null or empty.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2012 Red Hat, Inc. All Rights Reserved.