SamEldin.com\CurrentProjects\XML_ParserProject\src\java\xml_sax_parsers\SAXParse2MyFirstBean.java |
1
2
3
4
5
6 package xml_sax_parsers;
7
8 import java.io.*;
9 import java.util.*;
10 import java.util.ArrayList;
11 import java.util.StringTokenizer;
12 import java.text.*;
13 import java.util.*;
14 import java.lang.*;
15
16 import org.xml.sax.*;
17 import org.xml.sax.helpers.DefaultHandler;
18 import javax.xml.parsers.SAXParserFactory;
19 import javax.xml.parsers.ParserConfigurationException;
20 import javax.xml.parsers.SAXParser;
21
22 import java.lang.reflect.*;
23 import java.lang.Class;
24 import java.math.BigDecimal;
25 import java.math.BigInteger;
26 import java.util.Calendar;
27
28 import constants.Constants;
29 import util.PropertyManager;
30 import sample_data_objects.*;
31 import xml_tag_properties.*;
32
33
34
35 @author
36
37 public class SAXParse2MyFirstBean extends DefaultHandler
38 {
39 SAXParseDataObject classSAXParseDataObjectHandle = null;
40 PrimitiveFieldTypeDataObject classPrimitiveFieldTypeDataObjectHandle = null;
41
42 public SAXParse2MyFirstBean()
43 {
44 try
45 {
46 File myXMLfile = new File(Constants.TEST_FOLDER_PATH + Constants.MY_FIRST_BEAN_XML_FILE_NAME);
47 if (myXMLfile.exists())
48 {
49 SAXParserFactory sAXParserFactoryHandler = SAXParserFactory.newInstance();
50 SAXParser sAXParserHandler = sAXParserFactoryHandler.newSAXParser();
51 sAXParserHandler.parse(myXMLfile, this);
52 }
53 else
54 {
55 System.out.println("File not found!");
56 }
57 }
58 catch (Exception e)
59 {
60 e.printStackTrace();
61 }
62 }
63
64
65
66 public int getLabelNameIndex(String fieldLabel)
67 {
68 if(fieldLabel.equalsIgnoreCase(Constants.CLASS_NAME_LABEL))
69 return(Constants.CLASS_NAME_LABEL_INDEX);
70 if(fieldLabel.equalsIgnoreCase(Constants.FIELD_LABEL))
71 return(Constants.FIELD_LABEL_INDEX);
72 if(fieldLabel.equalsIgnoreCase(Constants.RETUN_VALUE_LABEL))
73 return(Constants.RETUN_VALUE_LABEL_INDEX);
74 return(Constants.ERROR_RUN);
75 }
76
77
78
79 public int getTagNameIndex(String qName)
80 {
81 if(qName.equalsIgnoreCase(Constants.ROOT_TAG_NAME))
82 return(Constants.ROOT_TAG_NAME_INDEX);
83 if(qName.equalsIgnoreCase(Constants.DATA_OBJECT_TAG_NAME))
84 return(Constants.DATA_OBJECT_TAG_NAME_INDEX);
85 if(qName.equalsIgnoreCase(Constants.FIELD_TAG_NAME))
86 return(Constants.FIELD_TAG_NAME_INDEX);
87 if(qName.equalsIgnoreCase(Constants.RETURN_TYPE_TAG_NAME))
88 return(Constants.RETURN_TYPE_TAG_NAME_INDEX);
89 if(qName.equalsIgnoreCase(Constants.ERROR_TAG_NAME))
90 return(Constants.ERROR_TAG_NAME_INDEX);
91 return(Constants.ERROR_RUN);
92 }
93
94
95
96 public void startElement(String uri, String localName, String qName,
97 Attributes attrs) throws SAXParseException,SAXException
98 {
99 int tagIndex = getTagNameIndex(qName);
100 switch(tagIndex)
101 {
102 case Constants.ROOT_TAG_NAME_INDEX:
103
104 classSAXParseDataObjectHandle = new SAXParseDataObject();
105
106 ArrayList <PrimitiveFieldTypeDataObject> primitiveFieldTypeDataObjectArryList = new ArrayList <PrimitiveFieldTypeDataObject>();
107 classSAXParseDataObjectHandle.primitiveFieldTypeDataObjectArryList = primitiveFieldTypeDataObjectArryList;
108 break;
109 case Constants.DATA_OBJECT_TAG_NAME_INDEX:
110 if(classSAXParseDataObjectHandle != null)
111 {
112 String className = "";
113 int length = attrs.getLength();
114
115 for (int count = 0; count < length; count++)
116 {
117
118 String classLabel = attrs.getQName(count);
119 if(classLabel.equalsIgnoreCase(Constants.CLASS_NAME_LABEL))
120 {
121 className = attrs.getValue(count);
122 break;
123 }
124 }
125
126 if(className.length() > 1)
127 classSAXParseDataObjectHandle.className = className;
128 }
129 break;
130 case Constants.FIELD_TAG_NAME_INDEX:
131 if(classSAXParseDataObjectHandle != null)
132 {
133
134 classPrimitiveFieldTypeDataObjectHandle = new PrimitiveFieldTypeDataObject();
135 String fieldName = "";
136 int length = attrs.getLength();
137
138 for (int count = 0; count < length; count++)
139 {
140
141 String fieldLabel = attrs.getQName(count);
142 if(fieldLabel.equalsIgnoreCase(Constants.FIELD_LABEL))
143 {
144 fieldName = attrs.getValue(count);
145 break;
146 }
147 }
148 if(fieldName.length() > 1)
149 classPrimitiveFieldTypeDataObjectHandle.setFieldName(fieldName);
150 }
151 break;
152 case Constants.RETURN_TYPE_TAG_NAME_INDEX:
153
154 if(classPrimitiveFieldTypeDataObjectHandle != null)
155 if(classPrimitiveFieldTypeDataObjectHandle != null)
156 {
157 String returnType = "";
158 int length = attrs.getLength();
159 for (int count = 0; count < length; count++)
160 {
161
162 String returnLabel = attrs.getQName(count);
163 String returnValue = attrs.getValue(count);
164 if( (returnLabel.length() >= 1) && (returnValue.length() >= 1))
165 {
166 int returnIntValue = 0;
167 try
168 {
169 returnIntValue = Integer.parseInt(returnValue);
170 }
171 catch(NumberFormatException e)
172 {
173 returnIntValue = Constants.ERROR_RUN;
174 }
175 classPrimitiveFieldTypeDataObjectHandle.setFieldIndex(returnIntValue);
176 classPrimitiveFieldTypeDataObjectHandle.setReturnLabel(returnLabel);
177 break;
178 }
179 }
180 }
181 break;
182 default:
183 }
184 }
185
186
187
188
189 public void endElement(java.lang.String uri,
190 java.lang.String localName,
191 java.lang.String qName)
192 throws SAXException
193 {
194 int tagIndex = getTagNameIndex(qName);
195 switch(tagIndex)
196 {
197 case Constants.ROOT_TAG_NAME_INDEX:
198
199 if(classSAXParseDataObjectHandle != null)
200 {
201
202 FieldsParser localFieldsParser = new FieldsParser();
203 Object localObject = localFieldsParser.getDataObject(classSAXParseDataObjectHandle);
204 }
205 break;
206 case Constants.DATA_OBJECT_TAG_NAME_INDEX:
207 if(classSAXParseDataObjectHandle != null)
208 {
209 }
210 break;
211 case Constants.FIELD_TAG_NAME_INDEX:
212 if(classSAXParseDataObjectHandle != null)
213 {
214
215 classSAXParseDataObjectHandle.primitiveFieldTypeDataObjectArryList.add(classPrimitiveFieldTypeDataObjectHandle);
216
217 classPrimitiveFieldTypeDataObjectHandle = null;
218 }
219 break;
220 case Constants.RETURN_TYPE_TAG_NAME_INDEX:
221
222 if(classPrimitiveFieldTypeDataObjectHandle != null)
223 {
224 }
225 break;
226 default:
227 }
228 }
229
230
231
232
233 public void characters( char ch[], int start, int length )
234 {
235 char [] localCH = ch;
236 int localStart = start;
237 int localLength = length;
238
239 String str = new String (ch, start, length);
240 classPrimitiveFieldTypeDataObjectHandle.setFieldValue(str);
241 }
242
243
244
245 public static void main (String[] args)
246 {
247 SAXParse2MyFirstBean mySAXParse2MyFirstBean = new SAXParse2MyFirstBean();
248 }
249 }
250
251