You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2005/10/06 15:08:05 UTC
svn commit: r306625 - in
/cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup:
LogicsheetFilter.java xsp/XSPExpressionFilter.java xsp/XSPMarkupLanguage.java
Author: vgritsenko
Date: Thu Oct 6 06:07:58 2005
New Revision: 306625
URL: http://svn.apache.org/viewcvs?rev=306625&view=rev
Log:
regression: algorithm creating logicsheet application order was broken
Modified:
cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/LogicsheetFilter.java
cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPExpressionFilter.java
cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPMarkupLanguage.java
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/LogicsheetFilter.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/LogicsheetFilter.java?rev=306625&r1=306624&r2=306625&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/LogicsheetFilter.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/LogicsheetFilter.java Thu Oct 6 06:07:58 2005
@@ -1,12 +1,12 @@
/*
* Copyright 1999-2005 The Apache Software Foundation.
- *
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,17 +22,15 @@
import java.util.Map;
/**
- * This filter listen for source SAX events, and register the declared
+ * This filter listen for source SAX events, and registers all declared
* namespaces into a <code>Map</code> object.
*
* @see org.xml.sax.XMLFilter
* @see org.xml.sax.ContentHandler
- * @version SVN $Id$
+ * @version $Id$
*/
-public class LogicsheetFilter
- extends XMLFilterImpl
-{
- private Map originalNamepaceURIs;
+public class LogicsheetFilter extends XMLFilterImpl {
+ private Map namespaces;
/**
* The filter needs an initialized <code>Map</code> object where it
@@ -40,7 +38,7 @@
* @param originalNamepaceURIs a initialized <code>Map</code> instance.
*/
public void setNamespaceMap(Map originalNamepaceURIs) {
- this.originalNamepaceURIs = originalNamepaceURIs;
+ this.namespaces = originalNamepaceURIs;
}
public void setParent(XMLReader reader) {
@@ -49,9 +47,10 @@
}
public void startPrefixMapping(String prefix, String uri)
- throws SAXException
- {
- originalNamepaceURIs.put(uri, prefix);
+ throws SAXException {
+ if (namespaces != null) {
+ namespaces.put(uri, prefix);
+ }
super.startPrefixMapping(prefix, uri);
}
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPExpressionFilter.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPExpressionFilter.java?rev=306625&r1=306624&r2=306625&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPExpressionFilter.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPExpressionFilter.java Thu Oct 6 06:07:58 2005
@@ -20,27 +20,26 @@
import org.apache.cocoon.xml.AttributesImpl;
import org.apache.cocoon.xml.XMLConsumer;
import org.apache.cocoon.xml.XMLUtils;
+
import org.apache.commons.lang.StringUtils;
import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
-import org.xml.sax.Locator;
import org.xml.sax.SAXException;
import org.xml.sax.ext.LexicalHandler;
+
import java.util.LinkedList;
/**
* Filter attributes and text and expand {#expr} to xsp:attribute and xsp:expr
* elements.
*
- * @version SVN $Id$
+ * @version $Id$
*/
-public class XSPExpressionFilter
- extends LogicsheetFilter
- implements XSPExpressionParser.Handler {
+public class XSPExpressionFilter extends LogicsheetFilter
+ implements XSPExpressionParser.Handler {
public static class XMLPipeAdapter extends AbstractXMLPipe {
private XSPExpressionFilter expressionFilter;
-
private AbstractXMLPipe additionalFilter;
public XMLPipeAdapter(XSPExpressionFilter expressionFilter, AbstractXMLPipe additionalFilter) {
@@ -80,7 +79,7 @@
/** The parser for XSP value templates */
private XSPExpressionParser expressionParser = new XSPExpressionParser(this);
- private ContentHandler contentHandler;
+
public XSPExpressionFilter(XSPMarkupLanguage markup) {
this.markupURI = markup.getURI();
@@ -92,32 +91,24 @@
markup.hasTextInterpolation());
}
- public void setContentHandler(ContentHandler contentHandler) {
- this.contentHandler = contentHandler;
- }
-
/**
* Create a new <code>{@link XSPExpressionFilter}</code>.
- *
- * @param filter
- * @param filename
- * @param language
*/
public void startDocument() throws SAXException {
interpolationStack.clear();
interpolationStack.addLast(defaultInterpolationSettings);
- contentHandler.startDocument();
+ super.startDocument();
}
/**
* Start a new element. If attribute value templates are enabled and the element has attributes
* with templates, these are replaced by xsp:attribute tags.
- *
- * @see org.xml.sax.contentHandler.#startElement(java.lang.String, java.lang.String,
+ *
+ * @see org.xml.sax.ContentHandler#startElement(java.lang.String, java.lang.String,
* java.lang.String, org.xml.sax.Attributes)
*/
public void startElement(String namespaceURI, String localName, String qName, Attributes attribs)
- throws SAXException {
+ throws SAXException {
expressionParser.flush();
// Check template for interpolation flags
@@ -145,7 +136,7 @@
}
// Start the element with template-free attributes
- contentHandler.startElement(namespaceURI, localName, qName, staticAttribs);
+ super.startElement(namespaceURI, localName, qName, staticAttribs);
// Generate xsp:attribute elements for the attributes containing templates
for (int i = 0; i < dynamicAttribs.getLength(); ++i) {
@@ -160,17 +151,14 @@
addAttribute(elemAttribs, "name", dynamicAttribs.getLocalName(i));
- contentHandler.startElement(markupURI, "attribute", markupPrefix + ":attribute", elemAttribs);
-
+ super.startElement(markupURI, "attribute", markupPrefix + ":attribute", elemAttribs);
expressionParser.consume(dynamicAttribs.getValue(i));
expressionParser.flush();
-
- contentHandler.endElement(markupURI, "attribute", markupPrefix + ":attribute");
+ super.endElement(markupURI, "attribute", markupPrefix + ":attribute");
}
- }
- else {
+ } else {
// Attribute value templates disabled => pass through element
- contentHandler.startElement(namespaceURI, localName, qName, attribs);
+ super.startElement(namespaceURI, localName, qName, attribs);
}
}
@@ -218,7 +206,7 @@
*/
public void endElement(String uri, String loc, String raw) throws SAXException {
expressionParser.flush();
- contentHandler.endElement(uri, loc, raw);
+ super.endElement(uri, loc, raw);
// Pop stack of interpolation settings.
interpolationStack.removeLast();
@@ -227,8 +215,8 @@
/**
* Handle characters. If text templates are enabled, the text is parsed and expressions are
* replaced.
- *
- * @see org.xml.sax.contentHandler.#characters(char[], int, int)
+ *
+ * @see org.xml.sax.ContentHandler#characters(char[], int, int)
*/
public void characters(char[] ch, int start, int length) throws SAXException {
if (getInterpolationSettings().textInterpolation) {
@@ -237,35 +225,35 @@
}
else {
// Text templates disabled => pass through text
- contentHandler.characters(ch, start, length);
+ super.characters(ch, start, length);
}
}
/**
* Forward text to parent class.
- *
+ *
* @see org.apache.cocoon.components.language.markup.xsp.XSPExpressionParser.Handler#handleText(char[],
* int, int)
*/
public void handleText(char[] chars, int start, int length) throws SAXException {
- contentHandler.characters(chars, start, length);
+ super.characters(chars, start, length);
}
/**
* Wrap expressions in xsp:expr tags.
- *
+ *
* @see org.apache.cocoon.components.language.markup.xsp.XSPExpressionParser.Handler#handleExpression(char[],
* int, int)
*/
public void handleExpression(char[] chars, int start, int length) throws SAXException {
- contentHandler.startElement(markupURI, "expr", markupPrefix + ":expr", XMLUtils.EMPTY_ATTRIBUTES);
- contentHandler.characters(chars, start, length);
- contentHandler.endElement(markupURI, "expr", markupPrefix + ":expr");
+ super.startElement(markupURI, "expr", markupPrefix + ":expr", XMLUtils.EMPTY_ATTRIBUTES);
+ super.characters(chars, start, length);
+ super.endElement(markupURI, "expr", markupPrefix + ":expr");
}
/**
* Add an attribute if it is neither <code>null</code> nor empty (length 0).
- *
+ *
* @param attribs The attributes
* @param name The attribute name
* @param value The attribute value
@@ -276,34 +264,6 @@
}
}
- public void setDocumentLocator(Locator locator) {
- contentHandler.setDocumentLocator(locator);
- }
-
- public void endDocument() throws SAXException {
- contentHandler.endDocument();
- }
-
- public void endPrefixMapping(String prefix) throws SAXException {
- contentHandler.endPrefixMapping(prefix);
- }
-
- public void ignorableWhitespace(char[] chars, int start, int length) throws SAXException {
- contentHandler.ignorableWhitespace(chars, start, length);
- }
-
- public void processingInstruction(String target, String data) throws SAXException {
- contentHandler.processingInstruction(target, data);
- }
-
- public void skippedEntity(String name) throws SAXException {
- contentHandler.skippedEntity(name);
- }
-
- public void startPrefixMapping(String prefix, String uri) throws SAXException {
- contentHandler.startPrefixMapping(prefix, uri);
- }
-
/**
* Return current interpolation settings.
*/
@@ -314,8 +274,7 @@
/**
* Structure to hold settings for attribute and text interpolation.
*/
- private static class InterpolationSettings
- {
+ private static class InterpolationSettings {
boolean attrInterpolation;
boolean textInterpolation;
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPMarkupLanguage.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPMarkupLanguage.java?rev=306625&r1=306624&r2=306625&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPMarkupLanguage.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPMarkupLanguage.java Thu Oct 6 06:07:58 2005
@@ -60,8 +60,7 @@
*/
protected AbstractXMLPipe getPreprocessFilter(String filename,
AbstractXMLPipe filter,
- ProgrammingLanguage language)
- {
+ ProgrammingLanguage language) {
PreProcessFilter prefilter = new PreProcessFilter(filter, filename, language, this);
prefilter.enableLogging(getLogger());
return prefilter;
@@ -74,7 +73,7 @@
/**
* <code>{@link CocoonMarkupLanguage.PreProcessFilter PreProcessFilter}</code> that replaces
* XSP expressions.
- *
+ *
* @see org.xml.sax.ContentHandler
*/
protected class PreProcessFilter extends CocoonMarkupLanguage.PreProcessFilter {