Author: ivaynberg
Date: Tue Oct  6 19:23:10 2009
New Revision: 822447

URL: http://svn.apache.org/viewvc?rev=822447&view=rev
Log:
fix mount mapper

Modified:
    
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/mount/MountMapper.java

Modified: 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/mount/MountMapper.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/mount/MountMapper.java?rev=822447&r1=822446&r2=822447&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/mount/MountMapper.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/mount/MountMapper.java
 Tue Oct  6 19:23:10 2009
@@ -9,8 +9,8 @@
 import org.apache.wicket.util.string.StringValue;
 
 /**
- * {...@link RequestMapper} that can mount requests onto urls.
- * TODO docs and unit test 
+ * {...@link RequestMapper} that can mount requests onto urls. TODO docs and 
unit test
+ * 
  * @author igor.vaynberg
  */
 public abstract class MountMapper extends AbstractMapper
@@ -64,24 +64,30 @@
 
     public Url mapHandler(RequestHandler handler)
     {
-        final MountParameters mountParameters = mapMountParameters(handler);
-        Url url = mapUnmountedUrl(handler);
-        for (int i = mountSegments.length; i > 0; i--)
+        if (supportsHandler(handler))
         {
-            String segment = mountSegments[i];
-            String placeholder = getPlaceholder(segment);
-            String replacement = 
mountParameters.getValue(placeholder).toString();
-            // TODO factor out
-            if (replacement == null)
+            final MountParameters mountParameters = 
mapMountParameters(handler);
+            Url url = mapUnmountedUrl(handler);
+            for (int i = mountSegments.length; i > 0; i--)
             {
-                replacement = placeholder;
+                String segment = mountSegments[i];
+                String placeholder = getPlaceholder(segment);
+                String replacement = 
mountParameters.getValue(placeholder).toString();
+                // TODO factor out
+                if (replacement == null)
+                {
+                    replacement = placeholder;
+                }
+                url.getSegments().add(0, replacement);
             }
-            url.getSegments().add(0, replacement);
-        }
 
-        return url;
+            return url;
+        }
+        return null;
     }
 
+    protected abstract boolean supportsHandler(RequestHandler handler);
+
     protected abstract MountParameters mapMountParameters(RequestHandler 
handler);
 
     protected Url mapUnmountedUrl(RequestHandler handler)


Reply via email to