package net.ms.designer.editors.componentdetail.xmlpalse;
import java.io.*;
import java.util.*;
import javax.xml.parsers.*;
import net.ms.designer.core.MsProject;
import org.w3c.dom.*;
public class ReadEnumXML {
List Enum_Vector = new ArrayList();
String enumName;
List CompList = new ArrayList();
int type;
public List readXMLFile(String inFile,int type) throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException pce) {
System.err.println(pce);
System.exit(1);
}
Document doc = null;
try {
doc = db.parse(inFile);
} catch (DOMException dom) {
System.err.println(dom.getMessage());
System.exit(1);
} catch (IOException ioe) {
System.err.println(ioe);
System.exit(1);
}
Element root = doc.getDocumentElement();
this.type = type;
if(type == 0)
{
NodeList enumsName = root.getElementsByTagName("enumeration");
if(enumsName.getLength() >0)
{
for(int i = 0 ; i < enumsName.getLength(); i++)
{
MsProject ceecProject = new MsProject();
// Enmu enum = new Enmu();
Element enumName = (Element)enumsName.item(i);
NodeList one = enumName.getElementsByTagName("name");
Element contant = (Element)one.item(0);
Text t = (Text) contant.getFirstChild();
// enum.setFullName(t.getNodeValue());
ceecProject.setEnumCompName(t.getNodeValue());
//System.out.println(t.getNodeValue());
NodeList two = enumName.getElementsByTagName("desc");
if(two.getLength()!=0)
{
Element contant1 = (Element)two.item(0);
Text t1 = (Text)contant1.getFirstChild();
// enum.setDecs(t1.getNodeValue());
ceecProject.setDesc(t1.getNodeValue());
//System.out.println(t1.getNodeValue());
}
Enum_Vector.add(ceecProject);
}
}
return Enum_Vector;
}
//���typeΪ1����Ϊ���
if(type == 1)
{
NodeList CompName = root.getElementsByTagName("component");
if(CompName.getLength()>0)
{
for(int j=0;j<CompName.getLength();j++)
{
MsProject ceecProject1 = new MsProject();
Element id = (Element)CompName.item(j);
NodeList name = id.getElementsByTagName("name");
Element contant3 = (Element)name.item(0);
Text compt = (Text) contant3.getFirstChild();
ceecProject1.setComponentName(compt.getNodeValue());
NodeList idxml = id.getElementsByTagName("path");
Element contant4 = (Element)idxml.item(0);
Text compt1 = (Text)contant4.getFirstChild();
ceecProject1.setComponentID(compt1.getNodeValue());
Enum_Vector.add(ceecProject1);
}
return Enum_Vector;
}
}
//���typeΪ2����Ϊ�ֶ���Ϣ
if(type == 2)
{
NodeList CompAll = root.getElementsByTagName("fields");
if(CompAll.getLength()>0)
{
for(int k = 0;k<CompAll.getLength();k++)
{
Element fields = (Element)CompAll.item(k);
NodeList field = fields.getElementsByTagName("field");
if(field.getLength()>0)
{
for(int k1=0;k1<field.getLength();k1++)
{
MsProject ceecProject2 = new MsProject();
Element fieldelement = (Element)field.item(k1);
NodeList subfield = fieldelement.getElementsByTagName("isuserfield");
Element contant5 = (Element)subfield.item(0);
Text isuserField = (Text)contant5.getFirstChild();
if(isuserField.getNodeValue().equals("1"))
{
NodeList subfield1 = fieldelement.getElementsByTagName("name");
Element contant6 = (Element)subfield1.item(0);
Text fieldname = (Text)contant6.getFirstChild();
ceecProject2.setFieldName(fieldname.getNodeValue());
NodeList subfield1_fieldtype = fieldelement.getElementsByTagName("type");
Element contant7 = (Element)subfield1_fieldtype.item(0);
Text fieldtype = (Text)contant7.getFirstChild();
ceecProject2.setFieldType(fieldtype.getNodeValue());
NodeList subfield1_fieldListable = fieldelement.getElementsByTagName("listable");
Element contant8 = (Element)subfield1_fieldListable.item(0);
Text fieldListable = (Text)contant8.getFirstChild();
ceecProject2.setFieldListable(fieldListable.getNodeValue());
NodeList subfield1_fieldSearchable = fieldelement.getElementsByTagName("searchable");
Element contant9 = (Element)subfield1_fieldSearchable.item(0);
Text fieldSearchable = (Text)contant9.getFirstChild();
ceecProject2.setFieldSearchable(fieldSearchable.getNodeValue());
CompList.add(ceecProject2);
}
}
return CompList;
}
}
}
}
return Enum_Vector;
}
}