package hep.aida.ref.plotter.style.registry; import java.util.Hashtable; import java.util.Iterator; import java.util.Map; public class PlotterState implements IPlotterState { private Object object; private String path; private int overlayIndex; private int overlayTotal; private int regionIndex; private int regionTotal; private Map map; public String toString() { String tmp =""; tmp += "\tOverlayIndex="+overlayIndex+", OverlayTotal="+overlayTotal+"\n"; tmp += "\tRegionIndex="+regionIndex+", RegionTotal="+regionTotal+"\n"; tmp += "\tPath="+path+", Object="+object+"\n"; tmp += "\n\tAttributes: "+map.size()+"\n"; Iterator it = map.keySet().iterator(); int index = 0; while (it.hasNext()) { Object key = it.next(); Object value = map.get(key); tmp += "\t\t"+index+"\tKey="+key.toString()+"\tValue="+value.toString()+"\n"; index++; } return tmp; } public PlotterState() { this(null); } public PlotterState(Object object) { this(object, ""); } public PlotterState(Object object, String path) { this.object = object; this.path = path; map = new Hashtable(); overlayIndex = -1; overlayTotal = -1; regionIndex = -1; regionTotal = -1; } public void setObject(Object obj) { object = obj; } public Object getObject() { return object; } public void setObjectPath(String p) { path = p; } public String getObjectPath() { if (path == null) path = ""; return path; } public void setOverlayIndex(int n) { overlayIndex = n; } public void setOverlayTotal(int n) { overlayTotal = n; } public int getOverlayIndex() { return overlayIndex; } public int getOverlayTotal() { return overlayTotal; } public void setRegionIndex(int n) { regionIndex = n; } public void setRegionTotal(int n) { regionTotal = n; } public int getRegionIndex() { return regionIndex; } public int getRegionTotal() { return regionTotal; } public void setAttribute(String key, String value) { map.put(key, value); } public String getAttribute(String key) { return (String) map.get(key); } public int getAttributeIndex(String key) { Iterator it = map.keySet().iterator(); int i = 0; int index = -2; String value = null; while (it.hasNext()) { value = (String) it.next(); if (key.equals(value)) { index = i; break; } i++; } return i; } public String getAttribute(int index) { Iterator it = map.values().iterator(); int i = 0; Object value = null; Object tmp = null; while (it.hasNext()) { value = it.next(); if (i == index) { value = tmp; break; } i++; } return (String) value; } public Map getAttributes() { return map; } public void clear() { object = null; path = null; overlayIndex = -1; overlayTotal = -1; regionIndex = -1; regionTotal = -1; map.clear(); } }