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/27 14:38:32 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java DefaultSAXOutputHandler.java TextOutput.java TransletOutputBase.java
morten 01/08/27 05:38:32
Modified: java/src/org/apache/xalan/xsltc TransletOutputHandler.java
java/src/org/apache/xalan/xsltc/compiler Constants.java
TransletOutput.java
java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java DefaultSAXOutputHandler.java
TextOutput.java TransletOutputBase.java
Log:
Added an <xsltc:output> extension to allow for multiple output files. I know
that this is not a prioritised task, but I need this for a little project I
am working on.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org
Revision Changes Path
1.7 +2 -1 xml-xalan/java/src/org/apache/xalan/xsltc/TransletOutputHandler.java
Index: TransletOutputHandler.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/TransletOutputHandler.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TransletOutputHandler.java 2001/08/20 14:50:32 1.6
+++ TransletOutputHandler.java 2001/08/27 12:38:32 1.7
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: TransletOutputHandler.java,v 1.6 2001/08/20 14:50:32 morten Exp $
+ * @(#)$Id: TransletOutputHandler.java,v 1.7 2001/08/27 12:38:32 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -86,4 +86,5 @@
public void omitHeader(boolean value);
public boolean setEscaping(boolean escape) throws TransletException;
public void setCdataElements(Hashtable elements);
+ public void close();
}
1.13 +5 -1 xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Constants.java
Index: Constants.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Constants.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- Constants.java 2001/08/27 09:07:19 1.12
+++ Constants.java 2001/08/27 12:38:32 1.13
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: Constants.java,v 1.12 2001/08/27 09:07:19 morten Exp $
+ * @(#)$Id: Constants.java,v 1.13 2001/08/27 12:38:32 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -169,6 +169,10 @@
= "org/apache/xalan/xsltc/TransletOutputHandler";
public static final String OUTPUT_HANDLER_SIG
= "Lorg/apache/xalan/xsltc/TransletOutputHandler;";
+ public static final String TEXT_OUTPUT
+ = "org/apache/xalan/xsltc/runtime/TextOutput";
+ public static final String TEXT_OUTPUT_SIG
+ = "Lorg/apache/xalan/xsltc/runtime/TextOutput;";
public static final String FILTER_INTERFACE
= "org.apache.xalan.xsltc.dom.Filter";
public static final String FILTER_INTERFACE_SIG
1.5 +2 -2 xml-xalan/java/src/org/apache/xalan/xsltc/compiler/TransletOutput.java
Index: TransletOutput.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/TransletOutput.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- TransletOutput.java 2001/08/27 09:07:20 1.4
+++ TransletOutput.java 2001/08/27 12:38:32 1.5
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: TransletOutput.java,v 1.4 2001/08/27 09:07:20 morten Exp $
+ * @(#)$Id: TransletOutput.java,v 1.5 2001/08/27 12:38:32 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -145,7 +145,7 @@
// Close the output handler (close file)
il.append(classGen.loadTranslet());
- il.append(methodGen.storeHandler());
+ il.append(methodGen.loadHandler());
il.append(new INVOKEVIRTUAL(close));
// Restore old output handler from stack
1.21 +25 -3 xml-xalan/java/src/org/apache/xalan/xsltc/runtime/AbstractTranslet.java
Index: AbstractTranslet.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/AbstractTranslet.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- AbstractTranslet.java 2001/08/27 09:07:21 1.20
+++ AbstractTranslet.java 2001/08/27 12:38:32 1.21
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: AbstractTranslet.java,v 1.20 2001/08/27 09:07:21 morten Exp $
+ * @(#)$Id: AbstractTranslet.java,v 1.21 2001/08/27 12:38:32 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -64,6 +64,7 @@
package org.apache.xalan.xsltc.runtime;
+import java.io.File;
import java.util.Vector;
import java.util.Enumeration;
import java.text.DecimalFormat;
@@ -458,11 +459,32 @@
* See compiler/TransletOutput for actual implementation.
************************************************************************/
- public TransletOutputHandler openOutputHandler(String filename) {
- return(null);
+ public TransletOutputHandler openOutputHandler(String filename)
+ throws TransletException {
+ try {
+ // Use the default SAX handler to send the output to the file
+ DefaultSAXOutputHandler handler =
+ new DefaultSAXOutputHandler(filename, _encoding);
+
+ // Create a translet output handler and plug in the SAX handler
+ TextOutput text = new TextOutput(handler, handler, _encoding);
+ transferOutputSettings(text);
+ text.startDocument();
+ return(text);
+ }
+ catch (Exception e) {
+ throw new TransletException(e);
+ }
}
public void closeOutputHandler(TransletOutputHandler handler) {
+ try {
+ handler.endDocument();
+ handler.close();
+ }
+ catch (Exception e) {
+ // what can you do?
+ }
}
/************************************************************************
1.16 +13 -1 xml-xalan/java/src/org/apache/xalan/xsltc/runtime/DefaultSAXOutputHandler.java
Index: DefaultSAXOutputHandler.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/DefaultSAXOutputHandler.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- DefaultSAXOutputHandler.java 2001/08/16 12:33:47 1.15
+++ DefaultSAXOutputHandler.java 2001/08/27 12:38:32 1.16
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: DefaultSAXOutputHandler.java,v 1.15 2001/08/16 12:33:47 morten Exp $
+ * @(#)$Id: DefaultSAXOutputHandler.java,v 1.16 2001/08/27 12:38:32 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -185,6 +185,18 @@
_indentNextEndTag = false;
_indentLevel = 0;
_startTagOpen = false;
+ }
+
+ /**
+ * Close the output stream
+ */
+ public void close() {
+ try {
+ if (_writer != null) _writer.close();
+ }
+ catch (IOException e) {
+ // what can you do?
+ }
}
/**
1.23 +11 -1 xml-xalan/java/src/org/apache/xalan/xsltc/runtime/TextOutput.java
Index: TextOutput.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/TextOutput.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- TextOutput.java 2001/08/20 14:50:32 1.22
+++ TextOutput.java 2001/08/27 12:38:32 1.23
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: TextOutput.java,v 1.22 2001/08/20 14:50:32 morten Exp $
+ * @(#)$Id: TextOutput.java,v 1.23 2001/08/27 12:38:32 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -207,6 +207,16 @@
// Reset our internal namespace handling
initNamespaces();
+ }
+
+ /**
+ * Closes the output stream
+ */
+ public void close() {
+ if ((_saxHandler != null) &&
+ (_saxHandler instanceof DefaultSAXOutputHandler)) {
+ ((DefaultSAXOutputHandler)_saxHandler).close();
+ }
}
/**
1.7 +2 -1 xml-xalan/java/src/org/apache/xalan/xsltc/runtime/TransletOutputBase.java
Index: TransletOutputBase.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/TransletOutputBase.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TransletOutputBase.java 2001/08/20 14:50:32 1.6
+++ TransletOutputBase.java 2001/08/27 12:38:32 1.7
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: TransletOutputBase.java,v 1.6 2001/08/20 14:50:32 morten Exp $
+ * @(#)$Id: TransletOutputBase.java,v 1.7 2001/08/27 12:38:32 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -89,4 +89,5 @@
public void setIndent(boolean indent) {}
public void omitHeader(boolean value) {}
public void setCdataElements(Hashtable elements) {}
+ public void close() {}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org