mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
96 lines
2.3 KiB
Java
96 lines
2.3 KiB
Java
package com.avaje.ebean.config;
|
|
|
|
import java.io.Serializable;
|
|
import java.util.Iterator;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
import java.util.Map.Entry;
|
|
|
|
/**
|
|
* A map like structure of properties.
|
|
*/
|
|
final class PropertyMap implements Serializable {
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
private LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
|
|
|
|
public String toString() {
|
|
return map.toString();
|
|
}
|
|
|
|
/**
|
|
* Go through all the properties and evaluate any expressions that have not
|
|
* been resolved.
|
|
*/
|
|
public void evaluateProperties() {
|
|
|
|
for (Entry<String, String> e : entrySet()) {
|
|
String key = e.getKey();
|
|
String val = e.getValue();
|
|
String eval = eval(val);
|
|
if (eval != null && !eval.equals(val)) {
|
|
put(key, eval);
|
|
}
|
|
}
|
|
}
|
|
|
|
public synchronized String eval(String val) {
|
|
return PropertyExpression.eval(val, this);
|
|
}
|
|
|
|
public synchronized boolean getBoolean(String key, boolean defaultValue) {
|
|
String value = get(key);
|
|
if (value == null) {
|
|
return defaultValue;
|
|
} else {
|
|
return Boolean.parseBoolean(value);
|
|
}
|
|
}
|
|
|
|
public synchronized int getInt(String key, int defaultValue) {
|
|
String value = get(key);
|
|
if (value == null) {
|
|
return defaultValue;
|
|
} else {
|
|
return Integer.parseInt(value);
|
|
}
|
|
}
|
|
|
|
public synchronized String get(String key, String defaultValue) {
|
|
String value = map.get(key.toLowerCase());
|
|
return value == null ? defaultValue : value;
|
|
}
|
|
|
|
public synchronized String get(String key) {
|
|
return map.get(key.toLowerCase());
|
|
}
|
|
|
|
synchronized void putAll(Map<String, String> keyValueMap) {
|
|
Iterator<Entry<String, String>> it = keyValueMap.entrySet().iterator();
|
|
while (it.hasNext()) {
|
|
Map.Entry<String, String> entry = it.next();
|
|
put(entry.getKey(), entry.getValue());
|
|
}
|
|
}
|
|
|
|
synchronized String putEval(String key, String value) {
|
|
value = PropertyExpression.eval(value, this);
|
|
return map.put(key.toLowerCase(), value);
|
|
}
|
|
|
|
synchronized String put(String key, String value) {
|
|
return map.put(key.toLowerCase(), value);
|
|
}
|
|
|
|
synchronized String remove(String key) {
|
|
return map.remove(key.toLowerCase());
|
|
}
|
|
|
|
synchronized Set<Entry<String, String>> entrySet() {
|
|
return map.entrySet();
|
|
}
|
|
|
|
}
|