package dmg.util; import java.util.Properties; /** * Properties subclass which uses a Replaceable as a repository for * default values. * * Not technically an adapter. */ public class ReplaceableBackedProperties extends Properties { private static final long serialVersionUID = 6635498670855942285L; private final Replaceable _replaceable; public ReplaceableBackedProperties(Replaceable replaceable) { _replaceable = replaceable; } @Override public String getProperty(String key) { String value = super.getProperty(key); return (value != null) ? value : _replaceable.getReplacement(key); } @Override public String getProperty(String key, String defaultValue) { String value = this.getProperty(key); return (value != null) ? value : defaultValue; } }