[jboss-cvs] jboss-seam/src/main/org/jboss/seam/persistence ...

Gavin King gavin.king at jboss.com
Tue Oct 17 09:00:42 EDT 2006


  User: gavin   
  Date: 06/10/17 09:00:42

  Modified:    src/main/org/jboss/seam/persistence  
                        HibernatePersistenceProvider.java
                        PersistenceProvider.java
  Log:
  declarative filters JBSEAM-410
  
  Revision  Changes    Path
  1.2       +26 -3     jboss-seam/src/main/org/jboss/seam/persistence/HibernatePersistenceProvider.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: HibernatePersistenceProvider.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/persistence/HibernatePersistenceProvider.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- HibernatePersistenceProvider.java	12 Oct 2006 08:32:38 -0000	1.1
  +++ HibernatePersistenceProvider.java	17 Oct 2006 13:00:42 -0000	1.2
  @@ -1,5 +1,7 @@
   package org.jboss.seam.persistence;
   
  +import java.util.Map;
  +
   import javax.persistence.EntityManager;
   
   import org.hibernate.FlushMode;
  @@ -9,6 +11,8 @@
   import org.jboss.seam.annotations.Intercept;
   import org.jboss.seam.annotations.Name;
   import org.jboss.seam.annotations.Scope;
  +import org.jboss.seam.core.Filter;
  +import org.jboss.seam.core.Expressions.ValueBinding;
   
   @Name("org.jboss.seam.persistence.persistenceProvider")
   @Scope(ScopeType.STATELESS)
  @@ -16,19 +20,38 @@
   public class HibernatePersistenceProvider extends PersistenceProvider
   {
   
  +   @Override
      public void setFlushModeManual(EntityManager entityManager)
      {
  -      ( (Session) entityManager.getDelegate() ).setFlushMode(FlushMode.NEVER);
  +      getSession(entityManager).setFlushMode(FlushMode.NEVER);
      }
   
  +   @Override
      public boolean isDirty(EntityManager entityManager)
      {
  -      return ( (Session) entityManager.getDelegate() ).isDirty();
  +      return getSession(entityManager).isDirty();
      }
   
  +   @Override
      public Object getId(Object bean, EntityManager entityManager) 
      {
  -      return ( (Session) entityManager.getDelegate() ).getIdentifier(bean);
  +      return getSession(entityManager).getIdentifier(bean);
  +   }
  +
  +   @Override
  +   public void enableFilter(Filter f, EntityManager entityManager)
  +   {
  +      org.hibernate.Filter filter = getSession(entityManager).enableFilter( f.getName() );
  +      for ( Map.Entry<String, ValueBinding> me: f.getParameters().entrySet() )
  +      {
  +         filter.setParameter( me.getKey(), me.getValue().getValue() );
  +      }
  +      filter.validate();
  +   }
  +   
  +   private Session getSession(EntityManager entityManager)
  +   {
  +      return (Session) entityManager.getDelegate();
      }
   
   }
  
  
  
  1.2       +8 -2      jboss-seam/src/main/org/jboss/seam/persistence/PersistenceProvider.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: PersistenceProvider.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/persistence/PersistenceProvider.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- PersistenceProvider.java	12 Oct 2006 08:32:38 -0000	1.1
  +++ PersistenceProvider.java	17 Oct 2006 13:00:42 -0000	1.2
  @@ -8,6 +8,7 @@
   import org.jboss.seam.annotations.Intercept;
   import org.jboss.seam.annotations.Name;
   import org.jboss.seam.annotations.Scope;
  +import org.jboss.seam.core.Filter;
   
   @Name("org.jboss.seam.persistence.persistenceProvider")
   @Scope(ScopeType.STATELESS)
  @@ -17,7 +18,7 @@
   
      public void setFlushModeManual(EntityManager entityManager)
      {
  -      throw new IllegalArgumentException("For use of FlushMode.MANUAL, please use Hibernate as the persistence provider or provide a custom PersistenceProvider");
  +      throw new UnsupportedOperationException("For use of FlushMode.MANUAL, please use Hibernate as the persistence provider or use a custom PersistenceProvider");
      }
   
      public boolean isDirty(EntityManager entityManager)
  @@ -27,7 +28,12 @@
   
      public Object getId(Object bean, EntityManager entityManager) 
      {
  -      throw new IllegalArgumentException("For Seam-managed persistence contexts, please use Hibernate as the persistence provider or provide a custom PersistenceProvider");
  +      throw new UnsupportedOperationException("For Seam-managed persistence contexts, please use Hibernate as the persistence provider or use a custom PersistenceProvider");
  +   }
  +   
  +   public void enableFilter(Filter f, EntityManager entityManager)
  +   {
  +      throw new UnsupportedOperationException("For filters, please use Hibernate as the persistence provider");
      }
      
      public static PersistenceProvider instance()
  
  
  



More information about the jboss-cvs-commits mailing list