You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by sb...@locus.apache.org on 2000/08/01 06:46:49 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/lib Redirect.java
sboag 00/07/31 21:46:49
Modified: java/src/org/apache/xalan/lib Redirect.java
Log:
Implement what was commented out. Should work OK now.
Revision Changes Path
1.3 +23 -21 xml-xalan/java/src/org/apache/xalan/lib/Redirect.java
Index: Redirect.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/lib/Redirect.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Redirect.java 2000/07/05 14:38:32 1.2
+++ Redirect.java 2000/08/01 04:46:48 1.3
@@ -167,7 +167,7 @@
boolean mkdirs = (mkdirsExpr != null)
? (mkdirsExpr.equals("true") || mkdirsExpr.equals("yes")) : true;
// ContentHandler fl =
- makeFormatterListener(context, fileName, true, mkdirs);
+ makeFormatterListener(context, (ElemTemplateElement)elem, fileName, true, mkdirs);
// fl.startDocument();
}
}
@@ -194,19 +194,19 @@
context.getTransformer());
boolean mkdirs = (mkdirsExpr != null)
? (mkdirsExpr.equals("true") || mkdirsExpr.equals("yes")) : true;
- formatter = makeFormatterListener(context, fileName, true, mkdirs);
+ formatter = makeFormatterListener(context, (ElemTemplateElement)elem, fileName, true, mkdirs);
}
else
{
inTable = true;
formatter = (ContentHandler)flObject;
}
-
- // context.getTransformer().writeChildren( formatter, context.getStylesheet(),
- // (ElemTemplateElement)elem,
- // context.getSourceTree(),
- // context.getContextNode(),
- // context.getMode());
+
+ TransformerImpl transf = context.getTransformer();
+
+ transf.executeChildTemplates((ElemTemplateElement)elem,
+ context.getContextNode(),
+ context.getMode(), formatter);
if(!inTable)
{
@@ -294,21 +294,24 @@
* Create a new ContentHandler, based on attributes of the current ContentHandler.
*/
private ContentHandler makeFormatterListener(XSLProcessorContext context,
- String fileName,
- boolean shouldPutInTable,
- boolean mkdirs)
+ ElemTemplateElement elem,
+ String fileName,
+ boolean shouldPutInTable,
+ boolean mkdirs)
throws java.net.MalformedURLException,
java.io.FileNotFoundException,
java.io.IOException,
org.xml.sax.SAXException
{
- /*
File file = new File(fileName);
+ TransformerImpl transformer = context.getTransformer();
+
if(!file.isAbsolute())
{
- if(null != context.processor.getOutputFileName())
+ String base = elem.getStylesheet().getSystemId();
+ if(null != base)
{
- File baseFile = new File(context.processor.getOutputFileName());
+ File baseFile = new File(base);
file = new File(baseFile.getParent(), fileName);
}
}
@@ -323,13 +326,14 @@
}
}
- StylesheetRoot sr = context.stylesheetTree.m_stylesheetRoot;
- OutputFormat formatter = sr.getOutput();
+ // This should be worked on so that the output format can be
+ // defined by a first child of the redirect element.
+ OutputFormat format = transformer.getOutputFormat();
FileOutputStream ostream = new FileOutputStream(file);
-
- ContentHandler flistener
- = sr.makeSAXSerializer(ostream, formatter);
+
+ ContentHandler flistener
+ = transformer.createResultContentHandler(new trax.Result(ostream), format);
flistener.startDocument();
if(shouldPutInTable)
@@ -338,7 +342,5 @@
m_formatterListeners.put(fileName, flistener);
}
return flistener;
- */
- return null;
}
}