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/07/18 20:08:46 UTC

svn commit: r423159 - in /cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main: java/org/apache/cocoon/portal/layout/ java/org/apache/cocoon/portal/persistence/castor/ resources/org/apache/cocoon/portal/persistence/castor/

Author: cziegeler
Date: Tue Jul 18 11:08:46 2006
New Revision: 423159

URL: http://svn.apache.org/viewvc?rev=423159&view=rev
Log:
Remove dependency to castor and pluto from layout objects

Added:
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ParametersFieldHandler.java   (with props)
Modified:
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/AbstractParameters.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/persistence/castor/layout.xml

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/AbstractParameters.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/AbstractParameters.java?rev=423159&r1=423158&r2=423159&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/AbstractParameters.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/AbstractParameters.java Tue Jul 18 11:08:46 2006
@@ -17,13 +17,8 @@
 
 import java.io.Serializable;
 import java.util.Map;
-import java.util.Iterator;
-import java.util.HashSet;
-import java.util.Set;
 
 import org.apache.commons.collections.map.LinkedMap;
-import org.apache.pluto.om.common.Parameter;
-import org.apache.cocoon.portal.pluto.om.common.ParameterImpl;
 
 /**
  *
@@ -36,24 +31,6 @@
 
     public final Map getParameters() {
         return parameters;
-    }
-
-    public final Set getCastorParameters() {
-        Set set = new HashSet(this.parameters.size());
-        Iterator iterator = this.parameters.entrySet().iterator();
-        Map.Entry entry;
-        while (iterator.hasNext()) {
-            entry = (Map.Entry) iterator.next();
-            ParameterImpl param = new ParameterImpl();
-            param.setName((String)entry.getKey());
-            param.setValue((String)entry.getValue());
-            set.add(param);
-        }
-        return set;
-    }
-
-    public void addParameter(Parameter parameter) {
-        parameters.put(parameter.getName(), parameter.getValue());
     }
 
     /**

Added: 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?rev=423159&view=auto
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ParametersFieldHandler.java (added)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ParametersFieldHandler.java Tue Jul 18 11:08:46 2006
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.portal.persistence.castor;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.apache.cocoon.portal.layout.AbstractParameters;
+import org.apache.cocoon.portal.layout.Item;
+import org.apache.cocoon.portal.layout.Layout;
+import org.exolab.castor.mapping.AbstractFieldHandler;
+import org.exolab.castor.mapping.MapItem;
+
+/**
+ * Field handler for parameters of a layout or an item.
+ *
+ * @version $Id$
+ */
+public class ParametersFieldHandler extends AbstractFieldHandler {
+
+    protected Map getParameters(Object object) {
+        if (object instanceof Layout) {
+            return ((Layout) object).getParameters();
+        }
+        return ((Item) object).getParameters();
+    }
+
+    /**
+     * @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;
+        while (iterator.hasNext()) {
+            entry = (Map.Entry) iterator.next();
+            key = entry.getKey();
+            map.put(key, new MapItem(key, entry.getValue()));
+        }
+        return map;
+    }
+
+    /**
+     * @see org.exolab.castor.mapping.FieldHandler#newInstance(java.lang.Object)
+     */
+    public Object newInstance(Object parent) {
+        return new MapItem();
+    }
+
+    /**
+     * @see org.exolab.castor.mapping.ExtendedFieldHandler#newInstance(java.lang.Object, java.lang.Object[])
+     */
+    public Object newInstance(Object arg0, Object[] arg1) {
+        if ( arg1 == null ) {
+            return this.newInstance(arg0);
+        }
+        throw new IllegalStateException("Constructor is not supported.");
+    }
+
+    /**
+     * @see org.exolab.castor.mapping.FieldHandler#resetValue(java.lang.Object)
+     */
+    public void resetValue(Object object) {
+        this.getParameters(object).clear();
+    }
+
+    /**
+     * @see org.exolab.castor.mapping.FieldHandler#setValue(java.lang.Object, java.lang.Object)
+     */
+    public void setValue(Object object, Object value) {
+        final MapItem item = (MapItem) value;
+        ((AbstractParameters)object).setParameter(item.getKey().toString(), item.getValue().toString());
+    }
+}

Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ParametersFieldHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ParametersFieldHandler.java
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/persistence/castor/layout.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/persistence/castor/layout.xml?rev=423159&r1=423158&r2=423159&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/persistence/castor/layout.xml (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/persistence/castor/layout.xml Tue Jul 18 11:08:46 2006
@@ -27,8 +27,10 @@
   </class>
 
   <class name="org.apache.cocoon.portal.layout.AbstractParameters">
-    <field name="parameters" type="org.apache.cocoon.portal.pluto.om.common.ParameterImpl" collection="set"
-      get-method="getCastorParameters" set-method="addParameter">
+    <field name="parameters"
+           type="org.exolab.castor.mapping.MapItem"
+           collection="map"
+           handler="org.apache.cocoon.portal.persistence.castor.ParametersFieldHandler">
       <bind-xml name="parameter" node="element"/>
     </field>
   </class>
@@ -44,11 +46,6 @@
     <field name="static" type="java.lang.Boolean" set-method="setIsStatic" get-method="isStatic">
       <bind-xml name="static" node="attribute"/>
     </field>
-
-    <field name="parameters" type="org.apache.cocoon.portal.pluto.om.common.ParameterImpl" collection="set"
-      get-method="getCastorParameters" set-method="addParameter">
-      <bind-xml name="parameter" node="element"/>
-    </field>
   </class>
 
   <class name="org.apache.cocoon.portal.layout.impl.LinkLayout"
@@ -141,22 +138,12 @@
     </field>
   </class>
 
-  <class name="org.apache.cocoon.portal.pluto.om.common.ParameterImpl">
-    <field name="name" type="java.lang.String">
-      <bind-xml name="name" node="attribute"/>
-    </field>
-
-    <field name="value">
-      <bind-xml name="value" node="attribute"/>
-    </field>
-  </class>
-
   <class name="org.exolab.castor.mapping.MapItem">
     <field name="key" type="java.lang.String">
       <bind-xml name="name"/>
     </field>
 
-    <field name="value">
+    <field name="value" type="java.lang.String">
       <bind-xml name="value"/>
     </field>
   </class>