131 lines
4.3 KiB
Java
131 lines
4.3 KiB
Java
/*
|
|
* Copyright (c) 1997, 2012, 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. Oracle designates this
|
|
* particular file as subject to the "Classpath" exception as provided
|
|
* by Oracle in the LICENSE file that accompanied this code.
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
package com.sun.tools.internal.jxc.ap;
|
|
|
|
import java.io.File;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import com.sun.tools.internal.xjc.BadCommandLineException;
|
|
|
|
/**
|
|
* This stores the invocation configuration for
|
|
* SchemaGenerator
|
|
*
|
|
* @author Bhakti Mehta
|
|
*/
|
|
public class Options {
|
|
|
|
public static final String DISABLE_XML_SECURITY = "-disableXmlSecurity";
|
|
|
|
// honor CLASSPATH environment variable, but it will be overrided by -cp
|
|
public String classpath = System.getenv("CLASSPATH");
|
|
|
|
public File targetDir = null;
|
|
|
|
public File episodeFile = null;
|
|
|
|
private boolean disableXmlSecurity = false;
|
|
|
|
// encoding is not required for JDK5, 6, but JDK 7 javac is much more strict - see issue 6859289
|
|
public String encoding = null;
|
|
|
|
public final List<String> arguments = new ArrayList<String>();
|
|
|
|
public void parseArguments(String[] args) throws BadCommandLineException {
|
|
for (int i = 0 ; i <args.length; i++) {
|
|
if (args[i].charAt(0)== '-') {
|
|
int j = parseArgument(args,i);
|
|
if(j==0)
|
|
throw new BadCommandLineException(
|
|
Messages.UNRECOGNIZED_PARAMETER.format(args[i]));
|
|
i += j;
|
|
} else {
|
|
arguments.add(args[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
private int parseArgument( String[] args, int i ) throws BadCommandLineException {
|
|
if (args[i].equals("-d")) {
|
|
if (i == args.length - 1)
|
|
throw new BadCommandLineException(
|
|
(Messages.OPERAND_MISSING.format(args[i])));
|
|
targetDir = new File(args[++i]);
|
|
if( !targetDir.exists() )
|
|
throw new BadCommandLineException(
|
|
Messages.NON_EXISTENT_FILE.format(targetDir));
|
|
return 1;
|
|
}
|
|
|
|
if (args[i].equals("-episode")) {
|
|
if (i == args.length - 1)
|
|
throw new BadCommandLineException(
|
|
(Messages.OPERAND_MISSING.format(args[i])));
|
|
episodeFile = new File(args[++i]);
|
|
return 1;
|
|
}
|
|
|
|
if (args[i].equals(DISABLE_XML_SECURITY)) {
|
|
if (i == args.length - 1)
|
|
throw new BadCommandLineException(
|
|
(Messages.OPERAND_MISSING.format(args[i])));
|
|
disableXmlSecurity = true;
|
|
return 1;
|
|
}
|
|
|
|
if (args[i].equals("-encoding")) {
|
|
if (i == args.length - 1)
|
|
throw new BadCommandLineException(
|
|
(Messages.OPERAND_MISSING.format(args[i])));
|
|
encoding = args[++i];
|
|
return 1;
|
|
}
|
|
|
|
if (args[i].equals("-cp") || args[i].equals("-classpath")) {
|
|
if (i == args.length - 1)
|
|
throw new BadCommandLineException(
|
|
(Messages.OPERAND_MISSING.format(args[i])));
|
|
classpath = args[++i];
|
|
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
/**
|
|
* @return the disableXmlSecurity
|
|
*/
|
|
public boolean isDisableXmlSecurity() {
|
|
return disableXmlSecurity;
|
|
}
|
|
|
|
|
|
|
|
}
|