package edu.brown.benchmark.seats;
import java.lang.reflect.Field;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.commons.collections15.map.ListOrderedMap;
import org.voltdb.CatalogContext;
import edu.brown.utils.StringUtil;
public final class SEATSConfig {
public boolean force_all_singlepartition = false;
public boolean force_all_distributed = false;
private SEATSConfig(CatalogContext catalogContext, Map<String, String> params) {
for (Entry<String, String> e : params.entrySet()) {
String key = e.getKey();
String val = e.getValue();
// FORCE ALL SINGLE-PARTITIONED TXNS
if (key.equalsIgnoreCase("force_all_singlepartition") && !val.isEmpty()) {
this.force_all_singlepartition = Boolean.parseBoolean(val);
}
// FORCE ALL DISTRIBUTED TXNS
else if (key.equalsIgnoreCase("force_all_distributed") && !val.isEmpty()) {
this.force_all_distributed = Boolean.parseBoolean(val);
}
} // FOR
}
public static SEATSConfig createConfig(CatalogContext catalogContext, Map<String, String> params) {
return new SEATSConfig(catalogContext, params);
}
@Override
public String toString() {
return StringUtil.formatMaps(this.debugMap());
}
public Map<String, Object> debugMap() {
Class<?> confClass = this.getClass();
Map<String, Object> m = new ListOrderedMap<String, Object>();
for (Field f : confClass.getFields()) {
Object obj = null;
try {
obj = f.get(this);
} catch (IllegalAccessException ex) {
throw new RuntimeException(ex);
}
m.put(f.getName().toUpperCase(), obj);
} // FOR
return (m);
}
}