blob: b757e341341b68642d61cb6ce5b464580b8b4c1c [file] [log] [blame]
/*
* Copyright (c) 1997, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0, which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
package com.sun.tools.jxc.ap;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import com.sun.tools.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)== '-') {
i += parseArgument(args, i);
} 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)) {
disableXmlSecurity = true;
return 0;
}
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;
}
throw new BadCommandLineException(
Messages.UNRECOGNIZED_PARAMETER.format(args[i]));
}
/**
* @return the disableXmlSecurity
*/
public boolean isDisableXmlSecurity() {
return disableXmlSecurity;
}
}