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

Gavin King gavin.king at jboss.com
Wed Sep 27 21:47:33 EDT 2006


  User: gavin   
  Date: 06/09/27 21:47:33

  Modified:    src/main/org/jboss/seam/framework     EntityActions.java
                        ManagedEntity.java ManagedHibernateEntity.java
                        Query.java
  Log:
  more extensible
  
  Revision  Changes    Path
  1.5       +8 -8      jboss-seam/src/main/org/jboss/seam/framework/EntityActions.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: EntityActions.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/EntityActions.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- EntityActions.java	28 Sep 2006 01:32:23 -0000	1.4
  +++ EntityActions.java	28 Sep 2006 01:47:33 -0000	1.5
  @@ -17,8 +17,8 @@
      @Transactional
      public String update()
      {
  -      entityManager.joinTransaction();
  -      entityManager.flush();
  +      getEntityManager().joinTransaction();
  +      getEntityManager().flush();
         facesMessages.add("Successfully updated");
         return "updated";
      }
  @@ -26,9 +26,9 @@
      @Transactional
      public String persist()
      {
  -      entityManager.joinTransaction();
  -      entityManager.persist(entity);
  -      entityManager.flush();
  +      getEntityManager().joinTransaction();
  +      getEntityManager().persist(entity);
  +      getEntityManager().flush();
         facesMessages.add("Successfully created");
         return "persisted";
      }
  @@ -36,9 +36,9 @@
      @Transactional
      public String remove()
      {
  -      entityManager.joinTransaction();
  -      entityManager.remove(entity);
  -      entityManager.flush();
  +      getEntityManager().joinTransaction();
  +      getEntityManager().remove(entity);
  +      getEntityManager().flush();
         facesMessages.add("Successfully deleted");
         return "removed";
      }
  
  
  
  1.3       +9 -8      jboss-seam/src/main/org/jboss/seam/framework/ManagedEntity.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ManagedEntity.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/ManagedEntity.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- ManagedEntity.java	27 Sep 2006 23:14:42 -0000	1.2
  +++ ManagedEntity.java	28 Sep 2006 01:47:33 -0000	1.3
  @@ -8,6 +8,7 @@
   
   import org.jboss.seam.annotations.Create;
   import org.jboss.seam.annotations.Intercept;
  +import org.jboss.seam.annotations.Transactional;
   import org.jboss.seam.annotations.Unwrap;
   import org.jboss.seam.util.Reflections;
   
  @@ -68,14 +69,14 @@
         entityClass = Reflections.classForName(entityClassName);
      }
      
  -   @Unwrap
  +   @Unwrap @Transactional
      public Object getInstance() throws Exception
      {
         if ( id==null || "".equals(id) )
         {
            if (instance==null)
            {
  -            createInstance();
  +            instance = createInstance();
            }
         }
         else
  @@ -85,21 +86,21 @@
               //we cache the instance so that it does not "disappear"
               //after remove() is called on the instance
               //is this really a Good Idea??
  -            entityManager.joinTransaction();
  -            loadInstance( getConvertedId() );
  +            getEntityManager().joinTransaction();
  +            instance =loadInstance( getConvertedId() );
            }
         }
         return instance;
      }
   
  -   protected void createInstance() throws Exception
  +   protected Object createInstance() throws Exception
      {
  -      instance = entityClass.newInstance();
  +      return entityClass.newInstance();
      }
   
  -   protected void loadInstance(Object id)
  +   protected Object loadInstance(Object id)
      {
  -      instance = entityManager.find(entityClass, id);
  +      return getEntityManager().find(entityClass, id);
      }
      
      //////////// TODO: copy/paste from ManagedHibernateEntity ///////////////////
  
  
  
  1.2       +32 -9     jboss-seam/src/main/org/jboss/seam/framework/ManagedHibernateEntity.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ManagedHibernateEntity.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/ManagedHibernateEntity.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- ManagedHibernateEntity.java	27 Sep 2006 03:53:49 -0000	1.1
  +++ ManagedHibernateEntity.java	28 Sep 2006 01:47:33 -0000	1.2
  @@ -6,6 +6,7 @@
   import javax.faces.convert.Converter;
   
   import org.hibernate.Session;
  +import org.jboss.seam.annotations.Create;
   import org.jboss.seam.annotations.Transactional;
   import org.jboss.seam.annotations.Unwrap;
   import org.jboss.seam.util.Reflections;
  @@ -23,9 +24,10 @@
   {
      private Session session;
      private Serializable id;
  -   private String entityClass;
  +   private String entityClassName;
  +   private Class entityClass;
      private String idClass;
  -   private Object newInstance;
  +   private Object instance;
      private String idConverterId;
      private Converter idConverter;
      
  @@ -51,30 +53,51 @@
      
      public String getEntityClass()
      {
  -      return entityClass;
  +      return entityClassName;
      }
   
      public void setEntityClass(String entityClass)
      {
  -      this.entityClass = entityClass;
  +      this.entityClassName = entityClass;
  +   }
  +
  +   @Create
  +   public void initEntityClass() throws Exception
  +   {
  +      entityClass = Reflections.classForName(entityClassName);
      }
   
      @Unwrap @Transactional
      public Object getInstance() throws Exception
      {
  -      Class clazz = Reflections.classForName(entityClass);
         if ( id==null || "".equals(id) )
         {
  -         if (newInstance==null)
  +         if (instance==null)
            {
  -            newInstance = clazz.newInstance();
  +            instance = createInstance();
            }
  -         return newInstance;
         }
         else
         {
  -         return session.get( clazz, getConvertedId() );
  +         if (instance==null)
  +         {
  +            //we cache the instance so that it does not "disappear"
  +            //after remove() is called on the instance
  +            //is this really a Good Idea??
  +            instance = loadInstance( getConvertedId() );
  +         }
  +      }
  +      return instance;
         }
  +   
  +   protected Object createInstance() throws Exception
  +   {
  +      return entityClass.newInstance();
  +   }
  +
  +   protected Object loadInstance(Serializable id)
  +   {
  +      return getSession().get(entityClass, id);
      }
      
      ////////////TODO: copy/paste from ManagedEntity ///////////////////
  
  
  
  1.2       +2 -2      jboss-seam/src/main/org/jboss/seam/framework/Query.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Query.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/Query.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- Query.java	27 Sep 2006 03:53:49 -0000	1.1
  +++ Query.java	28 Sep 2006 01:47:33 -0000	1.2
  @@ -65,8 +65,8 @@
      {
         prepareEjbql();
         
  -      entityManager.joinTransaction();
  -      javax.persistence.Query query = entityManager.createQuery(ejbql);
  +      getEntityManager().joinTransaction();
  +      javax.persistence.Query query = getEntityManager().createQuery(ejbql);
         for (int i=0; i<queryParameters.size(); i++)
         {
            Object parameterValue = queryParameters.get(i).getValue( FacesContext.getCurrentInstance() );
  
  
  



More information about the jboss-cvs-commits mailing list