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é 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