source: axis/ParseTopdl.java @ 3c159d0

axis_examplecompt_changesinfo-ops
Last change on this file since 3c159d0 was 3c159d0, checked in by Ted Faber <faber@…>, 13 years ago

Topdl parser (not complete)

  • Property mode set to 100644
File size: 3.1 KB
Line 
1// WSDL generated classes
2import edu.isi.www.fedd_types.*;
3import edu.isi.www.fedd_wsdl.*;
4import edu.isi.www.topdl.*;
5
6import java.io.*;
7
8import java.util.*;
9
10import javax.xml.parsers.*;
11
12import org.xml.sax.*;
13import org.xml.sax.helpers.*;
14
15class 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}
Note: See TracBrowser for help on using the repository browser.