package com.baselet.element.elementnew.plot.parser;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map.Entry;
import com.baselet.diagram.draw.DrawHandler;
public class ParserResult {
private DrawHandler drawer;
private final ArrayList<PlotState> plotStateList;
// These are few variables which influence the plotgrid
private final HashMap<String, KeyValue> plotGridValues;
public ParserResult() {
plotStateList = new ArrayList<PlotState>();
plotGridValues = new HashMap<String, KeyValue>();
}
public void setDrawer(DrawHandler drawer) {
this.drawer = drawer;
}
public DrawHandler getDrawer() {
return drawer;
}
public ArrayList<PlotState> getPlotStateList() {
return plotStateList;
}
public String getPlotGridValue(String key, String defaultValue) {
KeyValue keyValue = plotGridValues.get(key);
if (keyValue != null) {
keyValue.setUsed(true);
}
if (keyValue == null || keyValue.getValue().equals(PlotConstants.DEFAULT_VALUE)) {
return defaultValue;
}
else {
return keyValue.getValue();
}
}
protected void addPlotState(PlotState plotState) {
plotStateList.add(plotState);
}
protected void addPlotGridValue(String key, KeyValue value) {
plotGridValues.put(key, value);
}
protected void removePlotGridValue(String key) {
plotGridValues.remove(key);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder("\n-----------------------------\n");
sb.append("--------PARSER CONTENT-------\n");
sb.append("-----------------------------\n\n");
sb.append("##########PlotStates#########\n\n");
for (PlotState plotState : plotStateList) {
sb.append(plotState.toString()).append("\n");
}
sb.append("#########PlotGridValues########\n\n");
for (Entry<String, KeyValue> e : plotGridValues.entrySet()) {
sb.append("\t").append(e.getKey()).append(" -> ").append(e.getValue()).append("\n");
}
sb.append("\n-----------------------------\n");
sb.append("-----------------------------\n");
return sb.toString();
}
}