1 /* $Id: MapXmlVisitor.java 1 2010-02-24 13:03:05Z haidw $ */
\r
2 package dol.visitor.xml;
\r
4 import dol.datamodel.XmlTag;
\r
5 import dol.datamodel.mapping.CommunicationBinding;
\r
6 import dol.datamodel.mapping.ComputationBinding;
\r
7 import dol.datamodel.mapping.Configuration;
\r
8 import dol.datamodel.mapping.Mapping;
\r
9 import dol.datamodel.mapping.Schedule;
\r
10 import dol.datamodel.mapping.ScheduleEntry;
\r
11 import dol.datamodel.mapping.SchedulingPolicy;
\r
12 import dol.datamodel.mapping.Variable;
\r
13 import dol.util.CodePrintString;
\r
14 import dol.visitor.MapVisitor;
\r
16 public class MapXmlVisitor extends MapVisitor {
\r
21 * @param stringBuffer buffer where the result is stored
\r
23 public MapXmlVisitor(StringBuffer stringBuffer) {
\r
24 _ps = new CodePrintString(stringBuffer);
\r
29 * @param x mapping that needs to be rendered.
\r
31 public void visitComponent(Mapping x) {
\r
32 String xmlns = dol.util.SchemaLocation.
\r
33 getMappingNamespace();
\r
34 String xsiLocation = dol.util.SchemaLocation.
\r
35 getMappingSchemaLocation();
\r
37 _ps.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
\r
38 _ps.printOpeningTag(_xt.getMappingTag());
\r
39 _ps.println(" xmlns=\"" + xmlns
\r
40 + "\" xmlns:xsi=\"http://www.w3.org/2001/"
\r
41 + "XMLSchema-instance\""
\r
42 + System.getProperty("line.separator")
\r
43 + " xsi:schemaLocation=\""
\r
44 + xmlns + " " + xsiLocation + "\" name=\""
\r
45 + x.getName() + "\">");
\r
48 for(Variable v : x.getVarList()) {
\r
52 // Visit computation bindings
\r
53 for(ComputationBinding b : x.getCompBindList()) {
\r
57 // Visit communication bindings
\r
58 for(CommunicationBinding b : x.getCommBindList()) {
\r
63 for(Schedule s : x.getScheduleList()) {
\r
67 _ps.printClosingTag(_xt.getMappingTag());
\r
73 public void visitComponent(ComputationBinding x) {
\r
74 _ps.printOpeningTag(_xt.getBindingTag());
\r
75 _ps.println(" name=\"" + x.getName()
\r
76 + "\" xsi:type=\"computation\">");
\r
80 String s = "<" + _xt.getProcessTag()
\r
81 + " name=\"" + x.getProcess().getName() + "\"/>";
\r
86 s = "<" + _xt.getProcessorTag()
\r
87 + " name=\"" + x.getProcessor().getName() + "\"/>";
\r
89 _ps.printClosingTag(_xt.getBindingTag());
\r
95 public void visitComponent(CommunicationBinding x) {
\r
96 _ps.printOpeningTag(_xt.getBindingTag());
\r
97 _ps.println(" name=\"" + x.getName()
\r
98 + "\" xsi:type=\"communication\">");
\r
102 String s = "<" + _xt.getSWChannelTag()
\r
103 + " name=\"" + x.getChannel().getName() + "\"/>";
\r
108 s = "<" + _xt.getWritePathTag()
\r
109 + " name=\"" + x.getWritePath().getName() + "\"/>";
\r
114 s = "<" + _xt.getReadPathTag()
\r
115 + " name=\"" + x.getReadPath().getName() + "\"/>";
\r
118 _ps.printClosingTag(_xt.getBindingTag());
\r
124 public void visitComponent(Schedule x) {
\r
125 _ps.printOpeningTag(_xt.getScheduleTag());
\r
126 _ps.println(" name=\"" + x.getName()
\r
128 + SchedulingPolicy.toString(x.getSchedPolicy()) + "\">");
\r
132 String s = "<" + _xt.getResourceTag()
\r
133 + " name=\"" + x.getResource().getName() + "\"/>";
\r
136 // Scheduler table entries
\r
137 for (ScheduleEntry p : x.getEntryList()) {
\r
141 // Configuration of schedule
\r
142 for (Configuration c : x.getCfgList()) {
\r
146 _ps.printClosingTag(_xt.getScheduleTag());
\r
152 public void visitComponent(ScheduleEntry x) {
\r
153 if (x.getCfgList().size() == 0) {
\r
154 _ps.printPrefixln("<" + _xt.getOriginTag() + " name=\""
\r
155 + x.getName() + "\"/>");
\r
157 _ps.printOpeningTag(_xt.getOriginTag());
\r
158 _ps.println(" name=\"" + x.getName() + "\">");
\r
160 // Configuration of the scheduler entry
\r
161 for (Configuration c : x.getCfgList()) {
\r
165 _ps.printClosingTag(_xt.getOriginTag());
\r
172 public void visitComponent(Variable x) {
\r
174 String s = "<" + _xt.getVariableTag()
\r
175 + " name=\"" + x.getName() + "\""
\r
176 + " value=\"" + Integer.toString(x.getValue()) + "\"/>";
\r
183 public void visitComponent(Configuration x) {
\r
185 String s = "<" + _xt.getConfigurationTag()
\r
186 + " name=\"" + x.getName() + "\""
\r
187 + " value=\"" + x.getValue() + "\"/>";
\r
191 protected CodePrintString _ps = null;
\r
192 protected XmlTag _xt = XmlTag.getInstance();
\r