package org.apache.kerberos.kerb.client;
import java.util.HashMap;
import java.util.Map;
public class KrbOptions {
private Map<KrbOption, KrbOption> options = new HashMap<KrbOption, KrbOption>(4);
public void add(KrbOption option) {
if (option != null) {
options.put(option, option);
}
}
public void add(KrbOption option, Object optionValue) {
option.setValue(optionValue);
add(option);
}
public boolean contains(KrbOption option) {
return options.containsKey(option);
}
public KrbOption getOption(KrbOption option) {
if (! options.containsKey(option)) {
return null;
}
return options.get(option);
}
public Object getOptionValue(KrbOption option) {
if (! contains(option)) {
return null;
}
return options.get(option).getValue();
}
public String getStringOption(KrbOption option) {
Object value = getOptionValue(option);
if (value != null && value instanceof String) {
return (String) value;
}
return null;
}
public boolean getBooleanOption(KrbOption option) {
Object value = getOptionValue(option);
if (value != null) {
if (value instanceof String) {
String strVal = (String) value;
if (strVal.equalsIgnoreCase("true") ||
strVal.equalsIgnoreCase("yes") ||
strVal.equals("1")) {
return true;
}
} else if (value instanceof Boolean) {
return (Boolean) value;
}
}
return false;
}
public int getIntegerOption(KrbOption option) {
Object value = getOptionValue(option);
if (value != null) {
if (value instanceof String) {
String strVal = (String) value;
return Integer.valueOf(strVal);
} else if (value instanceof Integer) {
return (Integer) value;
}
}
return -1;
}
}