[3c159d0] | 1 | // WSDL generated classes |
---|
| 2 | import edu.isi.www.fedd_types.*; |
---|
| 3 | import edu.isi.www.fedd_wsdl.*; |
---|
| 4 | import edu.isi.www.topdl.*; |
---|
| 5 | |
---|
| 6 | import java.io.*; |
---|
| 7 | |
---|
| 8 | import java.util.*; |
---|
| 9 | |
---|
| 10 | import javax.xml.parsers.*; |
---|
| 11 | |
---|
| 12 | import org.xml.sax.*; |
---|
| 13 | import org.xml.sax.helpers.*; |
---|
| 14 | |
---|
| 15 | class ParseTopdl { |
---|
| 16 | /** Parser instance */ |
---|
| 17 | protected XMLReader xr; |
---|
| 18 | |
---|
| 19 | protected class TopdlHandler extends DefaultHandler { |
---|
| 20 | protected String topName; |
---|
| 21 | protected TopologyType topo; |
---|
| 22 | protected ElementType element; |
---|
| 23 | protected ComputerType comp; |
---|
| 24 | protected TestbedType tb; |
---|
| 25 | protected SegmentType seg; |
---|
| 26 | protected OtherType other; |
---|
| 27 | |
---|
| 28 | protected String name; |
---|
| 29 | |
---|
| 30 | protected String type; |
---|
| 31 | |
---|
| 32 | protected String aname; |
---|
| 33 | protected String aval; |
---|
| 34 | |
---|
| 35 | protected Vector<ElementType> elements; |
---|
| 36 | protected Vector<SubstrateType> subs; |
---|
| 37 | protected Vector<AttributeType> attrs; |
---|
| 38 | protected Vector<CpuType> cpus; |
---|
| 39 | |
---|
| 40 | protected char[] c; |
---|
| 41 | |
---|
| 42 | TopdlHandler(String top) { |
---|
| 43 | topName = top; |
---|
| 44 | topo = null; |
---|
| 45 | element = null; |
---|
| 46 | comp = null; |
---|
| 47 | tb = null; |
---|
| 48 | seg = null; |
---|
| 49 | other = null; |
---|
| 50 | |
---|
| 51 | type = null; |
---|
| 52 | name = aname = aval = null; |
---|
| 53 | |
---|
| 54 | elements = new Vector<ElementType>(); |
---|
| 55 | subs = new Vector<SubstrateType>(); |
---|
| 56 | attrs = new Vector<AttributeType>(); |
---|
| 57 | c = new char[0]; |
---|
| 58 | } |
---|
| 59 | |
---|
| 60 | public void startElement(String u, String l, String qn, Attributes a) |
---|
| 61 | throws SAXException { |
---|
| 62 | |
---|
| 63 | c = new char[0]; |
---|
| 64 | } |
---|
| 65 | |
---|
| 66 | public void endElement(String u, String l, String qn) |
---|
| 67 | throws SAXException { |
---|
| 68 | |
---|
| 69 | if (qn.equals(topName)) { |
---|
| 70 | topo = new TopologyType("1.0", |
---|
| 71 | subs.toArray(new SubstrateType[subs.size()]), |
---|
| 72 | elements.toArray(new ElementType[elements.size()]), |
---|
| 73 | attrs.toArray(new AttributeType[attrs.size()])); |
---|
| 74 | elements = new Vector<ElementType>(); |
---|
| 75 | subs = new Vector<SubstrateType>(); |
---|
| 76 | attrs = new Vector<AttributeType>(); |
---|
| 77 | } |
---|
| 78 | else if (qn.equals("element")) { |
---|
| 79 | elements.add(new ElementType(comp, tb, seg, other)); |
---|
| 80 | comp = null; |
---|
| 81 | tb = null; |
---|
| 82 | seg = null; |
---|
| 83 | other = null; |
---|
| 84 | } |
---|
| 85 | else if (qn.equals("computer")) { |
---|
| 86 | comp = new ComputerType(name, |
---|
| 87 | cpus.toArray(new CpuType[cpus.size()]), |
---|
| 88 | null, null, null, null, null); |
---|
| 89 | name = null; |
---|
| 90 | cpus = new Vector<CpuType>(); |
---|
| 91 | } |
---|
| 92 | else if (qn.equals("testbed")) { |
---|
| 93 | tb = new TestbedType(null, null, null, null); |
---|
| 94 | } |
---|
| 95 | else if (qn.equals("segment")) { |
---|
| 96 | seg = new SegmentType(null, null, null, null, null); |
---|
| 97 | } |
---|
| 98 | else if (qn.equals("other")) { |
---|
| 99 | other = new OtherType(null, null); |
---|
| 100 | } |
---|
| 101 | else if (qn.equals("cpu")) { |
---|
| 102 | cpus.add(new CpuType(type, |
---|
| 103 | attrs.toArray(new AttributeType[attrs.size()]), 1)); |
---|
| 104 | type = null; |
---|
| 105 | attrs = new Vector<AttributeType>(); |
---|
| 106 | } |
---|
| 107 | else if (qn.equals("type")) { type = new String(c); } |
---|
| 108 | else if (qn.equals("attribute")) { |
---|
| 109 | if ( aname != null && aval != null ) { |
---|
| 110 | attrs.add(new AttributeType(aname, aval)); |
---|
| 111 | aname = aval = null; |
---|
| 112 | } |
---|
| 113 | else { aname = new String(c); } |
---|
| 114 | } |
---|
| 115 | else if ( qn.equals("value")) { aval = new String(c); } |
---|
| 116 | else if ( qn.equals("name")) { name = new String(c); } |
---|
| 117 | |
---|
| 118 | c = new char[0]; |
---|
| 119 | } |
---|
| 120 | } |
---|
| 121 | |
---|
| 122 | public ParseTopdl(InputStream s) |
---|
| 123 | throws IOException, SAXException, ParserConfigurationException { |
---|
| 124 | xr = SAXParserFactory.newInstance().newSAXParser().getXMLReader(); |
---|
| 125 | |
---|
| 126 | xr.parse(new InputSource(s)); |
---|
| 127 | } |
---|
| 128 | |
---|
| 129 | |
---|
| 130 | } |
---|