From fc44d4bcad00192f0df8f6086737b9b126094dcd Mon Sep 17 00:00:00 2001 From: Andreas Fitzek Date: Thu, 26 Sep 2013 15:48:43 +0200 Subject: initial code commit --- .../lib/impl/configuration/ConfigurationImpl.java | 110 +++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/configuration/ConfigurationImpl.java (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/configuration/ConfigurationImpl.java') diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/configuration/ConfigurationImpl.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/configuration/ConfigurationImpl.java new file mode 100644 index 00000000..b901b597 --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/configuration/ConfigurationImpl.java @@ -0,0 +1,110 @@ +package at.gv.egiz.pdfas.lib.impl.configuration; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Properties; +import java.util.Vector; + +import at.gv.egiz.pdfas.common.settings.ISettings; +import at.gv.egiz.pdfas.common.settings.Settings; +import at.gv.egiz.pdfas.lib.api.Configuration; + +public class ConfigurationImpl implements ISettings, Configuration { + + protected Properties overwrittenProperties = new Properties(); + + public void setValue(String key, String value) { + overwrittenProperties.setProperty(key, value); + } + + public String getValue(String key) { + if(overwrittenProperties.containsKey(key)) { + return overwrittenProperties.getProperty(key); + } else { + return Settings.getInstance().getValue(key); + } + } + + public boolean hasValue(String key) { + if(overwrittenProperties.containsKey(key)) { + return true; + } else { + return Settings.getInstance().hasValue(key); + } + } + + public Map getValuesPrefix(String prefix) { + + Map valueMap = null; + valueMap = Settings.getInstance().getValuesPrefix(prefix); + if(valueMap == null) { + valueMap = new HashMap(); + } + + Iterator keyIterator = overwrittenProperties.keySet().iterator(); + + while(keyIterator.hasNext()) { + String key = keyIterator.next().toString(); + + if(key.startsWith(prefix)) { + valueMap.put(key, overwrittenProperties.getProperty(key)); + } + } + + if(valueMap.isEmpty()) { + return null; + } + + return valueMap; + } + + public Vector getFirstLevelKeys(String prefix) { + + Vector valueMap = Settings.getInstance().getFirstLevelKeys(prefix); + if(valueMap == null) { + valueMap = new Vector(); + } + + + String mPrefix = prefix.endsWith(".")?prefix:prefix+"."; + Iterator keyIterator = overwrittenProperties.keySet().iterator(); + + while(keyIterator.hasNext()) { + String key = keyIterator.next().toString(); + + if(key.startsWith(prefix)) { + int keyIdx = key.indexOf('.', mPrefix.length()) > 0 ? key.indexOf('.', mPrefix.length()) : key.length(); + String firstLevels = key.substring(0, keyIdx); + if(!valueMap.contains(firstLevels)) { + valueMap.add(firstLevels); + } + } + } + + if(valueMap.isEmpty()) { + return null; + } + + return valueMap; + } + + public boolean hasPrefix(String prefix) { + + if(Settings.getInstance().hasPrefix(prefix)) { + return true; + } + + Iterator keyIterator = overwrittenProperties.keySet().iterator(); + while(keyIterator.hasNext()) { + String key = keyIterator.next().toString(); + + if(key.startsWith(prefix)) { + return true; + } + } + return false; + } + + +} -- cgit v1.2.3