You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mo...@apache.org on 2001/08/02 17:08:19 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java TransformerFactoryImpl.java TransformerHandlerImpl.java
morten 01/08/02 08:08:19
Modified: java/src/org/apache/xalan/xsltc/dom DOMImpl.java
java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java
TransformerHandlerImpl.java
Added: java/src/org/apache/xalan/xsltc/trax
TemplatesHandlerImpl.java
Log:
Added missing TemplatesHandlerImpl file (implementation of the TrAX
TemplatesHandler interface).
Added initial implementation of getAssociatedStylesheet() in
the TransformerFactoryImpl class.
Changed behaviour of TransformerHandlerImpl class with regard to
the setResult() method. This method now has to be called before
startDocument() is called, which gives XSLTC the same behaviour
as Xalan.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org
Revision Changes Path
1.15 +1 -3 xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMImpl.java
Index: DOMImpl.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMImpl.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- DOMImpl.java 2001/07/30 13:35:41 1.14
+++ DOMImpl.java 2001/08/02 15:08:19 1.15
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: DOMImpl.java,v 1.14 2001/07/30 13:35:41 morten Exp $
+ * @(#)$Id: DOMImpl.java,v 1.15 2001/08/02 15:08:19 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -2832,7 +2832,6 @@
* SAX2: Receive notification of the end of a document.
*/
public void endDocument() {
-
_shortTexts = null;
final int namesSize = _nextNameCode - NTYPES;
@@ -2879,7 +2878,6 @@
public void startElement(String uri, String localName,
String qname, Attributes attributes)
throws SAXException {
-
// Get node index and setup parent/child references
final int node = nextNode();
linkChildren(node);
1.17 +5 -2 xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerFactoryImpl.java
Index: TransformerFactoryImpl.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerFactoryImpl.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- TransformerFactoryImpl.java 2001/08/02 13:25:11 1.16
+++ TransformerFactoryImpl.java 2001/08/02 15:08:19 1.17
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: TransformerFactoryImpl.java,v 1.16 2001/08/02 13:25:11 morten Exp $
+ * @(#)$Id: TransformerFactoryImpl.java,v 1.17 2001/08/02 15:08:19 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -261,7 +261,10 @@
public Source getAssociatedStylesheet(Source source, String media,
String title, String charset)
throws TransformerConfigurationException {
- throw new TransformerConfigurationException(NYI);
+ // The org.apache.xalan.xsltc.copiler.Parser will locate the first
+ // <?xml-stylesheeet ?> PI in the Source document and use that.
+ // For now we'll leave it at that.
+ return(source); // TODO - pass media/title/charset to Parser
}
/**
1.2 +7 -1 xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerHandlerImpl.java
Index: TransformerHandlerImpl.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerHandlerImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TransformerHandlerImpl.java 2001/08/02 13:25:11 1.1
+++ TransformerHandlerImpl.java 2001/08/02 15:08:19 1.2
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: TransformerHandlerImpl.java,v 1.1 2001/08/02 13:25:11 morten Exp $
+ * @(#)$Id: TransformerHandlerImpl.java,v 1.2 2001/08/02 15:08:19 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -87,6 +87,9 @@
private boolean _done = false; // Set in endDocument()
+ private final static String NULL_RESULT_ERROR =
+ "setResult() must be called prior to startDocument().";
+
/**
* Cosntructor - pass in reference to a TransformerImpl object
*/
@@ -172,6 +175,9 @@
* Receive notification of the beginning of a document.
*/
public void startDocument() throws SAXException {
+ if (_result == null) {
+ throw new SAXException(NULL_RESULT_ERROR);
+ }
_handler.startDocument();
}
1.1 xml-xalan/java/src/org/apache/xalan/xsltc/trax/TemplatesHandlerImpl.java
Index: TemplatesHandlerImpl.java
===================================================================
/*
* @(#)$Id: TemplatesHandlerImpl.java,v 1.1 2001/08/02 15:08:19 morten Exp $
*
* The Apache Software License, Version 1.1
*
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xalan" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 2001, Sun
* Microsystems., http://www.sun.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* @author Morten Jorgensen
*
*/
package org.apache.xalan.xsltc.trax;
import javax.xml.transform.*;
import javax.xml.transform.sax.*;
import org.apache.xalan.xsltc.Translet;
import org.apache.xalan.xsltc.runtime.AbstractTranslet;
import org.apache.xalan.xsltc.compiler.*;
import org.apache.xalan.xsltc.compiler.util.Util;
/**
* Implementation of a JAXP1.1 TemplatesHandler
*/
public class TemplatesHandlerImpl extends Parser implements TemplatesHandler {
private String _defaultTransletName = "GregorSamsa";
private String _systemId;
public TemplatesHandlerImpl() {
super(null);
}
/**
* Implements javax.xml.transform.sax.TemplatesHandler.getSystemId()
* Get the base ID (URI or system ID) from where relative URLs will be
* resolved.
* @return The systemID that was set with setSystemId(String id)
*/
public String getSystemId() {
return _systemId;
}
/**
* Implements javax.xml.transform.sax.TemplatesHandler.setSystemId()
* Get the base ID (URI or system ID) from where relative URLs will be
* resolved.
* @param id Base URI for this stylesheet
*/
public void setSystemId(String id) {
_systemId = id;
}
public void init() {
// Create and initialize a stylesheet compiler
final XSLTC xsltc = new XSLTC();
super.setXSLTC(xsltc);
xsltc.setParser(this);
xsltc.init();
xsltc.setOutputType(XSLTC.BYTEARRAY_OUTPUT);
}
/**
* Implements javax.xml.transform.sax.TemplatesHandler.getTemplates()
* When a TemplatesHandler object is used as a ContentHandler or
* DocumentHandler for the parsing of transformation instructions, it
* creates a Templates object, which the caller can get once the SAX
* events have been completed.
* @return The Templates object that was created during the SAX event
* process, or null if no Templates object has been created.
*/
public Templates getTemplates() {
try {
// Create a placeholder for the translet bytecodes
byte[][] bytecodes = null;
final XSLTC xsltc = getXSLTC();
// Set the translet class name if not already set
String transletName = _defaultTransletName;
if (_systemId != null) transletName = Util.baseName(_systemId);
xsltc.setClassName(transletName);
Stylesheet stylesheet = null;
SyntaxTreeNode root = getDocumentRoot();
// Compile the translet - this is where the work is done!
if ((!errorsFound()) && (root != null)) {
// Create a Stylesheet element from the root node
stylesheet = makeStylesheet(root);
stylesheet.setSystemId(_systemId);
stylesheet.setParentStylesheet(null);
setCurrentStylesheet(stylesheet);
// Create AST under the Stylesheet element (parse & type-check)
createAST(stylesheet);
}
// Generate the bytecodes and output the translet class(es)
if ((!errorsFound()) && (stylesheet != null)) {
stylesheet.setMultiDocument(xsltc.isMultiDocument());
stylesheet.translate();
}
xsltc.printWarnings();
// Check that the transformation went well before returning
if (bytecodes == null) {
xsltc.printErrors();
return null;
}
return(new TemplatesImpl(bytecodes, transletName));
}
catch (CompilerException e) {
return null;
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org