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>