001: package com.bm.cfg;
002:
003: import java.util.ArrayList;
004: import java.util.HashMap;
005: import java.util.List;
006: import java.util.Map;
007:
008: /**
009: * Rpresentiert nested properties wie: rules.1.gefallenInProz=0.2345.
010: * rules.1.gestiegenInProz=0.1345.
011: *
012: * @author Daniel Wiese
013: * @since 06.07.2006
014: */
015: public abstract class NestedProperty {
016:
017: private final List<String> innerValues = new ArrayList<String>();
018:
019: private final Map<String, String> keyValuePairs = new HashMap<String, String>();
020:
021: /**
022: * Constructor.
023: *
024: * @param innerValues -
025: * the names of the inner values like: gefallenInProz,
026: * gestiegenInProz.
027: */
028: public NestedProperty(String... innerValues) {
029: for (String current : innerValues) {
030: this .innerValues.add(current);
031: }
032: }
033:
034: /**
035: * Returns a list of inner values.
036: *
037: * @author Daniel Wiese
038: * @since 06.07.2006
039: * @return list of inner values
040: */
041: public List<String> innerValues() {
042: return innerValues;
043: }
044:
045: /**
046: * Sets an inner value.
047: *
048: * @author Daniel Wiese
049: * @since 06.07.2006
050: * @param key -
051: * the key
052: * @param value -
053: * the value
054: */
055: public void setValue(String key, String value) {
056: this .keyValuePairs.put(key, value);
057: }
058:
059: /**
060: * Liest einen Wert als Boolean.
061: *
062: * @author Daniel Wiese
063: * @since 04.12.2005
064: * @param key -
065: * der key um im Property-File einen Wert
066: * auszulesen
067: * @return - den gelesen wert aus der Konfigurationsdatei.
068: */
069: public boolean getBoolean(String key) {
070: return ((this .keyValuePairs.get(key).equalsIgnoreCase("true")) ? true
071: : false);
072: }
073:
074: /**
075: * Liest einen Wert als Double.
076: *
077: * @author Daniel Wiese
078: * @since 04.12.2005
079: * @param key -
080: * der key um im Property-File einen Wert
081: * auszulesen
082: * @return - den gelesen wert aus der Konfigurationsdatei.
083: */
084: public double getDouble(String key) {
085: return Double.parseDouble(this .keyValuePairs.get(key));
086: }
087:
088: /**
089: * Liest einen Wert als Integer.
090: *
091: * @author Daniel Wiese
092: * @since 04.12.2005
093: * @param key -
094: * der key um im Property-File einen Wert
095: * auszulesen
096: * @return - den gelesen wert aus der Konfigurationsdatei.
097: */
098: public int getInteger(String key) {
099: return Integer.parseInt(this .keyValuePairs.get(key));
100: }
101:
102: /**
103: * Liest einen Wert als Integer.
104: *
105: * @author Daniel Wiese
106: * @since 04.12.2005
107: * @param key -
108: * der key um im Property-File einen Wert
109: * auszulesen
110: * @return - den gelesen wert aus der Konfigurationsdatei.
111: */
112: public String getString(String key) {
113: return this.keyValuePairs.get(key);
114: }
115:
116: }
|