package com.abmash.core.tools;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import org.joda.time.DateTime;
public class ParamHolder {
protected HashMap<String, ArrayList<String>> keys= new HashMap<String, ArrayList<String>>();
protected HashMap<String, Integer> ints = new HashMap<String, Integer>();
protected HashMap<String, Double> doubles = new HashMap<String, Double>();
protected HashMap<String, String> strings = new HashMap<String, String>();
protected HashMap<String, DateTime> dates = new HashMap<String, DateTime>();
public ParamHolder() {
// TODO constructor params
}
// getters
public Integer getInteger(String key) {
return ints.get(key);
}
public Double getDouble(String key) {
return doubles.get(key);
}
public String getString(String key) {
return strings.get(key);
}
public DateTime getDate(String key) {
return dates.get(key);
}
// adders
public void setInteger(String key, Integer value) {
if(addKeyIfUnique(key, Integer.class.getSimpleName())) {
ints.put(key, value);
}
}
public void setDouble(String key, Double value) {
if(addKeyIfUnique(key, Double.class.getSimpleName())) {
doubles.put(key, value);
}
}
public void setString(String key, String value) {
if(addKeyIfUnique(key, String.class.getSimpleName())) {
strings.put(key, value);
}
}
public void setDate(String key, DateTime value) {
if(addKeyIfUnique(key, DateTime.class.getSimpleName())) {
dates.put(key, value);
}
}
private Boolean addKeyIfUnique(String key, String type) {
for (String otherType: keys.keySet()) {
if(!otherType.equals(type) && keys.get(otherType).contains(key)) return false;
}
// add the key
if(!keys.keySet().contains(type)) {
keys.put(type, new ArrayList<String>());
}
keys.get(type).add(key);
return true;
}
}