package com.netflix.governator.configuration; import java.util.Date; import com.google.common.base.Supplier; /** * This is a hack in preparation for removing Supplier from the API. * * @author elandau * */ public abstract class DefaultConfigurationProvider implements ConfigurationProvider { @Override public boolean has(ConfigurationKey key) { return false; } @Override public Supplier<Boolean> getBooleanSupplier(ConfigurationKey key, Boolean defaultValue) { return Property.from(getBooleanProperty(key, defaultValue)); } @Override public Supplier<Integer> getIntegerSupplier(ConfigurationKey key, Integer defaultValue) { return Property.from(getIntegerProperty(key, defaultValue)); } @Override public Supplier<Long> getLongSupplier(ConfigurationKey key, Long defaultValue) { return Property.from(getLongProperty(key, defaultValue)); } @Override public Supplier<Double> getDoubleSupplier(ConfigurationKey key, Double defaultValue) { return Property.from(getDoubleProperty(key, defaultValue)); } @Override public Supplier<String> getStringSupplier(ConfigurationKey key, String defaultValue) { return Property.from(getStringProperty(key, defaultValue)); } @Override public Supplier<Date> getDateSupplier(ConfigurationKey key, Date defaultValue) { return Property.from(getDateProperty(key, defaultValue)); } @Override public <T> Supplier<T> getObjectSupplier(ConfigurationKey key, T defaultValue, Class<T> objectType) { return Property.from(getObjectProperty(key, defaultValue, objectType)); } public abstract Property<Boolean> getBooleanProperty(ConfigurationKey key, Boolean defaultValue); public abstract Property<Integer> getIntegerProperty(ConfigurationKey key, Integer defaultValue); public abstract Property<Long> getLongProperty(ConfigurationKey key, Long defaultValue); public abstract Property<Double> getDoubleProperty(ConfigurationKey key, Double defaultValue); public abstract Property<String> getStringProperty(ConfigurationKey key, String defaultValue); public abstract Property<Date> getDateProperty(ConfigurationKey key, Date defaultValue); public abstract <T> Property<T> getObjectProperty(ConfigurationKey key, T defaultValue, Class<T> objectType); }