[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