package com.plectix.simulator.io.xml;
import javax.xml.stream.XMLStreamException;
import com.plectix.simulator.staticanalysis.abstracting.AbstractAgent;
import com.plectix.simulator.staticanalysis.subviews.AllSubViewsOfAllAgentsInterface;
import com.plectix.simulator.staticanalysis.subviews.storage.SubViewsInterface;
import com.plectix.simulator.util.NameDictionary;
class SubviewsXMLWriter {
private final AllSubViewsOfAllAgentsInterface subViewsInstance;
public SubviewsXMLWriter(AllSubViewsOfAllAgentsInterface subViews) {
this.subViewsInstance = subViews;
}
public final void write(OurXMLWriter writer) throws XMLStreamException {
// TODO Auto-generated method stub
writer.writeStartElement("Reachables");
writer.writeAttribute("Name", "Subviews");
for (String agentType : subViewsInstance.getAgentNameToAgent().keySet()) {
if (NameDictionary.isDefaultAgentName(agentType))
continue;
for (SubViewsInterface subViews : this.subViewsInstance.getSubViews().get(agentType)) {
// Element set = doc.createElement("Set");
writer.writeStartElement("Set");
writer.writeAttribute("Agent", agentType);
// Element tag = doc.createElement("Tag");
writer.writeStartElement("Tag");
String data = "Agent: " + agentType + " ; Sites: ";
String sites = new String("");
for (String siteName : subViews.getSubViewClass().getSitesNames()) {
if (sites.length() != 0)
sites += ",";
sites += siteName;
}
data += sites + " ";
writer.writeAttribute("Data", data);
// set.appendChild(tag);
writer.writeEndElement();
for (AbstractAgent agent : subViews.getAllSubViews()) {
writer.writeStartElement("Entry");
writer.writeAttribute("Data", agent.toStringForXML());
writer.writeEndElement();
}
writer.writeEndElement();
}
}
writer.writeEndElement();
}
}