in modules/compiler/src/java/flex2/compiler/asdoc/AsDocAPI.java [429:724]
public static void createHTML(String outputDir, String templatesDir, ASDocConfiguration config)
throws Exception
{
// the XSL processing only works with forward slashes
templatesDir = templatesDir.replace('\\', '/');
String outputDitaDir = outputDir + "tempdita/";
File indexTmp = new File(outputDir + "index.tmp");
// 0_processHTML
String inputFile = indexTmp.toString();
while (inputFile.indexOf('\\') != -1)
{
inputFile = inputFile.replace('\\', '/');
}
try
{
// copy xslt files to tempdita
copyFile(templatesDir + "all-classes.xslt", outputDitaDir + "all-classes.xslt");
copyFile(templatesDir + "all-index.xslt", outputDitaDir + "all-index.xslt");
copyFile(templatesDir + "asdoc-util.xslt", outputDitaDir + "asdoc-util.xslt");
copyFile(templatesDir + "ASDoc_terms.xml", outputDitaDir + "ASDoc_terms.xml");
copyFile(templatesDir + "class-files.xslt", outputDitaDir + "class-files.xslt");
copyFile(templatesDir + "class-list.xslt", outputDitaDir + "class-list.xslt");
copyFile(templatesDir + "class-parts.xslt", outputDitaDir + "class-parts.xslt");
copyFile(templatesDir + "class-summary.xslt", outputDitaDir + "class-summary.xslt");
copyFile(templatesDir + "Classes.xslt", outputDitaDir + "Classes.xslt");
copyFile(templatesDir + "ClassHeader.xslt", outputDitaDir + "ClassHeader.xslt");
copyFile(templatesDir + "eventsGeneratedSummary.xslt", outputDitaDir + "eventsGeneratedSummary.xslt");
copyFile(templatesDir + "effectsSummary.xslt", outputDitaDir + "effectsSummary.xslt");
copyFile(templatesDir + "fieldSummary.xslt", outputDitaDir + "fieldSummary.xslt");
copyFile(templatesDir + "merge_dita_xml.xslt", outputDitaDir + "merge_dita_xml.xslt");
copyFile(templatesDir + "methodSummary.xslt", outputDitaDir + "methodSummary.xslt");
copyFile(templatesDir + "processHTML.xslt", outputDitaDir + "processHTML.xslt");
copyFile(templatesDir + "PostProcessing.xslt", outputDitaDir + "PostProcessing.xslt");
copyFile(templatesDir + "package-list.xslt", outputDitaDir + "package-list.xslt");
copyFile(templatesDir + "package-detail.xslt", outputDitaDir + "package-detail.xslt");
copyFile(templatesDir + "package-summary.xslt", outputDitaDir + "package-summary.xslt");
copyFile(templatesDir + "package.xslt", outputDitaDir + "package.xslt");
copyFile(templatesDir + "stylesSummary.xslt", outputDitaDir + "stylesSummary.xslt");
copyFile(templatesDir + "index.html", outputDitaDir + "index.html");
copyFile(templatesDir + "package-frame.html", outputDitaDir + "package-frame.html");
copyFile(templatesDir + "title-bar.html", outputDitaDir + "title-bar.html");
// warnings:silent|recover
String warnings = "silent";
//process_html_dita
String[] args = new String[] { "-s", outputDitaDir + "index.html",
"-o", inputFile,
"-xsl", outputDitaDir + "processHTML.xslt",
"index-file=index.html",
"prog_language_name=ActionScript" };
net.sf.saxon.Transform.main(args);
args = new String[] { "-s", outputDitaDir + "package-frame.html",
"-o", outputDir + "package-frame.html",
"-xsl", outputDitaDir + "processHTML.xslt",
"package-frame=package-frame.html",
"prog_language_name=ActionScript"};
net.sf.saxon.Transform.main(args);
args = new String[] { "-s", templatesDir + "index-list.html",
"-o", outputDir + "index-list.html",
"-xsl", outputDitaDir + "processHTML.xslt" };
net.sf.saxon.Transform.main(args);
args = new String[] { "-s", outputDitaDir + "title-bar.html",
"-o", outputDir + "title-bar.html",
"-xsl", outputDitaDir + "processHTML.xslt",
"titleBarFile=title-bar.html",
"prog_language_name=ActionScript" };
net.sf.saxon.Transform.main(args);
//create_merge_dita_xml
args = new String[] { "-s", outputDitaDir + "packages.dita",
"-o", outputDitaDir + "packagemap.xml",
"-xsl", outputDitaDir + "merge_dita_xml.xslt" };
net.sf.saxon.Transform.main(args);
//create_classes_dita_xml
args = new String[] { "-s", outputDitaDir + "packages.dita",
"-o", outputDitaDir + "Classes.xml",
"-xsl", outputDitaDir + "Classes.xslt" };
net.sf.saxon.Transform.main(args);
//create_classheader_xml
args = new String[] { "-s", outputDitaDir + "Classes.xml",
"-o", outputDitaDir + "ClassHeader.xml",
"-xsl", outputDitaDir + "ClassHeader.xslt" };
net.sf.saxon.Transform.main(args);
//create_fieldSummary_dita_xml
args = new String[] { "-s", outputDitaDir + "packages.dita",
"-o", outputDitaDir + "pp_fieldSummary.xml",
"-warnings:" + warnings,
"-xsl", outputDitaDir + "fieldSummary.xslt"};
net.sf.saxon.Transform.main(args);
args = new String[] { "-s", outputDitaDir + "pp_fieldSummary.xml",
"-warnings:" + warnings,
"-o", outputDitaDir + "fieldSummary.xml",
"-xsl", outputDitaDir + "PostProcessing.xslt" };
net.sf.saxon.Transform.main(args);
//create_methodSummary_dita_xml
args = new String[] { "-s", outputDitaDir + "packages.dita",
"-warnings:" + warnings,
"-o", outputDitaDir + "pp_methodSummary.xml",
"-xsl", outputDitaDir + "methodSummary.xslt" };
net.sf.saxon.Transform.main(args);
args = new String[] { "-s", outputDitaDir + "pp_methodSummary.xml",
"-warnings:" + warnings,
"-o", outputDitaDir + "methodSummary.xml",
"-xsl", outputDitaDir + "PostProcessing.xslt" };
net.sf.saxon.Transform.main(args);
//create_eventsGeneratedSummary_dita_xml
args = new String[] { "-s", outputDitaDir + "packages.dita",
"-warnings:" + warnings,
"-o", outputDitaDir + "eventsGeneratedSummary.xml",
"-xsl", outputDitaDir + "eventsGeneratedSummary.xslt" };
net.sf.saxon.Transform.main(args);
//create_stylesSummary_dita_xml
args = new String[] { "-s", outputDitaDir + "packages.dita",
"-warnings:" + warnings,
"-o", outputDitaDir + "stylesSummary.xml",
"-xsl", outputDitaDir + "stylesSummary.xslt" };
net.sf.saxon.Transform.main(args);
//create_effectsSummary_dita_xml
args = new String[] { "-s", outputDitaDir + "packages.dita",
"-warnings:" + warnings,
"-o", outputDitaDir + "effectsSummary.xml",
"-xsl", outputDitaDir + "effectsSummary.xslt" };
net.sf.saxon.Transform.main(args);
//create_class_files_dita
args = new String[] { "-s", outputDitaDir + "packages.dita",
"-warnings:" + warnings,
"-o", outputDir + "dummy.html",
"-xsl", outputDitaDir + "class-files.xslt",
"showIncludeExamples=true",
"prog_language_name=ActionScript",
"process_xref_href_attribute=1"};
net.sf.saxon.Transform.main(args);
//create_all_classes_dita
args = new String[] { "-s", outputDitaDir + "packagemap.xml",
"-warnings:" + warnings,
"-o", outputDir + "all-classes.html",
"-xsl", outputDitaDir + "all-classes.xslt",
"prog_language_name=ActionScript" };
net.sf.saxon.Transform.main(args);
//create_package_list_dita
args = new String[] { "-s", outputDitaDir + "packages.dita",
"-warnings:" + warnings,
"-o", outputDir + "package-list.html",
"-xsl", outputDitaDir + "package-list.xslt" };
net.sf.saxon.Transform.main(args);
//create_class_summary_dita
args = new String[] { "-s", outputDitaDir + "packagemap.xml",
"-warnings:" + warnings,
"-o", outputDir + "class-summary.html",
"-xsl", outputDitaDir + "class-summary.xslt",
"localTitle=allClasses",
"filter=*" };
net.sf.saxon.Transform.main(args);
//create_package_detail_dita
args = new String[] { "-s", outputDitaDir + "packages.dita",
"-warnings:" + warnings,
"-o", outputDir + "dummy.html",
"-xsl", outputDitaDir + "package-detail.xslt",
"prog_language_name=ActionScript" };
net.sf.saxon.Transform.main(args);
//create_package_summary_dita
args = new String[] { "-s", outputDitaDir + "packages.dita",
"-warnings:" + warnings,
"-o", outputDir + "package-summary.html",
"-xsl", outputDitaDir + "package-summary.xslt",
"localTitle=allPackages",
"filter=*",
"prog_language_name=ActionScript" };
net.sf.saxon.Transform.main(args);
//create_class_list_dita
args = new String[] { "-s", outputDitaDir + "packages.dita",
"-warnings:" + warnings,
"-o", outputDir + "dummy.html",
"-xsl", outputDitaDir + "class-list.xslt",
"prog_language_name=ActionScript" };
net.sf.saxon.Transform.main(args);
//create_all_index_dita
args = new String[] { "-s", outputDitaDir + "packagemap.xml",
"-warnings:" + warnings,
"-o", outputDir + "dummy.html",
"-xsl", outputDitaDir + "all-index.xslt",
"prog_language_name=ActionScript" };
net.sf.saxon.Transform.main(args);
//create_package_dita
args = new String[] { "-s", outputDitaDir + "packages.dita",
"-warnings:" + warnings,
"-o", outputDir + "dummy.html",
"-xsl", outputDitaDir + "package.xslt",
"prog_language_name=ActionScript" };
net.sf.saxon.Transform.main(args);
(new File(outputDir + "dummy.html")).delete();
}
catch(Exception ex)
{
ex.printStackTrace();
throw ex;
}
File indexHtml = new File(outputDir + "index.html");
if (config.getLeftFramesetWidth() == -1)
{
// we can't just originally name this as index.html because then the renaming in the other
// case fails (because of Java)
FileUtils.renameFile(indexTmp, indexHtml);
}
else
{
// here we do something that doesn't fit well into XSL, which is replacing the first frameset
// value we find in index.html
BufferedReader reader = null;
BufferedWriter writer = null;
File indexTmp2 = new File(outputDir + "index2.tmp");
try
{
reader = new BufferedReader(new FileReader(indexTmp));
writer = new BufferedWriter(new FileWriter(indexTmp2));
boolean foundFrameset = false;
String s;
String search1 = "frameset cols=";
String search2 = ",";
while ((s = reader.readLine()) != null)
{
if (! foundFrameset)
{
int ind = s.indexOf(search1);
if (ind != -1)
{
foundFrameset = true;
int ind2 = s.indexOf(search2, ind);
if (ind2 != -1)
{
s = s.substring(0, ind + search1.length() + 1) + config.getLeftFramesetWidth() + s.substring(ind2);
}
}
}
writer.write(s);
writer.newLine();
}
}
catch (Exception ex)
{
ex.printStackTrace();
CompilerMessage c = new CouldNotCreate("index.html", ex.getMessage());
ThreadLocalToolkit.log(c);
throw c;
}
finally
{
if (writer != null)
{
try { writer.close(); } catch(IOException ioe) {}
}
if (reader != null)
{
try { reader.close(); } catch(IOException ioe) {}
}
FileUtils.renameFile(indexTmp2, indexHtml);
}
}
}