org.jboss.seam.persistence
Class DefaultPersistenceProvider

java.lang.Object
  extended by org.jboss.seam.persistence.DefaultPersistenceProvider
All Implemented Interfaces:
Serializable, org.jboss.seam.persistence.SeamPersistenceProvider
Direct Known Subclasses:
HibernatePersistenceProvider

public class DefaultPersistenceProvider
extends Object
implements org.jboss.seam.persistence.SeamPersistenceProvider, Serializable

Abstraction layer for persistence providers (JPA implementations). This class provides a working base implementation that can be optimized for performance and non-standardized features by extending and overriding the methods.

The methods on this class are a great todo list for the next rev of the JPA spec ;-)

Author:
Gavin King, Pete Muir, Stuart Douglas
See Also:
Serialized Form

Nested Class Summary
static class DefaultPersistenceProvider.Feature
           
 
Field Summary
protected  Set<DefaultPersistenceProvider.Feature> featureSet
           
 
Constructor Summary
DefaultPersistenceProvider()
           
 
Method Summary
 void checkVersion(Object bean, javax.persistence.EntityManager entityManager, Object oldVersion, Object version)
           
 Set<Class<?>> getAdditionalEntityManagerInterfaces()
           
 Class<?> getBeanClass(Object bean)
           
 Object getId(Object bean, javax.persistence.EntityManager entityManager)
           
 String getName(Object bean, javax.persistence.EntityManager entityManager)
           
 Method getPostLoadMethod(Object bean, javax.persistence.EntityManager entityManager)
           
 Method getPrePersistMethod(Object bean, javax.persistence.EntityManager entityManager)
           
 Method getPreRemoveMethod(Object bean, javax.persistence.EntityManager entityManager)
           
 Method getPreUpdateMethod(Object bean, javax.persistence.EntityManager entityManager)
           
 org.jboss.seam.persistence.FlushModeType getRenderFlushMode()
           
 Object getVersion(Object bean, javax.persistence.EntityManager entityManager)
           
 boolean isCorrectProvider(javax.persistence.EntityManager em)
           
 boolean isDirty(javax.persistence.EntityManager entityManager)
           
 Object proxyDelegate(Object delegate)
           
 javax.persistence.EntityManager proxyEntityManager(javax.persistence.EntityManager entityManager)
           
 boolean registerSynchronization(Synchronization sync, javax.persistence.EntityManager entityManager)
           
 void setFlushMode(javax.persistence.EntityManager entityManager, org.jboss.seam.persistence.FlushModeType type)
           
 void setFlushModeManual(javax.persistence.EntityManager entityManager)
           
 boolean supportsFeature(DefaultPersistenceProvider.Feature feature)
          Indicate whether this JPA provider supports the feature defined by the provided Feature enum value.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

featureSet

protected Set<DefaultPersistenceProvider.Feature> featureSet
Constructor Detail

DefaultPersistenceProvider

public DefaultPersistenceProvider()
Method Detail

supportsFeature

public boolean supportsFeature(DefaultPersistenceProvider.Feature feature)
Indicate whether this JPA provider supports the feature defined by the provided Feature enum value.


isCorrectProvider

public boolean isCorrectProvider(javax.persistence.EntityManager em)
Specified by:
isCorrectProvider in interface org.jboss.seam.persistence.SeamPersistenceProvider

setFlushMode

public void setFlushMode(javax.persistence.EntityManager entityManager,
                         org.jboss.seam.persistence.FlushModeType type)
Specified by:
setFlushMode in interface org.jboss.seam.persistence.SeamPersistenceProvider

setFlushModeManual

public void setFlushModeManual(javax.persistence.EntityManager entityManager)
Specified by:
setFlushModeManual in interface org.jboss.seam.persistence.SeamPersistenceProvider

getRenderFlushMode

public org.jboss.seam.persistence.FlushModeType getRenderFlushMode()
Specified by:
getRenderFlushMode in interface org.jboss.seam.persistence.SeamPersistenceProvider

isDirty

public boolean isDirty(javax.persistence.EntityManager entityManager)
Specified by:
isDirty in interface org.jboss.seam.persistence.SeamPersistenceProvider

getId

public Object getId(Object bean,
                    javax.persistence.EntityManager entityManager)
Specified by:
getId in interface org.jboss.seam.persistence.SeamPersistenceProvider

getName

public String getName(Object bean,
                      javax.persistence.EntityManager entityManager)
               throws IllegalArgumentException
Specified by:
getName in interface org.jboss.seam.persistence.SeamPersistenceProvider
Throws:
IllegalArgumentException

getVersion

public Object getVersion(Object bean,
                         javax.persistence.EntityManager entityManager)
Specified by:
getVersion in interface org.jboss.seam.persistence.SeamPersistenceProvider

checkVersion

public void checkVersion(Object bean,
                         javax.persistence.EntityManager entityManager,
                         Object oldVersion,
                         Object version)
Specified by:
checkVersion in interface org.jboss.seam.persistence.SeamPersistenceProvider

registerSynchronization

public boolean registerSynchronization(Synchronization sync,
                                       javax.persistence.EntityManager entityManager)
Specified by:
registerSynchronization in interface org.jboss.seam.persistence.SeamPersistenceProvider

proxyDelegate

public Object proxyDelegate(Object delegate)
Specified by:
proxyDelegate in interface org.jboss.seam.persistence.SeamPersistenceProvider

proxyEntityManager

public javax.persistence.EntityManager proxyEntityManager(javax.persistence.EntityManager entityManager)
Specified by:
proxyEntityManager in interface org.jboss.seam.persistence.SeamPersistenceProvider

getAdditionalEntityManagerInterfaces

public Set<Class<?>> getAdditionalEntityManagerInterfaces()
Specified by:
getAdditionalEntityManagerInterfaces in interface org.jboss.seam.persistence.SeamPersistenceProvider

getBeanClass

public Class<?> getBeanClass(Object bean)
Specified by:
getBeanClass in interface org.jboss.seam.persistence.SeamPersistenceProvider

getPostLoadMethod

public Method getPostLoadMethod(Object bean,
                                javax.persistence.EntityManager entityManager)

getPrePersistMethod

public Method getPrePersistMethod(Object bean,
                                  javax.persistence.EntityManager entityManager)

getPreUpdateMethod

public Method getPreUpdateMethod(Object bean,
                                 javax.persistence.EntityManager entityManager)

getPreRemoveMethod

public Method getPreRemoveMethod(Object bean,
                                 javax.persistence.EntityManager entityManager)


Copyright © 2011 Seam Framework. All Rights Reserved.