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

Gavin King gavin.king at jboss.com
Sat Jun 16 14:34:54 EDT 2007


  User: gavin   
  Date: 07/06/16 14:34:54

  Added:       src/main/org/jboss/seam/contexts   EntityBeanList.java
                        Wrapper.java
  Log:
  JBSEAM-586
  
  Revision  Changes    Path
  1.1      date: 2007/06/16 18:34:54;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/contexts/EntityBeanList.java
  
  Index: EntityBeanList.java
  ===================================================================
  package org.jboss.seam.contexts;
  
  import java.util.ArrayList;
  import java.util.List;
  
  /**
   * Swizzles entities held in the conversation context at
   * the end of each request.
   * 
   * @see PassivatedEntity
   * 
   * @author Gavin King
   *
   */
  public class EntityBeanList implements Wrapper
  {
     private static final long serialVersionUID = -2884601453783925804L;
     
     private List instance;
     private List<PassivatedEntity> passivatedEntityList;
     
     public EntityBeanList(List instance)
     {
        this.instance = instance;
     }
     
     //TODO: use @Unwrap
     public Object getInstance()
     {
        if (passivatedEntityList!=null)
        {
           for (int i=0; i<passivatedEntityList.size(); i++)
           {
              PassivatedEntity passivatedEntity = passivatedEntityList.get(i);
              if (passivatedEntity!=null)
              {
                 instance.set( i, passivatedEntity.toEntityReference() );
              }
           }
           passivatedEntityList = null;
        }
        return instance;
     }
     
     public boolean clearDirty()
     {
        if ( !PassivatedEntity.isTransactionRolledBackOrMarkedRollback() )
        {
           passivatedEntityList = new ArrayList<PassivatedEntity>( instance.size() );
           boolean found = false;
           for (int i=0; i<instance.size(); i++ )
           {
              PassivatedEntity passivatedEntity = PassivatedEntity.createPassivatedEntity( instance.get(i) );
              if (passivatedEntity!=null)
              {
                 if (!found) instance = new ArrayList(instance);
                 found=true;
                 //this would be dangerous, except that we 
                 //are doing it to a copy of the original 
                 //list:
                 instance.set(i, null); 
              }
              passivatedEntityList.add(passivatedEntity);
           }
           if (!found) passivatedEntityList=null;
        }
        return true;
     }
     
  }
  
  
  
  1.1      date: 2007/06/16 18:34:54;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/contexts/Wrapper.java
  
  Index: Wrapper.java
  ===================================================================
  package org.jboss.seam.contexts;
  
  import org.jboss.seam.core.Mutable;
  
  public interface Wrapper extends Mutable
  {
     public Object getInstance();
  }
  
  
  



More information about the jboss-cvs-commits mailing list