package edu.uw.zookeeper;
import com.google.common.base.Function;
import edu.uw.zookeeper.common.Configurable;
import edu.uw.zookeeper.common.Configuration;
import edu.uw.zookeeper.common.TimeValue;
@Configurable(arg="timeout", value="30 seconds", help="time")
public class ConfigurableTimeout implements Function<Configuration, TimeValue> {
public static TimeValue get(Configuration configuration) {
return new ConfigurableTimeout().apply(configuration);
}
@Override
public TimeValue apply(Configuration configuration) {
Configurable configurable = getClass().getAnnotation(Configurable.class);
return TimeValue.fromString(
configuration.withConfigurable(configurable)
.getConfigOrEmpty(configurable.path())
.getString(configurable.arg()));
}
}