[gatein-commits] gatein SVN: r4942 - in portal/branches/navcontroller/component/web/controller/src: test/java/org/exoplatform/web/controller/router and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Nov 4 10:54:56 EDT 2010


Author: julien_viet
Date: 2010-11-04 10:54:55 -0400 (Thu, 04 Nov 2010)
New Revision: 4942

Added:
   portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternParam.java
Removed:
   portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternParamDef.java
Modified:
   portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternRoute.java
   portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/Route.java
   portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestBuildRoute.java
Log:
minor improvement


Copied: portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternParam.java (from rev 4941, portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternParamDef.java)
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternParam.java	                        (rev 0)
+++ portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternParam.java	2010-11-04 14:54:55 UTC (rev 4942)
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.exoplatform.web.controller.router;
+
+import org.exoplatform.web.controller.QualifiedName;
+
+import java.util.regex.Pattern;
+
+/**
+ * @author <a href="mailto:julien.viet at exoplatform.com">Julien Viet</a>
+ * @version $Revision$
+ */
+class PatternParam
+{
+
+   /** . */
+   final QualifiedName name;
+
+   /** . */
+   final EncodingMode encodingMode;
+
+   /** . */
+   final Pattern pattern;
+
+   PatternParam(QualifiedName name, EncodingMode encodingMode, Pattern pattern)
+   {
+      this.name = name;
+      this.encodingMode = encodingMode;
+      this.pattern = pattern;
+   }
+}

Deleted: portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternParamDef.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternParamDef.java	2010-11-04 11:22:09 UTC (rev 4941)
+++ portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternParamDef.java	2010-11-04 14:54:55 UTC (rev 4942)
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2010 eXo Platform SAS.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.exoplatform.web.controller.router;
-
-import java.util.regex.Pattern;
-
-/**
- * @author <a href="mailto:julien.viet at exoplatform.com">Julien Viet</a>
- * @version $Revision$
- */
-class PatternParamDef
-{
-
-   /** . */
-   final EncodingMode encodingMode;
-
-   /** . */
-   final Pattern pattern;
-
-   PatternParamDef(EncodingMode encodingMode, Pattern pattern)
-   {
-      this.encodingMode = encodingMode;
-      this.pattern = pattern;
-   }
-}

Modified: portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternRoute.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternRoute.java	2010-11-04 11:22:09 UTC (rev 4941)
+++ portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/PatternRoute.java	2010-11-04 14:54:55 UTC (rev 4942)
@@ -19,8 +19,6 @@
 
 package org.exoplatform.web.controller.router;
 
-import org.exoplatform.web.controller.QualifiedName;
-
 import java.util.List;
 import java.util.regex.Pattern;
 
@@ -35,29 +33,24 @@
    final Pattern pattern;
 
    /** . */
-   final List<QualifiedName> parameterNames;
+   final List<PatternParam> params;
 
    /** . */
-   final List<PatternParamDef> parameterPatterns;
-
-   /** . */
    final List<String> chunks;
 
    PatternRoute(
       Pattern pattern,
-      List<QualifiedName> parameterNames,
-      List<PatternParamDef> parameterPatterns,
+      List<PatternParam> params,
       List<String> chunks)
    {
-      if (chunks.size() != parameterNames.size() + 1)
+      if (chunks.size() != params.size() + 1)
       {
-         throw new AssertionError("Was expecting chunk size " + chunks.size() + " to be equals to " + parameterNames.size() + 1);
+         throw new AssertionError("Was expecting chunk size " + chunks.size() + " to be equals to " + params.size() + 1);
       }
 
       //
       this.pattern = pattern;
-      this.parameterNames = parameterNames;
-      this.parameterPatterns = parameterPatterns;
+      this.params = params;
       this.chunks = chunks;
    }
 }

Modified: portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/Route.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/Route.java	2010-11-04 11:22:09 UTC (rev 4941)
+++ portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/router/Route.java	2010-11-04 14:54:55 UTC (rev 4942)
@@ -119,11 +119,11 @@
          PatternRoute pr = (PatternRoute)this;
          renderContext.appendPath('/', false);
          int i = 0;
-         while (i < pr.parameterNames.size())
+         while (i < pr.params.size())
          {
             renderContext.appendPath(pr.chunks.get(i), true);
-            String value = blah.get(pr.parameterNames.get(i));
-            PatternParamDef def = pr.parameterPatterns.get(i);
+            PatternParam def = pr.params.get(i);
+            String value = blah.get(def.name);
 
             //
             int from = 0;
@@ -203,15 +203,14 @@
       if (this instanceof PatternRoute)
       {
          PatternRoute prt = (PatternRoute)this;
-         for (int i = 0;i < prt.parameterNames.size();i++)
+         for (int i = 0;i < prt.params.size();i++)
          {
-            QualifiedName qd = prt.parameterNames.get(i);
-            PatternParamDef ppd = prt.parameterPatterns.get(i);
-            String s = blah.get(qd);
+            PatternParam param = prt.params.get(i);
+            String s = blah.get(param.name);
             boolean matched = false;
             if (s != null)
             {
-               switch (ppd.encodingMode)
+               switch (param.encodingMode)
                {
                   case DEFAULT_FORM:
 
@@ -220,10 +219,10 @@
                      // FIX ME
                      s = s.replace('/', '~');
 
-                     matched = ppd.pattern.matcher(s).matches();
+                     matched = param.pattern.matcher(s).matches();
                      break;
                   case PRESERVE_PATH:
-                     matched = ppd.pattern.matcher(s).matches();
+                     matched = param.pattern.matcher(s).matches();
                      break;
                   default:
                      throw new AssertionError();
@@ -231,7 +230,7 @@
             }
             if (matched)
             {
-               abc.remove(qd);
+               abc.remove(param.name);
             }
             else
             {
@@ -391,15 +390,15 @@
                   {
                      // Append parameters
                      int group = 1;
-                     for (int i = 0;i < route.parameterNames.size();i++)
+                     for (int i = 0;i < route.params.size();i++)
                      {
-                        QualifiedName parameterName = route.parameterNames.get(i);
+                        PatternParam param = route.params.get(i);
                         String value = matcher.group(group++);
-                        if (route.parameterPatterns.get(i).encodingMode == EncodingMode.DEFAULT_FORM)
+                        if (param.encodingMode == EncodingMode.DEFAULT_FORM)
                         {
                            value = value.replace(slashEscape, '/');
                         }
-                        response.put(parameterName, value);
+                        response.put(param.name, value);
                      }
 
                      //
@@ -600,7 +599,7 @@
             PatternBuilder builder = new PatternBuilder();
             builder.expr("^");
             List<String> chunks = new ArrayList<String>();
-            List<PatternParamDef> parameterPatterns = new ArrayList<PatternParamDef>();
+            List<PatternParam> parameterPatterns = new ArrayList<PatternParam>();
             int previous = 0;
             for (int i = 0;i < start.size();i++)
             {
@@ -625,8 +624,7 @@
                builder.expr("(");
                builder.expr(regex);
                builder.expr(")");
-               parameterNames.add(parameterQName);
-               parameterPatterns.add(new PatternParamDef(encodingMode, Pattern.compile("^" + regex + "$")));
+               parameterPatterns.add(new PatternParam(parameterQName, encodingMode, Pattern.compile("^" + regex + "$")));
                previous = end.get(i) + 1;
             }
             builder.litteral(path, previous, pos);
@@ -634,7 +632,7 @@
             // Julien : should the pattern end with a $ ?????? I don't see that for now
             // we need to figure out clearly
             Pattern pattern = builder.build();
-            PatternRoute route = new PatternRoute(pattern, parameterNames, parameterPatterns, chunks);
+            PatternRoute route = new PatternRoute(pattern, parameterPatterns, chunks);
 
             // Wire
             add(route);

Modified: portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestBuildRoute.java
===================================================================
--- portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestBuildRoute.java	2010-11-04 11:22:09 UTC (rev 4941)
+++ portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestBuildRoute.java	2010-11-04 14:54:55 UTC (rev 4942)
@@ -74,10 +74,10 @@
          assertEquals(1, router.root.getPatternSize());
          PatternRoute patternRoute = router.root.getPattern(0);
          assertEquals("^([^/]+)", patternRoute.pattern.toString());
-         assertEquals(Collections.singletonList(new QualifiedName("a")), patternRoute.parameterNames);
-         assertEquals(1, patternRoute.parameterPatterns.size());
-         assertEquals("^[^/]+$", patternRoute.parameterPatterns.get(0).pattern.toString());
-         assertEquals(EncodingMode.DEFAULT_FORM, patternRoute.parameterPatterns.get(0).encodingMode);
+         assertEquals(1, patternRoute.params.size());
+         assertEquals(new QualifiedName("a"), patternRoute.params.get(0).name);
+         assertEquals("^[^/]+$", patternRoute.params.get(0).pattern.toString());
+         assertEquals(EncodingMode.DEFAULT_FORM, patternRoute.params.get(0).encodingMode);
          assertEquals(2, patternRoute.chunks.size());
          assertEquals("", patternRoute.chunks.get(0));
          assertEquals("", patternRoute.chunks.get(1));
@@ -98,10 +98,10 @@
          assertEquals(1, router.root.getPatternSize());
          PatternRoute patternRoute = router.root.getPattern(0);
          assertEquals("^([^/]+)", patternRoute.pattern.toString());
-         assertEquals(Collections.singletonList(new QualifiedName("q", "a")), patternRoute.parameterNames);
-         assertEquals(1, patternRoute.parameterPatterns.size());
-         assertEquals("^[^/]+$", patternRoute.parameterPatterns.get(0).pattern.toString());
-         assertEquals(EncodingMode.DEFAULT_FORM, patternRoute.parameterPatterns.get(0).encodingMode);
+         assertEquals(1, patternRoute.params.size());
+         assertEquals(new QualifiedName("q", "a"), patternRoute.params.get(0).name);
+         assertEquals("^[^/]+$", patternRoute.params.get(0).pattern.toString());
+         assertEquals(EncodingMode.DEFAULT_FORM, patternRoute.params.get(0).encodingMode);
          assertEquals(2, patternRoute.chunks.size());
          assertEquals("", patternRoute.chunks.get(0));
          assertEquals("", patternRoute.chunks.get(1));
@@ -122,10 +122,10 @@
          assertEquals(1, router.root.getPatternSize());
          PatternRoute patternRoute = router.root.getPattern(0);
          assertEquals("^(.*)", patternRoute.pattern.toString());
-         assertEquals(Collections.singletonList(new QualifiedName("a")), patternRoute.parameterNames);
-         assertEquals(1, patternRoute.parameterPatterns.size());
-         assertEquals("^.*$", patternRoute.parameterPatterns.get(0).pattern.toString());
-         assertEquals(EncodingMode.DEFAULT_FORM, patternRoute.parameterPatterns.get(0).encodingMode);
+         assertEquals(1, patternRoute.params.size());
+         assertEquals(new QualifiedName("a"), patternRoute.params.get(0).name);
+         assertEquals("^.*$", patternRoute.params.get(0).pattern.toString());
+         assertEquals(EncodingMode.DEFAULT_FORM, patternRoute.params.get(0).encodingMode);
          assertEquals(2, patternRoute.chunks.size());
          assertEquals("", patternRoute.chunks.get(0));
          assertEquals("", patternRoute.chunks.get(1));
@@ -169,7 +169,15 @@
       if (route instanceof PatternRoute)
       {
          assertEquals(((PatternRoute)expectedRoute).pattern.toString(), ((PatternRoute)route).pattern.toString());
-         assertEquals(((PatternRoute)expectedRoute).parameterNames, ((PatternRoute)route).parameterNames);
+         assertEquals(((PatternRoute)expectedRoute).params.size(), ((PatternRoute)route).params.size());
+         for (int i = 0;i < ((PatternRoute)expectedRoute).params.size();i++)
+         {
+            PatternParam expectedParam = ((PatternRoute)expectedRoute).params.get(i);
+            PatternParam param = ((PatternRoute)route).params.get(i);
+            assertEquals(expectedParam.name, param.name);
+            assertEquals(expectedParam.pattern.toString(), param.pattern.toString());
+            assertEquals(expectedParam.encodingMode, param.encodingMode);
+         }
       }
       else if (route instanceof SegmentRoute)
       {



More information about the gatein-commits mailing list