You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2006/09/28 21:37:36 UTC

svn commit: r450981 - in /cocoon/trunk/blocks/cocoon-portal: cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ cocoon-portal-sample/src/main/resources/COB-INF/coplets/basket/ cocoon-portal-sample/src/main/resources/COB-INF/p...

Author: cziegeler
Date: Thu Sep 28 12:37:35 2006
New Revision: 450981

URL: http://svn.apache.org/viewvc?view=rev&rev=450981
Log:
Fix bug in persistence handling of attributes
Fix basket sample

Modified:
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/AttributesFieldHandler.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ConfigurationFieldHandler.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ParametersFieldHandler.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/coplets/basket/sitemap.xmap
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/profiles/layout/portal.xml

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/AttributesFieldHandler.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/AttributesFieldHandler.java?view=diff&rev=450981&r1=450980&r2=450981
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/AttributesFieldHandler.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/AttributesFieldHandler.java Thu Sep 28 12:37:35 2006
@@ -22,6 +22,7 @@
 
 import org.apache.cocoon.portal.om.CopletDefinition;
 import org.apache.cocoon.portal.om.CopletInstance;
+import org.apache.cocoon.portal.om.LayoutInstance;
 import org.exolab.castor.mapping.AbstractFieldHandler;
 import org.exolab.castor.mapping.MapItem;
 
@@ -32,24 +33,24 @@
  */
 public class AttributesFieldHandler extends AbstractFieldHandler {
 
-    protected Map getAttributes(Object object) {
+    protected Iterator getAttributesIterator(Object object) {
         if (object instanceof CopletDefinition) {
-            return ((CopletDefinition) object).getAttributes();
-        }
-        return ((CopletInstance) object).getAttributes();
+            return ((CopletDefinition) object).getAttributes().entrySet().iterator();
+        } else if ( object instanceof LayoutInstance ) {
+            return ((LayoutInstance) object).getAttributes().entrySet().iterator();
+        } else {
+            return ((CopletInstance) object).getAttributes().entrySet().iterator();
+        }        
     }
-
     /**
      * @see org.exolab.castor.mapping.FieldHandler#getValue(java.lang.Object)
      */
     public Object getValue(Object object) {
-        HashMap map = new HashMap();
-        Iterator iterator = this.getAttributes(object).entrySet().iterator();
-        Map.Entry entry;
-        Object key;
+        final Map map = new HashMap();
+        final Iterator iterator = this.getAttributesIterator(object);
         while (iterator.hasNext()) {
-            entry = (Map.Entry) iterator.next();
-            key = entry.getKey();
+            final Map.Entry entry = (Map.Entry) iterator.next();
+            final Object key = entry.getKey();
             map.put(key, new MapItem(key, entry.getValue()));
         }
         return map;
@@ -76,14 +77,31 @@
      * @see org.exolab.castor.mapping.FieldHandler#resetValue(java.lang.Object)
      */
     public void resetValue(Object object) {
-        this.getAttributes(object).clear();
+        final Iterator iterator = this.getAttributesIterator(object);
+        while ( iterator.hasNext() ) {
+            final String key = (String)iterator.next();
+            if ( object instanceof CopletDefinition ) {
+                ((CopletDefinition)object).removeAttribute(key);
+            } else if ( object instanceof LayoutInstance ) {
+                ((LayoutInstance)object).removeAttribute(key);
+            } else {
+                ((CopletInstance)object).removeAttribute(key);
+            }
+        }
     }
 
     /**
      * @see org.exolab.castor.mapping.FieldHandler#setValue(java.lang.Object, java.lang.Object)
      */
     public void setValue(Object object, Object value) {
-        MapItem item = (MapItem) value;
-        this.getAttributes(object).put(item.getKey(), item.getValue());
+        final MapItem item = (MapItem) value;
+        final String key = item.getKey().toString();
+        if (object instanceof CopletDefinition) {
+            ((CopletDefinition)object).setAttribute(key, item.getValue());
+        } else if ( object instanceof LayoutInstance ) {
+            ((LayoutInstance)object).setAttribute(key, item.getValue());
+        } else {
+            ((CopletInstance)object).setAttribute(key, item.getValue());
+        }
     }
 }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ConfigurationFieldHandler.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ConfigurationFieldHandler.java?view=diff&rev=450981&r1=450980&r2=450981
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ConfigurationFieldHandler.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ConfigurationFieldHandler.java Thu Sep 28 12:37:35 2006
@@ -35,14 +35,12 @@
      * @see org.exolab.castor.mapping.FieldHandler#getValue(java.lang.Object)
      */
     public Object getValue(Object object) {
-        HashMap map = new HashMap();
-        Iterator iterator =
+        final HashMap map = new HashMap();
+        final Iterator iterator =
             ((CopletType) object).getCopletConfig().entrySet().iterator();
-        Map.Entry entry;
-        Object key;
         while (iterator.hasNext()) {
-            entry = (Map.Entry) iterator.next();
-            key = entry.getKey();
+            final Map.Entry entry = (Map.Entry) iterator.next();
+            final Object key = entry.getKey();
             map.put(key, new MapItem(key, entry.getValue()));
         }
         return map;

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ParametersFieldHandler.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ParametersFieldHandler.java?view=diff&rev=450981&r1=450980&r2=450981
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ParametersFieldHandler.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ParametersFieldHandler.java Thu Sep 28 12:37:35 2006
@@ -44,13 +44,11 @@
      * @see org.exolab.castor.mapping.FieldHandler#getValue(java.lang.Object)
      */
     public Object getValue(Object object) {
-        HashMap map = new HashMap();
-        Iterator iterator = this.getParameters(object).entrySet().iterator();
-        Map.Entry entry;
-        Object key;
+        final HashMap map = new HashMap();
+        final Iterator iterator = this.getParameters(object).entrySet().iterator();
         while (iterator.hasNext()) {
-            entry = (Map.Entry) iterator.next();
-            key = entry.getKey();
+            final Map.Entry entry = (Map.Entry) iterator.next();
+            final Object key = entry.getKey();
             map.put(key, new MapItem(key, entry.getValue()));
         }
         return map;

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/coplets/basket/sitemap.xmap
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/coplets/basket/sitemap.xmap?view=diff&rev=450981&r1=450980&r2=450981
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/coplets/basket/sitemap.xmap (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/coplets/basket/sitemap.xmap Thu Sep 28 12:37:35 2006
@@ -98,7 +98,7 @@
       <map:match pattern="basket-view">
         <map:generate type="basket">
             <map:parameter name="show-coplet" value="BasketContent"/>
-            <map:parameter name="show-layout" value="basket-content"/>
+            <map:parameter name="show-layout" value="basket_content"/>
             <map:parameter name="admin-mode" value="false"/>
           <map:parameter name="type" value="{coplet:attributes/type}"/>
           <map:parameter name="type-location" value="group"/>
@@ -115,7 +115,7 @@
       <map:match pattern="basket.admin">
         <map:generate type="basket">
           <map:parameter name="show-coplet" value="BasketContent"/>
-          <map:parameter name="show-layout" value="basket-content-admin"/>
+          <map:parameter name="show-layout" value="basket_content_admin"/>
           <map:parameter name="admin-mode" value="false"/>
         </map:generate>
         <map:transform type="xslt" src="basket.admin.xsl"/>
@@ -125,7 +125,7 @@
       <map:match pattern="basket-admin">
         <map:generate type="basket">
           <map:parameter name="show-coplet" value="BasketContent"/>
-          <map:parameter name="show-layout" value="basket-content-admin"/>
+          <map:parameter name="show-layout" value="basket_content_admin"/>
           <map:parameter name="admin-mode" value="true"/>
         </map:generate>
         <map:transform src="xsl/basket-pre.xsl"/>

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/profiles/layout/portal.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/profiles/layout/portal.xml?view=diff&rev=450981&r1=450980&r2=450981
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/profiles/layout/portal.xml (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/profiles/layout/portal.xml Thu Sep 28 12:37:35 2006
@@ -294,7 +294,7 @@
           <item>
             <composite-layout type="column">
               <item>
-                <coplet-layout type="coplet" id="basket-content">
+                <coplet-layout type="coplet" id="basket_content">
                   <coplet-instance>basketcontent</coplet-instance>
                 </coplet-layout>
               </item>
@@ -320,7 +320,7 @@
             </coplet-layout>
           </item>
           <item>
-            <coplet-layout type="coplet" id="basket-content-admin">
+            <coplet-layout type="coplet" id="basket_content_admin">
               <coplet-instance>basket_content</coplet-instance>
             </coplet-layout>
           </item>