/* | |
* Licensed to the Apache Software Foundation (ASF) under one or more | |
* contributor license agreements. See the NOTICE file distributed with | |
* this work for additional information regarding copyright ownership. | |
* The ASF licenses this file to You under the Apache License, Version 2.0 | |
* (the "License"); you may not use this file except in compliance with | |
* the License. You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
*/ | |
package org.apache.oodt.cas.cli.option; | |
//JDK imports | |
import java.util.ArrayList; | |
import java.util.List; | |
//OODT imports | |
import org.apache.oodt.cas.cli.option.require.RequirementRule; | |
/** | |
* {@link CmdLineOption} which implements the basic methods for any | |
* {@link CmdLineOption}. Can be used as-is or extends to add additional option | |
* features. | |
* | |
* @author bfoster (Brian Foster) | |
*/ | |
public class SimpleCmdLineOption implements CmdLineOption { | |
private String shortOption; | |
private String longOption; | |
private String description; | |
private boolean repeating; | |
private String argsDescription; | |
private boolean required; | |
private List<RequirementRule> requirementRules; | |
private boolean hasArgs; | |
private List<String> staticArgs; | |
private boolean isSubOption; | |
private Class<?> type; | |
public SimpleCmdLineOption() { | |
argsDescription = "arg"; | |
repeating = false; | |
required = false; | |
hasArgs = false; | |
isSubOption = false; | |
type = String.class; | |
requirementRules = new ArrayList<RequirementRule>(); | |
} | |
public SimpleCmdLineOption(String shortOption, String longOption, | |
String description, boolean hasArgs) { | |
this(); | |
this.shortOption = shortOption; | |
this.longOption = longOption; | |
this.description = description; | |
this.hasArgs = hasArgs; | |
} | |
public Class<?> getType() { | |
return type; | |
} | |
public void setType(Class<?> type) { | |
this.type = type; | |
} | |
public String getShortOption() { | |
return shortOption; | |
} | |
public void setShortOption(String shortOption) { | |
this.shortOption = shortOption; | |
} | |
public String getLongOption() { | |
return longOption; | |
} | |
public void setLongOption(String longOption) { | |
this.longOption = longOption; | |
} | |
public String getDescription() { | |
return description; | |
} | |
public void setDescription(String description) { | |
this.description = description; | |
} | |
public boolean isRepeating() { | |
return repeating; | |
} | |
public void setRepeating(boolean repeating) { | |
this.repeating = repeating; | |
} | |
public boolean hasArgs() { | |
return hasArgs; | |
} | |
public void setHasArgs(boolean hasArgs) { | |
this.hasArgs = hasArgs; | |
} | |
public void setArgsDescription(String argDescription) { | |
this.argsDescription = argDescription; | |
} | |
public String getArgsDescription() { | |
return argsDescription; | |
} | |
public void setStaticArgs(List<String> staticArgs) { | |
this.staticArgs = staticArgs; | |
} | |
public List<String> getStaticArgs() { | |
return staticArgs; | |
} | |
public boolean hasStaticArgs() { | |
return staticArgs != null; | |
} | |
public void setRequired(boolean required) { | |
this.required = required; | |
} | |
public boolean isRequired() { | |
return required; | |
} | |
public List<RequirementRule> getRequirementRules() { | |
return this.requirementRules; | |
} | |
public void setRequirementRules(List<RequirementRule> requirementRules) { | |
this.requirementRules = requirementRules; | |
} | |
public void setIsSubOption(boolean isSubOption) { | |
this.isSubOption = isSubOption; | |
} | |
public boolean isSubOption() { | |
return isSubOption; | |
} | |
@Override | |
public boolean equals(Object obj) { | |
if (obj instanceof CmdLineOption) { | |
SimpleCmdLineOption compareObj = (SimpleCmdLineOption) obj; | |
return compareObj.shortOption.equals(this.shortOption) | |
|| compareObj.longOption.equals(this.longOption); | |
} else | |
return false; | |
} | |
@Override | |
public int hashCode() { | |
return longOption.hashCode(); | |
} | |
public String toString() { | |
return "[longOption='" + longOption + "',shortOption='" | |
+ shortOption + "',description='" + description + "']"; | |
} | |
} |