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

Gavin King gavin.king at jboss.com
Wed Sep 27 19:14:42 EDT 2006


  User: gavin   
  Date: 06/09/27 19:14:42

  Modified:    src/main/org/jboss/seam/framework   EntityActions.java
                        ManagedEntity.java
  Log:
  propagate page parameters across navigation rule redirects
  improvements to framework
  
  Revision  Changes    Path
  1.2       +11 -2     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.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- EntityActions.java	27 Sep 2006 03:53:49 -0000	1.1
  +++ EntityActions.java	27 Sep 2006 23:14:42 -0000	1.2
  @@ -10,17 +10,26 @@
      private Object entity;
      
      @Transactional
  -   public void persist()
  +   public String update()
  +   {
  +      entityManager.joinTransaction();
  +      return "updated";
  +   }
  +   
  +   @Transactional
  +   public String persist()
      {
         entityManager.joinTransaction();
         entityManager.persist(entity);
  +      return "persisted";
      }
   
      @Transactional
  -   public void remove()
  +   public String remove()
      {
         entityManager.joinTransaction();
         entityManager.remove(entity);
  +      return "removed";
      }
      
      public boolean isManaged()
  
  
  
  1.2       +34 -11    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.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- ManagedEntity.java	27 Sep 2006 03:53:49 -0000	1.1
  +++ ManagedEntity.java	27 Sep 2006 23:14:42 -0000	1.2
  @@ -6,6 +6,7 @@
   import javax.faces.convert.Converter;
   import javax.persistence.EntityManager;
   
  +import org.jboss.seam.annotations.Create;
   import org.jboss.seam.annotations.Intercept;
   import org.jboss.seam.annotations.Unwrap;
   import org.jboss.seam.util.Reflections;
  @@ -24,9 +25,10 @@
   {
      private EntityManager entityManager;
      private Object 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;
      
  @@ -52,36 +54,57 @@
      
      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
      public Object getInstance() throws Exception
      {
  -      Class<?> clazz = Reflections.classForName(entityClass);
         if ( id==null || "".equals(id) )
         {
  -         if (newInstance==null)
  +         if (instance==null)
            {
  -            newInstance = clazz.newInstance();
  +            createInstance();
            }
  -         return newInstance;
         }
         else
         {
  +         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??
            entityManager.joinTransaction();
  -         return entityManager.find( clazz, getConvertedId() );
  +            loadInstance( getConvertedId() );
  +         }
  +      }
  +      return instance;
         }
  +
  +   protected void createInstance() throws Exception
  +   {
  +      instance = entityClass.newInstance();
  +   }
  +
  +   protected void loadInstance(Object id)
  +   {
  +      instance = entityManager.find(entityClass, id);
      }
      
      //////////// TODO: copy/paste from ManagedHibernateEntity ///////////////////
      
  -   private Object getConvertedId() throws Exception
  +   protected Object getConvertedId() throws Exception
      {
         FacesContext facesContext = FacesContext.getCurrentInstance();
         if (idConverter==null)
  
  
  



More information about the jboss-cvs-commits mailing list