/* * Copyright (c) 2005, 2006, 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.apt; 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 { // 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; 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("-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; } }