[jboss-cvs] jboss-seam/ui/src/main/java/org/jboss/seam/ui/converter ...
Peter Muir
peter at bleepbleep.org.uk
Tue Nov 6 07:00:02 EST 2007
User: pmuir
Date: 07/11/06 07:00:02
Modified: ui/src/main/java/org/jboss/seam/ui/converter
EntityConverter.java
Removed: ui/src/main/java/org/jboss/seam/ui/converter
EntityConverterStore.java
Log:
JBSEAM-1242
Revision Changes Path
1.6 +46 -14 jboss-seam/ui/src/main/java/org/jboss/seam/ui/converter/EntityConverter.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: EntityConverter.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/ui/src/main/java/org/jboss/seam/ui/converter/EntityConverter.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- EntityConverter.java 2 Aug 2007 10:54:01 -0000 1.5
+++ EntityConverter.java 6 Nov 2007 12:00:01 -0000 1.6
@@ -8,7 +8,6 @@
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.ConverterException;
-import javax.persistence.EntityManager;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.Install;
@@ -18,11 +17,15 @@
import org.jboss.seam.annotations.intercept.BypassInterceptors;
import org.jboss.seam.annotations.faces.Converter;
import org.jboss.seam.core.Expressions.ValueExpression;
+import org.jboss.seam.ui.converter.entityConverter.EntityLoader;
+import org.jboss.seam.ui.converter.entityConverter.HibernateEntityLoader;
+import org.jboss.seam.ui.converter.entityConverter.AbstractEntityLoader;
/**
* Allows conversion of an entity to/from a key which can be written to a page.
*
- * Any annotated Entity will work, or any entity if a PersistenceProvider for your ORM exists
+ * Support is provided for JPA (by default) and Hibernate (with the session
+ * specified in components.xml)
*/
@Name("org.jboss.seam.ui.EntityConverter")
@Scope(CONVERSATION)
@@ -33,21 +36,28 @@
javax.faces.convert.Converter, Serializable
{
- private ValueExpression<EntityManager> entityManager;
- private EntityConverterStore entityIdentifierStore;
+ private ValueExpression entityManager;
+ private ValueExpression session;
+ private AbstractEntityLoader store;
@Create
public void create()
{
- entityIdentifierStore = EntityConverterStore.instance();
-
+ if (getEntityManager() == null && getSession() != null)
+ {
+ store = HibernateEntityLoader.instance();
+ }
+ else
+ {
+ store = EntityLoader.instance();
+ }
}
private void init()
{
- if (getEntityManager() != null)
+ if (getPersistenceContext() != null)
{
- entityIdentifierStore.setEntityManager(getEntityManager());
+ store.setPersistenceContext(getPersistenceContext().getValue());
}
}
@@ -64,7 +74,7 @@
{
return (String) value;
}
- return entityIdentifierStore.put(value).toString();
+ return store.put(value).toString();
}
@@ -76,17 +86,39 @@
{
return null;
}
- return entityIdentifierStore.get(new Integer(value));
+ return store.get(new Integer(value));
}
- public void setEntityManager(ValueExpression<EntityManager> entityManager)
+ public ValueExpression getEntityManager()
+ {
+ return entityManager;
+ }
+
+ public void setEntityManager(ValueExpression entityManager)
{
this.entityManager = entityManager;
}
- private EntityManager getEntityManager()
+ public ValueExpression getSession()
{
- return entityManager == null ?
- null : entityManager.getValue();
+ return session;
}
+
+ public void setSession(ValueExpression session)
+ {
+ this.session = session;
+ }
+
+ private ValueExpression getPersistenceContext()
+ {
+ if (getEntityManager() != null)
+ {
+ return getEntityManager();
+ }
+ else
+ {
+ return getSession();
+ }
+ }
+
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list