vgritsenko 02/01/13 19:07:52
Modified: src/java/org/apache/cocoon/components/language/markup/sitemap/java
sitemap.xsl
Log:
Some more fixes (substitution, formatting)
Revision Changes Path
1.3 +45 -23
xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/sitemap/java/sitemap.xsl
Index: sitemap.xsl
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/sitemap/java/sitemap.xsl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- sitemap.xsl 14 Jan 2002 02:58:34 -0000 1.2
+++ sitemap.xsl 14 Jan 2002 03:07:52 -0000 1.3
@@ -214,7 +214,7 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Nicola Ken
Barozzi</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Peter
Royal</a>
- * @version CVS $Id: sitemap.xsl,v 1.2 2002/01/14 02:58:34 vgritsenko Exp $
+ * @version CVS $Id: sitemap.xsl,v 1.3 2002/01/14 03:07:52 vgritsenko Exp $
*/
public class <xsl:value-of select="@file-name"/> extends AbstractSitemap {
static final String LOCATION = "<xsl:value-of select="translate(@file-path,
'/', '.')"/>.<xsl:value-of select="@file-name"/>";
@@ -242,28 +242,28 @@
* Method that handles selectors.
*/
private boolean isSelected(String hint, String testValue, Parameters params,
Map objectModel) throws Exception {
- Selector selector = (Selector)this.selectors.select(hint);
- try {
- return selector.select(testValue, objectModel, params);
- } finally {
- this.selectors.release(selector);
- }
+ Selector selector = (Selector)this.selectors.select(hint);
+ try {
+ return selector.select(testValue, objectModel, params);
+ } finally {
+ this.selectors.release(selector);
+ }
}
/**
* Method that handles matchers.
*/
private Map matches(String hint, Object preparedPattern, String pattern,
Parameters params, Map objectModel) throws Exception {
- Component matcher = (Component)this.matchers.select(hint);
- try {
- if (preparedPattern == null) {
- return ((Matcher)matcher).match(pattern, objectModel, params);
- } else {
- return
((PreparableMatcher)matcher).preparedMatch(preparedPattern, objectModel, params);
- }
- } finally {
- this.matchers.release(matcher);
+ Component matcher = (Component)this.matchers.select(hint);
+ try {
+ if (preparedPattern == null) {
+ return ((Matcher)matcher).match(pattern, objectModel, params);
+ } else {
+ return ((PreparableMatcher)matcher).preparedMatch(preparedPattern,
objectModel, params);
}
+ } finally {
+ this.matchers.release(matcher);
+ }
}
@@ -277,8 +277,8 @@
this.sitemapManager.compose(this.manager);
this.sitemapManager.configure(conf);
- <!-- generate a HashMap relating labels to view names -->
<xsl:for-each select="/map:sitemap/map:views/map:view">
+ <!-- generate a HashMap relating labels to view names -->
<xsl:variable name="view-label-name">
<xsl:choose>
<xsl:when test="(@from-label)">
@@ -295,7 +295,8 @@
</xsl:choose>
</xsl:variable>
<xsl:if test="@from-label">
- view_label_map.put("<xsl:value-of select="$view-label-name"/>",
"<xsl:value-of select="@name"/>");
+ <xsl:text>view_label_map.put("</xsl:text><xsl:value-of
select="$view-label-name"/>
+ <xsl:text>", "</xsl:text><xsl:value-of select="@name"/>");
</xsl:if>
</xsl:for-each>
@@ -1374,9 +1375,25 @@
</xsl:with-param>
</xsl:call-template>
</xsl:if>
- <xsl:value-of select="$ca"/>.setRootElement("<xsl:value-of
select="@element"/>", "<xsl:value-of select="@ns"/>", "<xsl:value-of
select="@prefix"/>");
+
+ <xsl:variable name="ns">
+ <xsl:call-template name="get-parameter-substituted">
+ <xsl:with-param name="parname">ns</xsl:with-param>
+ <xsl:with-param name="default">""</xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="prefix">
+ <xsl:call-template name="get-parameter-substituted">
+ <xsl:with-param name="parname">prefix</xsl:with-param>
+ <xsl:with-param name="default">""</xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:value-of select="$ca"/>.setRootElement(<xsl:apply-templates
select="@element"/>,
+ <xsl:value-of select="$ns"/>, <xsl:value-of select="$prefix"/>);
<!-- check if a view was requested which matches one attached to a part element
-->
+ <xsl:if test="map:part[@label]">
{
boolean hasMatchingViewRequest = false;
<xsl:for-each select="map:part[@label]">
@@ -1391,16 +1408,17 @@
<!-- process all map:parts -->
if (hasMatchingViewRequest) {
<xsl:for-each select="map:part[@label]">
+ <!-- invoke view, and return here -->
<xsl:call-template name="view-label">
<xsl:with-param name="label"><xsl:value-of
select="@label"/></xsl:with-param>
</xsl:call-template>
</xsl:for-each>
- } else {
- <xsl:apply-templates select="map:part">
- <xsl:with-param name="ca"><xsl:value-of select="$ca"/></xsl:with-param>
- </xsl:apply-templates>
}
}
+ </xsl:if>
+ <xsl:apply-templates select="map:part">
+ <xsl:with-param name="ca"><xsl:value-of select="$ca"/></xsl:with-param>
+ </xsl:apply-templates>
<!-- process attached labels to the map:aggregate element -->
<xsl:if test="@label">
@@ -1693,6 +1711,8 @@
</xsl:if>
</xsl:template>
+
+
<!-- generate the code to match a label definition -->
<xsl:template name="view-label">
<xsl:param name="label"/>
@@ -1703,6 +1723,8 @@
}
}
</xsl:template>
+
+
<!-- replace invalid characters with underscores -->
<xsl:template name="generate-name">
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]