package io.cattle.platform.iaas.api.auth.impl;
import io.cattle.platform.api.auth.impl.OptionCallback;
import io.cattle.platform.api.auth.impl.PolicyOptions;
import java.util.HashMap;
import java.util.Map;
public class PolicyOptionsWrapper implements PolicyOptions {
PolicyOptions options;
Map<String, String> values = new HashMap<String, String>();
Map<String, OptionCallback> callbacks = new HashMap<String, OptionCallback>();
public PolicyOptionsWrapper(PolicyOptions options) {
super();
this.options = options;
}
@Override
public boolean isOption(String optionName) {
return Boolean.parseBoolean(getOption(optionName));
}
@Override
public String getOption(String optionName) {
OptionCallback callback = callbacks.get(optionName);
if (callback != null) {
return callback.getOption();
}
String value = values.get(optionName);
return value == null ? options.getOption(optionName) : value;
}
@Override
public void setOption(String name, String value) {
values.put(name, value);
}
public void addCallback(String name, OptionCallback callback) {
callbacks.put(name, callback);
}
}