package org.overture.codegen.runtime.traces;
import java.util.HashMap;
import java.util.Map;
import org.overture.codegen.runtime.Utils;
public class Store
{
private Map<Number, ModuleCopy> values;
public Store()
{
this.values = new HashMap<>();
}
public void register(Number id, Object val)
{
values.put(id, new ObjectCopy(val));
}
public void staticReg(Number id, Class<?> clazz)
{
values.put(id, new ModuleCopy(clazz));
}
public Object getValue(Number id)
{
return values.get(id).getValue();
}
public void reset()
{
for (Number k : values.keySet())
{
values.get(k).reset();
}
}
@Override
public String toString()
{
StringBuilder sb = new StringBuilder();
sb.append("{");
String sep = "";
for (Number k : values.keySet())
{
sb.append(sep);
sb.append(Utils.toString(k));
sb.append(" |-> ");
sb.append(Utils.toString(values.get(k)));
sep = ", ";
}
sb.append("}");
return sb.toString();
}
}