[jboss-cvs] jboss-seam/src/main/org/jboss/seam/contexts ...
Gavin King
gavin.king at jboss.com
Sun Jun 17 01:46:58 EDT 2007
User: gavin
Date: 07/06/17 01:46:57
Modified: src/main/org/jboss/seam/contexts
ServerConversationContext.java
Added: src/main/org/jboss/seam/contexts EntityBeanSet.java
Log:
sets
Revision Changes Path
1.28 +4 -0 jboss-seam/src/main/org/jboss/seam/contexts/ServerConversationContext.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ServerConversationContext.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/contexts/ServerConversationContext.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- ServerConversationContext.java 17 Jun 2007 05:16:22 -0000 1.27
+++ ServerConversationContext.java 17 Jun 2007 05:46:57 -0000 1.28
@@ -167,6 +167,10 @@
{
value = new EntityBeanMap( (Map) value );
}
+ else if ( value instanceof Set )
+ {
+ value = new EntityBeanSet( (Set) value );
+ }
additions.put(name, value);
}
if ( Events.exists() ) Events.instance().raiseEvent("org.jboss.seam.postSetVariable." + name);
1.1 date: 2007/06/17 05:46:57; author: gavin; state: Exp;jboss-seam/src/main/org/jboss/seam/contexts/EntityBeanSet.java
Index: EntityBeanSet.java
===================================================================
package org.jboss.seam.contexts;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* Swizzles entities held in the conversation context at
* the end of each request.
*
* @see PassivatedEntity
*
* @author Gavin King
*
*/
public class EntityBeanSet implements Wrapper
{
private static final long serialVersionUID = -2884601453783925804L;
private Set instance;
private List<PassivatedEntity> passivatedEntityList;
public EntityBeanSet(Set instance)
{
this.instance = instance;
}
//TODO: use @Unwrap
public Object getInstance()
{
if (passivatedEntityList!=null)
{
for ( PassivatedEntity pe: passivatedEntityList )
{
instance.add( pe.toEntityReference() );
}
passivatedEntityList = null;
}
return instance;
}
public boolean clearDirty()
{
if ( !PassivatedEntity.isTransactionRolledBackOrMarkedRollback() )
{
passivatedEntityList = new ArrayList<PassivatedEntity>( instance.size() );
boolean found = false;
for ( Object value: instance )
{
if (value!=null)
{
PassivatedEntity passivatedEntity = PassivatedEntity.createPassivatedEntity(value);
if (passivatedEntity!=null)
{
if (!found) instance = new HashSet(instance);
found=true;
//this would be dangerous, except that we
//are doing it to a copy of the original
//list:
instance.remove(value);
passivatedEntityList.add(passivatedEntity);
}
}
}
if (!found) passivatedEntityList=null;
}
return true;
}
}
More information about the jboss-cvs-commits
mailing list