Update of /var/cvs/src/org/mmbase/framework/basic
In directory james.mmbase.org:/tmp/cvs-serv20570

Modified Files:
        BasicUrlConverter.java BlockUrlConverter.java 
        ChainedUrlConverter.java DirectoryUrlConverter.java 
        MMBaseUrlConverter.java Url.java UrlConverter.java 
Added Files:
        BasicUrl.java 
Log Message:
made 'Url' abstract so that you could e.g. make expensive, but lazy 
implementations


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/framework/basic


BasicUrl.java is new



Index: BasicUrlConverter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/BasicUrlConverter.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- BasicUrlConverter.java      25 Oct 2008 09:34:28 -0000      1.21
+++ BasicUrlConverter.java      27 Oct 2008 17:27:37 -0000      1.22
@@ -25,7 +25,7 @@
  *
  *
  * @author Michiel Meeuwissen
- * @version $Id: BasicUrlConverter.java,v 1.21 2008/10/25 09:34:28 michiel Exp 
$
+ * @version $Id: BasicUrlConverter.java,v 1.22 2008/10/27 17:27:37 michiel Exp 
$
  * @since MMBase-1.9
  */
 public final class BasicUrlConverter implements UrlConverter {
@@ -119,6 +119,10 @@
         return true;
     }
 
+    public int getDefaultQuality() {
+        return Integer.MIN_VALUE + 1000;
+    }
+
     /**
      * The BasicUrlConverter is unable to explicitely define a block and hence 
returns  <code>null</code>.
      */
@@ -203,22 +207,21 @@
         return BasicUrlConverter.getUrl(path, map, request, escapeAmps);
     }
 
-    public int QUALITY = Integer.MIN_VALUE + 1000;
 
     public Url getUrl(String path,
                             Map<String, Object> parameters,
                             Parameters frameworkParameters, boolean 
escapeAmps) {
-        return new Url(this, getUrl(path, parameters, frameworkParameters, 
escapeAmps, false), QUALITY);
+        return new BasicUrl(this, getUrl(path, parameters, 
frameworkParameters, escapeAmps, false));
     }
     public Url getProcessUrl(String path,
                             Map<String, Object> parameters,
                             Parameters frameworkParameters, boolean 
escapeAmps) {
-        return new Url(this, getUrl(path, parameters, frameworkParameters, 
escapeAmps, true), QUALITY);
+        return new BasicUrl(this, getUrl(path, parameters, 
frameworkParameters, escapeAmps, true));
     }
 
     public Url getInternalUrl(String page, Map<String, Object> params, 
Parameters frameworkParameters) {
         HttpServletRequest request = 
frameworkParameters.get(Parameter.REQUEST);
-        return new Url(this, BasicUrlConverter.getUrl(page, params, request, 
false),  QUALITY);
+        return new BasicUrl(this, BasicUrlConverter.getUrl(page, params, 
request, false));
     }
 
     public boolean equals(Object o) {


Index: BlockUrlConverter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/BlockUrlConverter.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- BlockUrlConverter.java      27 Oct 2008 17:16:34 -0000      1.12
+++ BlockUrlConverter.java      27 Oct 2008 17:27:37 -0000      1.13
@@ -25,7 +25,7 @@
  * URLConverters would probably like this, and can extend from this.
  *
  * @author Michiel Meeuwissen
- * @version $Id: BlockUrlConverter.java,v 1.12 2008/10/27 17:16:34 michiel Exp 
$
+ * @version $Id: BlockUrlConverter.java,v 1.13 2008/10/27 17:27:37 michiel Exp 
$
  * @since MMBase-1.9
  * @todo EXPERIMENTAL
  */
@@ -139,6 +139,10 @@
         return null;
     }
 
+    public int getDefaultQuality() {
+        return 0;
+    }
+
     /**
      * Whether the current request already is in the realm of this 
URL-converter; the url converter
      * must implement here how it recognizes itself.
@@ -194,7 +198,7 @@
 
             String u = BasicUrlConverter.getUrl(niceUrl.getUrl(), map, 
request, escapeAmps);
             log.debug("Returning actual url " + u);
-            return Url.createUrl(this, u, niceUrl.getQuality());
+            return new BasicUrl(this, u, niceUrl.getQuality());
         } else {
             return Url.NOT;
         }


Index: ChainedUrlConverter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/ChainedUrlConverter.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- ChainedUrlConverter.java    25 Oct 2008 09:34:29 -0000      1.13
+++ ChainedUrlConverter.java    27 Oct 2008 17:27:37 -0000      1.14
@@ -27,7 +27,7 @@
  * outcome of a converter can be added to the outcome of its preceder.
  *
  * @author Andr&eacute; van Toly
- * @version $Id: ChainedUrlConverter.java,v 1.13 2008/10/25 09:34:29 michiel 
Exp $
+ * @version $Id: ChainedUrlConverter.java,v 1.14 2008/10/27 17:27:37 michiel 
Exp $
  * @since MMBase-1.9
  */
 public class ChainedUrlConverter implements UrlConverter {
@@ -90,6 +90,10 @@
 //         return Link.NULL;
 //     }
 
+    public int getDefaultQuality() {
+        return 0;
+    }
+
     public boolean isFilteredMode(Parameters frameworkParameters) throws 
FrameworkException {
         for (UrlConverter uc : uclist) {
             if (uc.isFilteredMode(frameworkParameters)) return true;
@@ -103,10 +107,10 @@
         Class preferred       = frameworkParameters.get(URLCONVERTER_PARAM);
         Url b = u;
         if (preferred != null && ! preferred.isInstance(u.getUrlConverter())) {
-            b = new Url(b, b.getQuality() - 10000);
+            b = new BasicUrl(b, b.getQuality() - 10000);
         }
         if (current != null && u.getUrlConverter() != current) {
-            b = new Url(b, b.getQuality() - 10000);
+            b = new BasicUrl(b, b.getQuality() - 10000);
         }
         return b;
     }


Index: DirectoryUrlConverter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/DirectoryUrlConverter.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- DirectoryUrlConverter.java  25 Oct 2008 09:34:29 -0000      1.12
+++ DirectoryUrlConverter.java  27 Oct 2008 17:27:37 -0000      1.13
@@ -28,7 +28,7 @@
  * It is also assumed that the niceness of the URL's is basicly about one 
block.
  *
  * @author Michiel Meeuwissen
- * @version $Id: DirectoryUrlConverter.java,v 1.12 2008/10/25 09:34:29 michiel 
Exp $
+ * @version $Id: DirectoryUrlConverter.java,v 1.13 2008/10/27 17:27:37 michiel 
Exp $
  * @since MMBase-1.9
  * @todo EXPERIMENTAL
  */
@@ -47,13 +47,16 @@
         if (! directory.startsWith("/")) directory = "/" + directory;
     }
 
+    public int getDefaultQuality() {
+        return super.getDefaultQuality() + 1000;
+    }
 
     @Override protected final Url getNiceUrl(Block block,
                                                 Parameters parameters,
                                                 Parameters 
frameworkParameters,  boolean action) throws FrameworkException {
         StringBuilder b = new StringBuilder(directory);
         getNiceDirectoryUrl(b, block, parameters, frameworkParameters, action);
-        return new Url(this, b.toString());
+        return new BasicUrl(this, b.toString());
     }
 
     protected abstract void getNiceDirectoryUrl(StringBuilder b, Block block,


Index: MMBaseUrlConverter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/MMBaseUrlConverter.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- MMBaseUrlConverter.java     25 Oct 2008 09:34:29 -0000      1.18
+++ MMBaseUrlConverter.java     27 Oct 2008 17:27:37 -0000      1.19
@@ -20,7 +20,7 @@
  * was configured for this prefix).
  *
  * @author Michiel Meeuwissen
- * @version $Id: MMBaseUrlConverter.java,v 1.18 2008/10/25 09:34:29 michiel 
Exp $
+ * @version $Id: MMBaseUrlConverter.java,v 1.19 2008/10/27 17:27:37 michiel 
Exp $
  * @since MMBase-1.9
  */
 public class MMBaseUrlConverter extends DirectoryUrlConverter {
@@ -42,6 +42,10 @@
     }
 
 
+    public int getDefaultQuality() {
+        return super.getDefaultQuality() + 1000;
+    }
+
     public void setRenderJsp(String j) {
         renderJsp = j;
     }
@@ -145,7 +149,7 @@
         if (log.isDebugEnabled()) {
             log.debug("internal URL " + url);
         }
-        return new Url(this, url.toString());
+        return new BasicUrl(this, url.toString());
     }
 
 }


Index: Url.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/Url.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- Url.java    27 Oct 2008 17:16:34 -0000      1.4
+++ Url.java    27 Oct 2008 17:27:37 -0000      1.5
@@ -18,17 +18,16 @@
  * #getUrl}) with a 'quality' of this string.  
  *
  * @author Michiel Meeuwissen
- * @version $Id: Url.java,v 1.4 2008/10/27 17:16:34 michiel Exp $
+ * @version $Id: Url.java,v 1.5 2008/10/27 17:27:37 michiel Exp $
  * @since MMBase-1.9
- * @todo EXPERIMENTAL
  */
 
 public abstract class Url {
     private final UrlConverter urlConverter;
     private int quality = 0;
     public Url(UrlConverter uc) {
-        this.url = url;
         this.urlConverter = uc;
+        this.quality = uc.getDefaultQuality();
     }
     public Url(UrlConverter uc, int q) {
         this.quality = q;
@@ -48,15 +47,12 @@
 
 
     public String toString() {
+        String url = getUrl();
         return url == null ? "NULL" : url;
     }
     public static final Url NOT = new Url(null, Integer.MIN_VALUE) {
             public String getUrl() { return null; }
         };
 
-    public static Url createUrl(UrlConverter uc, final String url, int 
quality) {
-        return new Url(uc, quality) {
-            public String getUrl() { return url; }
-        };
-    }
+
 }


Index: UrlConverter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/UrlConverter.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- UrlConverter.java   25 Oct 2008 08:32:02 -0000      1.11
+++ UrlConverter.java   27 Oct 2008 17:27:37 -0000      1.12
@@ -22,7 +22,7 @@
  * chained one after another.
  *
  * @author Michiel Meeuwissen
- * @version $Id: UrlConverter.java,v 1.11 2008/10/25 08:32:02 michiel Exp $
+ * @version $Id: UrlConverter.java,v 1.12 2008/10/27 17:27:37 michiel Exp $
  * @since MMBase-1.9
  * @todo EXPERIMENTAL
  */
@@ -43,6 +43,8 @@
      */
     boolean isFilteredMode(Parameters frameworkParameters) throws 
FrameworkException;
 
+    int getDefaultQuality();
+
     /**
      * See [EMAIL PROTECTED] org.mmbase.framework.Framework#getUrl(String, 
Map, Parameters, boolean)}.
      * But it can also return <code>null</code> which mean, 'I don't know.'
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to