cziegeler 2003/06/13 07:15:04
Modified: src/blocks/portal/java/org/apache/cocoon/portal/coplet CopletData.java CopletInstanceData.java src/blocks/portal/java/org/apache/cocoon/portal/util AttributesFieldHandler.java Log: Adding attributes to coplet instance datas Revision Changes Path 1.7 +5 -1 cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/coplet/CopletData.java Index: CopletData.java =================================================================== RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/coplet/CopletData.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- CopletData.java 22 May 2003 15:19:45 -0000 1.6 +++ CopletData.java 13 Jun 2003 14:15:04 -0000 1.7 @@ -148,6 +148,10 @@ this.copletBaseData = copletBaseData; } + public void removeAttribute(String key) { + this.attributes.remove(key); + } + public Object getAttribute(String key) { return this.attributes.get(key); } 1.6 +22 -1 cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/coplet/CopletInstanceData.java Index: CopletInstanceData.java =================================================================== RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/coplet/CopletInstanceData.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- CopletInstanceData.java 21 May 2003 13:23:59 -0000 1.5 +++ CopletInstanceData.java 13 Jun 2003 14:15:04 -0000 1.6 @@ -50,6 +50,9 @@ */ package org.apache.cocoon.portal.coplet; +import java.util.HashMap; +import java.util.Map; + import org.apache.cocoon.portal.factory.impl.AbstractProducible; @@ -71,6 +74,8 @@ protected int status = STATUS_MAXIMIZED; + protected Map attributes = new HashMap(); + /** * Constructor */ @@ -107,4 +112,20 @@ public void setStatus(int status) { this.status = status; } + + public Object getAttribute(String key) { + return this.attributes.get(key); + } + + public void setAttribute(String key, Object value) { + this.attributes.put(key, value); + } + + public void removeAttribute(String key) { + this.attributes.remove(key); + } + + public Map getAttributes() { + return this.attributes; + } } 1.2 +18 -8 cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/util/AttributesFieldHandler.java Index: AttributesFieldHandler.java =================================================================== RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/util/AttributesFieldHandler.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AttributesFieldHandler.java 26 May 2003 14:29:52 -0000 1.1 +++ AttributesFieldHandler.java 13 Jun 2003 14:15:04 -0000 1.2 @@ -55,12 +55,16 @@ import java.util.Map; import org.apache.cocoon.portal.coplet.CopletData; +import org.apache.cocoon.portal.coplet.CopletInstanceData; import org.exolab.castor.mapping.FieldHandler; import org.exolab.castor.mapping.MapItem; /** * Field handler for attributes of a CopletData object. * + * FIXME This is a little bit hacky and should be changed by using + * reflection + * * @author <a href="mailto:[EMAIL PROTECTED]">Björn Lütkemeier</a> * * @version CVS $Id$ @@ -68,14 +72,20 @@ public class AttributesFieldHandler implements FieldHandler { - public void checkValidity(Object object) - { + public void checkValidity(Object object) { } - public Object getValue(Object object) - { + protected Map getAttributes(Object object) { + if (object instanceof CopletData) { + return ((CopletData)object).getAttributes(); + } else { + return ((CopletInstanceData)object).getAttributes(); + } + } + + public Object getValue(Object object) { HashMap map = new HashMap(); - Iterator iterator = ((CopletData)object).getAttributes().entrySet().iterator(); + Iterator iterator = this.getAttributes( object ).entrySet().iterator(); Map.Entry entry; Object key; while (iterator.hasNext()) { @@ -93,12 +103,12 @@ public void resetValue(Object object) { - ((CopletData)object).getAttributes().clear(); + this.getAttributes( object ).clear(); } public void setValue(Object object, Object value) { MapItem item = (MapItem)value; - ((CopletData)object).setAttribute((String)item.getKey(), item.getValue()); + this.getAttributes( object ).put((String)item.getKey(), item.getValue()); } }