/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* 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.
*/
/**
* TODO: describe com.sun.tools.javac.main.JavacOption
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own
* risk. This code and its internal interfaces are subject to change
* or deletion without notice.</b></p>
*/
public interface JavacOption {
/** Does this option take a (separate) operand?
* @return true if this option takes a separate operand
*/
boolean hasArg();
/** Does argument string match option pattern?
* @param arg the command line argument string
* @return true if {@code arg} matches this option
*/
/** Process an option with an argument.
* @param options the accumulated set of analyzed options
* @param option the option to be processed
* @param arg the arg for the option to be processed
* @return true if an error was detected
*/
/** Process the option with no argument.
* @param options the accumulated set of analyzed options
* @param option the option to be processed
* @return true if an error was detected
*/
enum OptionKind {
}
enum ChoiceKind {
}
/** This class represents an option recognized by the main program
*/
/** Option string.
*/
/** Documentation key for arguments.
*/
/** Documentation key for description.
*/
/** Suffix option (-foo=bar or -foo:bar)
*/
boolean hasSuffix;
/** The kind of choices for this option, if any.
*/
/** The choices for this option, if any, and whether or not the choices
* are hidden
*/
this.argsNameKey = argsNameKey;
}
}
}
return map;
}
throw new NullPointerException();
this.choiceKind = choiceKind;
}
return name.optionName;
}
public boolean hasArg() {
}
if (!hasSuffix)
return false;
else {
return false;
}
}
}
return true;
}
/** Print a line of documentation describing this option, if standard.
* @param out the stream to which to write the documentation
*/
}
if (argsNameKey == null) {
if (!e.getValue()) {
sep = ",";
}
}
}
} else {
if (!hasSuffix)
}
}
/** Print a line of documentation describing this option, if non-standard.
* @param out the stream to which to write the documentation
*/
/** Process the option (with arg). Return true if error detected.
*/
// some clients like to see just one of option+choice set
// some clients like to see option (without trailing ":")
// set to arg
} else {
// set option+word for each word in arg
}
}
}
}
return false;
}
/** Process the option (without arg). Return true if error detected.
*/
if (hasSuffix)
else
}
};
/** A nonstandard or extended (-X) option
*/
}
}
}
}
};
/** A hidden (implementor) option
*/
}
}
};
}