Update of /var/cvs/src/org/mmbase/framework/basic
In directory james.mmbase.org:/tmp/cvs-serv13689
Modified Files:
ChainedUrlConverter.java
Log Message:
added a chained url converter specific parameter 'urlconverter' by which you
can explicitely prefer a certain url converter
See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/framework/basic
Index: ChainedUrlConverter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/ChainedUrlConverter.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- ChainedUrlConverter.java 20 Oct 2008 16:45:11 -0000 1.10
+++ ChainedUrlConverter.java 22 Oct 2008 12:29:12 -0000 1.11
@@ -27,19 +27,25 @@
* outcome of a converter can be added to the outcome of its preceder.
*
* @author André van Toly
- * @version $Id: ChainedUrlConverter.java,v 1.10 2008/10/20 16:45:11 michiel
Exp $
+ * @version $Id: ChainedUrlConverter.java,v 1.11 2008/10/22 12:29:12 michiel
Exp $
* @since MMBase-1.9
*/
public class ChainedUrlConverter implements UrlConverter {
private static final Logger log =
Logging.getLoggerInstance(ChainedUrlConverter.class);
+
+ public static Parameter<Class> URLCONVERTER_PARAM = new
Parameter<Class>("urlconverter", Class.class);
+
public static String URLCONVERTER = "org.mmbase.urlconverter";
/**
* List containing the UrlConverters found in the framework configuration.
*/
private final List<UrlConverter> uclist = new ArrayList<UrlConverter>();
private final List<Parameter> parameterDefinition = new
ArrayList<Parameter>();
+ {
+ parameterDefinition.add(URLCONVERTER_PARAM);
+ }
/**
* Adds the UrlConverters to the list.
@@ -99,7 +105,9 @@
Parameters frameworkParameters, boolean escapeAmps)
throws FrameworkException {
HttpServletRequest request =
BasicUrlConverter.getUserRequest(frameworkParameters.get(Parameter.REQUEST));
+ Class preferred = frameworkParameters.get(URLCONVERTER_PARAM);
for (UrlConverter uc : uclist) {
+ if (preferred != null && ! preferred.isInstance(uc)) continue;
String b = uc.getUrl(path, params, frameworkParameters,
escapeAmps);
if (b != null) {
UrlConverter current = (UrlConverter)
request.getAttribute(URLCONVERTER);
@@ -119,7 +127,9 @@
Map<String, Object> params,
Parameters frameworkParameters, boolean
escapeAmps) throws FrameworkException {
+ Class preferred = frameworkParameters.get(URLCONVERTER_PARAM);
for (UrlConverter uc : uclist) {
+ if (preferred != null && ! preferred.isInstance(uc)) continue;
String b = uc.getProcessUrl(path, params, frameworkParameters,
escapeAmps);
if (b != null) {
return b;
@@ -135,7 +145,9 @@
public String getInternalUrl(String path,
Map<String, Object> params,
Parameters frameworkParameters) throws
FrameworkException {
+ Class preferred = frameworkParameters.get(URLCONVERTER_PARAM);
for (UrlConverter uc : uclist) {
+ if (preferred != null && ! preferred.isInstance(uc)) continue;
String b = uc.getInternalUrl(path, params, frameworkParameters);
if (b != null) {
log.debug("ChainedUrlConverter has: " + b);
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs