You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by gk...@apache.org on 2007/07/12 17:39:25 UTC

svn commit: r555667 - in /cocoon/trunk/core/cocoon-expression-language: cocoon-expression-language-api/ cocoon-expression-language-api/src/main/java/org/apache/cocoon/objectmodel/ cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmo...

Author: gkossakowski
Date: Thu Jul 12 08:39:24 2007
New Revision: 555667

URL: http://svn.apache.org/viewvc?view=rev&rev=555667
Log:
COCOON-2086: Prototype for Object Model API and implementation.

Added:
    cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/src/main/java/org/apache/cocoon/objectmodel/
    cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/src/main/java/org/apache/cocoon/objectmodel/ObjectModel.java   (with props)
    cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/
    cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/ObjectModelImpl.java   (with props)
Modified:
    cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/pom.xml

Modified: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/pom.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/pom.xml?view=diff&rev=555667&r1=555666&r2=555667
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/pom.xml (original)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/pom.xml Thu Jul 12 08:39:24 2007
@@ -56,5 +56,9 @@
       <groupId>org.apache.cocoon</groupId>
       <artifactId>cocoon-pipeline-impl</artifactId>
      </dependency>
+     <dependency>
+       <groupId>commons-collections</groupId>
+       <artifactId>commons-collections</artifactId>
+     </dependency>
   </dependencies>
 </project>

Added: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/src/main/java/org/apache/cocoon/objectmodel/ObjectModel.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/src/main/java/org/apache/cocoon/objectmodel/ObjectModel.java?view=auto&rev=555667
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/src/main/java/org/apache/cocoon/objectmodel/ObjectModel.java (added)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/src/main/java/org/apache/cocoon/objectmodel/ObjectModel.java Thu Jul 12 08:39:24 2007
@@ -0,0 +1,12 @@
+package org.apache.cocoon.objectmodel;
+
+import org.apache.commons.collections.MultiMap;
+
+/**
+ * ObjectModel is just a {@link MultiMap} with little more constrained contracts.
+ * 
+ * The only difference is that Collection for each key is compliant with LIFO list constracts. 
+ */
+public interface ObjectModel extends MultiMap {
+
+}

Propchange: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/src/main/java/org/apache/cocoon/objectmodel/ObjectModel.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/ObjectModelImpl.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/ObjectModelImpl.java?view=auto&rev=555667
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/ObjectModelImpl.java (added)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/ObjectModelImpl.java Thu Jul 12 08:39:24 2007
@@ -0,0 +1,38 @@
+package org.apache.cocoon.objectmodel;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.ListIterator;
+
+import org.apache.commons.collections.ArrayStack;
+import org.apache.commons.collections.Factory;
+import org.apache.commons.collections.iterators.ReverseListIterator;
+import org.apache.commons.collections.map.MultiValueMap;
+
+/**
+ * Prototype implementation of {@link ObjectModel} interface. It <b>must</b> be initialized manually for now.
+ *
+ */
+public class ObjectModelImpl extends MultiValueMap implements ObjectModel {
+
+    public ObjectModelImpl() {
+        super(new HashMap(), new Factory() {
+        
+            public Object create() {
+                return new StackReversedIteration();
+            }
+        
+        });
+    }
+    
+    private static class StackReversedIteration extends ArrayStack {
+        
+        public Iterator iterator() {
+            return new ReverseListIterator(this);
+        }
+        
+        public ListIterator listIterator() {
+            throw new UnsupportedOperationException();
+        }
+    }
+}

Propchange: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/ObjectModelImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native