/*
* Copyright ( c ) 2003 , 2015 , Oracle and / or its affiliates . All rights reserved .
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER .
*
* This code is free software ; you can redistribute it and / or modify it
* under the terms of the GNU General Public License version 2 only , as
* published by the Free Software Foundation .
*
* This code is distributed in the hope that it will be useful , but WITHOUT
* ANY WARRANTY ; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE . See the GNU General Public License
* version 2 for more details ( a copy is included in the LICENSE file that
* accompanied this code ) .
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work ; if not , write to the Free Software Foundation ,
* Inc . , 51 Franklin St , Fifth Floor , Boston , MA 02110 - 1301 USA .
*
* Please contact Oracle , 500 Oracle Parkway , Redwood Shores , CA 94065 USA
* or visit www . oracle . com if you need additional information or have any
* questions .
*
*/
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.w3c.dom.Document;
import org.w3c.dom.DOMException;
public class jvmtiGen
{
private static final int EXIT_FAILURE_ERROR = 1 ;
private static final int EXIT_FAILURE_BADARGUMENTS = 2 ;
private static boolean verbose = false ;
/**
* Write out usage and exit .
*/
private static void showUsage() {
System.err.println("usage:" );
System.err.println(" java jvmtiGen " +
"[-verbose] " +
"-IN <input XML file name> " +
"-XSL <XSL file> " +
"-OUT <output file name> " +
"[-PARAM <name> <expression> ...]" );
System.exit(EXIT_FAILURE_BADARGUMENTS); // There is no returning from showUsage()
}
public static void main (String argv []) {
String inFileName = null ;
String xslFileName = null ;
String outFileName = null ;
final List<String> params = new ArrayList<String>();
for (int ii = 0 ; ii < argv.length; ii++) {
if (argv[ii].equals("-verbose" )) {
verbose = true ;
} else if (argv[ii].equals("-IN" )) {
inFileName = argv[++ii];
} else if (argv[ii].equals("-XSL" )) {
xslFileName = argv[++ii];
} else if (argv[ii].equals("-OUT" )) {
outFileName = argv[++ii];
} else if (argv[ii].equals("-PARAM" )) {
if (ii + 2 < argv.length) {
final String name = argv[++ii];
params.add(name);
final String expression = argv[++ii];
params.add(expression);
} else {
showUsage();
}
} else {
showUsage();
}
}
if (inFileName == null || xslFileName == null || outFileName == null ) {
showUsage();
}
final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true );
factory.setValidating(true );
factory.setXIncludeAware(true );
final File datafile = new File(inFileName);
final File stylesheet = new File(xslFileName);
try (
final OutputStream os = new BufferedOutputStream(new FileOutputStream(outFileName));
) {
final StreamSource stylesource = new StreamSource(stylesheet);
// Use a Transformer for output
final Transformer transformer =
TransformerFactory.newInstance().newTransformer(stylesource);
for (int ii = 0 ; ii < params.size(); ii += 2 ) {
transformer.setParameter(params.get(ii), params.get(ii + 1 ));
}
final DocumentBuilder builder = factory.newDocumentBuilder();
builder.setErrorHandler(new ErrorHandler() {
public void fatalError(SAXParseException exn) throws SAXException {
throw new SAXException(exn);
}
public void error(SAXParseException exn) throws SAXException {
fatalError(exn);
}
public void warning(SAXParseException exn) throws SAXException {
if (verbose) {
System.err.println("jvmtiGen warning: " + exn.getMessage());
}
}
});
final Document document = builder.parse(datafile);
final DOMSource source = new DOMSource(document);
final StreamResult result = new StreamResult(os);
transformer.transform(source, result);
} catch (IOException
| ParserConfigurationException
| SAXException
| TransformerException exn) {
System.err.print("jvmtiGen error: " + exn.getMessage());
exn.printStackTrace(System.err);
System.exit(EXIT_FAILURE_ERROR);
}
} // main
}
Messung V0.5 in Prozent C=97 H=91 G=93
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-10-01)
¤
*© Formatika GbR, Deutschland