package kr.ac.snu.selab.soot.analyzer.pfc;
import java.io.IOException;
import kr.ac.snu.selab.soot.analyzer.AnalysisResult;
import kr.ac.snu.selab.soot.graph.MyNode;
import kr.ac.snu.selab.soot.graph.Path;
import kr.ac.snu.selab.soot.util.XMLWriter;
public class PathFromCallerAnalysisResult extends AnalysisResult {
@Override
public void writeXML(XMLWriter writer) {
try {
writer.startElement("AnalysisResult");
writer.simpleElement("AbstractType", getAbstractTypeName());
writer.startElement("CallerList");
for (MyNode aNode : callerList) {
aNode.writeXML(writer);
}
writer.endElement();
writer.startElement("ObjectFlowPathSet");
for (MyNode aNode : callerList) {
String key = aNode.toString();
if (referenceFlowPathMap.containsKey(key)) {
writer.startElement("ObjectFlowPathPerCaller");
writer.startElement("Caller");
aNode.writeXML(writer);
writer.endElement();
writer.startElement("PathList");
for (Path<MyNode> aPath : referenceFlowPathMap.get(key)) {
aPath.writeXML(writer);
}
writer.endElement();
writer.endElement();
}
}
writer.endElement();
writer.endElement();
} catch (IOException e) {
e.printStackTrace();
}
}
}