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/10/19 11:34:36 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Compile.java

morten      01/10/19 02:34:36

  Modified:    java/src/org/apache/xalan/xsltc/cmdline Compile.java
  Log:
  Added a '-i' option to the command-line compiler to allow stylesheets to be
  passed in through stdin. The '-i' option must be used with the '-o' option
  to specify a translet name.
  PR:		bugzilla 4253
  Obtained from:	n/a
  Submitted by:	johnh@schemasoft.com (John Howard)
  Reviewed by:	morten@xml.apache.org
  
  Revision  Changes    Path
  1.7       +35 -16    xml-xalan/java/src/org/apache/xalan/xsltc/cmdline/Compile.java
  
  Index: Compile.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/cmdline/Compile.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Compile.java	2001/09/20 16:49:10	1.6
  +++ Compile.java	2001/10/19 09:34:36	1.7
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Compile.java,v 1.6 2001/09/20 16:49:10 morten Exp $
  + * @(#)$Id: Compile.java,v 1.7 2001/10/19 09:34:36 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -88,7 +88,7 @@
       private final static String USAGE_STRING =
   	"Usage:\n" + 
   	"   xsltc [-o <output>] [-d <directory>] [-j <jarfile>]\n"+
  -	"         [-p <package name>] [-x] [-s] [-u] <stylesheet>... \n\n"+
  +	"         [-p <package name>] [-x] [-s] [-u] <stylesheet>|-i\n\n"+
   	"   Where <output> is the name to give the the generated translet.\n"+
   	"         <stylesheet> is one or more stylesheet file names, or if,\n"+
   	"         the -u options is specified, one or more stylesheet URLs.\n"+
  @@ -96,8 +96,9 @@
   	"         <jarfile> is the name of a JAR-file to put all generated classes in.\n"+
   	"         <package-name> is a package name to prefix all class names with.\n\n"+
   	"   Notes:\n"+
  +	"         The -i options forces the compiler to read the stylsheet from stdin\n"+
   	"         The -o option is ignored when multiple stylesheets are specified.\n"+
  -	"         The -x option switched on debug messages."+
  +	"         The -x option switched on debug messages.\n"+
   	"         The -s option disables calling System.exit.";
       
       public static void printUsage() {
  @@ -115,8 +116,10 @@
       public static void main(String[] args) {
   	try {
   	    boolean inputIsURL = false;
  +	    boolean useStdIn = false;
  +	    boolean classNameSet = false;
   
  -	    final GetOpt getopt = new GetOpt(args, "o:d:j:p:uxhs");
  +	    final GetOpt getopt = new GetOpt(args, "o:d:j:p:uxhsi");
   	    if (args.length < 1) printUsage();
   
   	    final XSLTC xsltc = new XSLTC();
  @@ -125,8 +128,12 @@
   	    int c;
   	    while ((c = getopt.getNextOption()) != -1) {
   		switch(c) {
  +		case 'i':
  +		    useStdIn = true;
  +		    break;
   		case 'o':
   		    xsltc.setClassName(getopt.getOptionArg());
  +		    classNameSet = true;
   		    break;
   		case 'd':
   		    xsltc.setDestDirectory(getopt.getOptionArg());
  @@ -152,22 +159,34 @@
   		    break; 
   		}
   	    }
  +
  +	    boolean compileOK;
   
  -	    // Generate a vector containg URLs for all stylesheets specified
  -	    final String[] stylesheetNames = getopt.getCmdArgs();
  -	    final Vector   stylesheetVector = new Vector();
  -	    for (int i = 0; i < stylesheetNames.length; i++) {
  -		final String name = stylesheetNames[i];
  -		URL url;
  -		if (inputIsURL)
  -		    url = new URL(name);
  -		else
  -		    url = (new File(name)).toURL();
  -		stylesheetVector.addElement(url);
  +	    if (useStdIn) {
  +		if (!classNameSet) {
  +		    System.err.println("The -i option must be used with the -o option.");
  +		    if (_allowExit) System.exit(-1);
  +		}
  +		compileOK = xsltc.compile(System.in, xsltc.getClassName());
  +	    }
  +	    else {
  +		// Generate a vector containg URLs for all stylesheets specified
  +		final String[] stylesheetNames = getopt.getCmdArgs();
  +		final Vector   stylesheetVector = new Vector();
  +		for (int i = 0; i < stylesheetNames.length; i++) {
  +		    final String name = stylesheetNames[i];
  +		    URL url;
  +		    if (inputIsURL)
  +			url = new URL(name);
  +		    else
  +			url = (new File(name)).toURL();
  +		    stylesheetVector.addElement(url);
  +		}
  +		compileOK = xsltc.compile(stylesheetVector);
   	    }
   
   	    // Compile the stylesheet and output class/jar file(s)
  -	    if (xsltc.compile(stylesheetVector)) {
  +	    if (compileOK) {
   		xsltc.printWarnings();
   		if (xsltc.getJarFileName() != null) xsltc.outputToJar();
   		if (_allowExit) System.exit(0);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org