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