[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