
org.enhydra.xml.xmlc.commands.options.BooleanOption Maven / Gradle / Ivy
The newest version!
/*
* Enhydra Java Application Server Project
*
* The contents of this file are subject to the Enhydra Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License on
* the Enhydra web site ( http://www.enhydra.org/ ).
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific terms governing rights and limitations
* under the License.
*
* The Initial Developer of the Enhydra Application Server is Lutris
* Technologies, Inc. The Enhydra Application Server and portions created
* by Lutris Technologies, Inc. are Copyright Lutris Technologies, Inc.
* All Rights Reserved.
*
* Contributor(s):
*
* $Id: BooleanOption.java,v 1.2 2005/01/26 08:29:24 jkjome Exp $
*/
package org.enhydra.xml.xmlc.commands.options;
import org.enhydra.xml.io.ErrorReporter;
import org.enhydra.xml.xmlc.XMLCException;
/**
* An option that takes a boolean value of true/false/yes/no.
*/
public abstract class BooleanOption extends Option {
/**
* Construct a new object.
*
* @param name The name of the option.
* @param help Help string for the option.
*/
public BooleanOption(String name,
String help) {
super(name, 1, false, help);
}
/**
* Method called to set the value.
*/
abstract protected void set(boolean value,
Object clientData) throws XMLCException;
/**
* Parse an instance of the option and set the field in the Options
* object using Java reflection.
*
* @param args The option's arguments.
*/
public void parse(String[] args,
ErrorReporter errorReporter,
Object clientData) throws XMLCException {
String strValue = args[0];
try {
boolean value;
if (strValue.equalsIgnoreCase("yes")) {
value = true;
} else if (strValue.equalsIgnoreCase("no")) {
value = false;
} else if (strValue.equalsIgnoreCase("true")) {
value = true;
} else if (strValue.equalsIgnoreCase("false")) {
value = false;
} else {
throw new XMLCException("Illegal value for " + name
+ ", expected yes, no, true, or false");
}
set(value, clientData);
} catch (Exception except) {
throw new XMLCException(except);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy