From: Geert J. <gj...@us...> - 2002-09-03 19:40:57
|
Update of /cvsroot/woc/woc/src/woc/wocjava/source/com/egonw/woc/wml In directory usw-pr-cvs1:/tmp/cvs-serv23171/woc/wocjava/source/com/egonw/woc/wml Added Files: CMLHandler.java TMAssoc.java TopicMap.java XLANG.java XNAME.java XNODE.java Log Message: --- NEW FILE: CMLHandler.java --- package com.egonw.woc.wml; import java.util.*; import org.openscience.dadml.*; import com.egonw.woc.*; import com.egonw.woc.exception.*; import com.egonw.woc.wml.*; import com.egonw.woc.util.*; import org.xml.sax.*; import org.xml.sax.helpers.*; public class CMLHandler extends DefaultHandler { private final int UNKNOWN = -1; private final int ANY = -2; private final int STRING = -3; private final int FLOAT = -4; private final int MOLECULE = -5; private int CurrentElement; private String TITLE = ""; private String value = ""; XItem item; public CMLHandler () { item = new XItem(); }; public XItem updateItem (XItem i) { if (item.contains(Item.BRUTO)) i.add(Item.BRUTO, (Bruto)item.get(Item.BRUTO)); if (item.contains(Item.MASS)) i.add(Item.MASS, (String)item.get(Item.MASS)); if (item.contains(Item.BOILINGPOINT)) i.add(Item.BOILINGPOINT, (String)item.get(Item.BOILINGPOINT)); if (item.contains(Item.MELTINGPOINT)) i.add(Item.MELTINGPOINT, (String)item.get(Item.MELTINGPOINT)); if (item.contains(XItem.XFLASH)) i.add(XItem.XFLASH, (String)item.get(XItem.XFLASH)); if (item.contains(Item.RHO)) i.add(Item.RHO, (String)item.get(Item.RHO)); if (item.contains(Item.DIPOOL)) i.add(Item.DIPOOL, (String)item.get(Item.DIPOOL)); if (item.contains(XItem.XPKA)) i.add(XItem.XPKA, (String)item.get(XItem.XPKA)); if (item.contains(XItem.XPKB)) i.add(XItem.XPKB, (String)item.get(XItem.XPKB)); return i; } public void startDocument () { item = new XItem(); } public void endDocument () {} public void startElement (String name, AttributeList atts) { setCurrentElement(name); switch (CurrentElement) { case ANY : break; case FLOAT : for (int i = 0; i < atts.getLength(); i++) { if (atts.getName(i).equals("title")) TITLE = atts.getValue(i); } break; case STRING : for (int i = 0; i < atts.getLength(); i++) { if (atts.getName(i).equals("title")) TITLE = atts.getValue(i); } break; } } public void endElement (String name) { setCurrentElement(name); switch (CurrentElement) { case ANY : break; case STRING : if (TITLE.equals("Stoichiometry")) { item.add(Item.BRUTO, new Bruto(value)); } TITLE = ""; break; case FLOAT : if (TITLE.equals("Density")) { item.add(Item.DIPOOL, value); } else if (TITLE.equals("MeltingPoint")) { item.add(Item.MELTINGPOINT, value); } else if (TITLE.equals("BoilingPoint")) { item.add(Item.BOILINGPOINT, value); } else if (TITLE.equals("FlashPoint")) { item.add(XItem.XFLASH, value); } else if (TITLE.equals("Density")) { item.add(Item.RHO, value); } else if (TITLE.equals("pKa")) { item.add(XItem.XPKA, value); } else if (TITLE.equals("pKb")) { item.add(XItem.XPKB, value); } TITLE = ""; break; } } public void characters (char ch[], int start, int length) { switch (CurrentElement) { case ANY : break; case FLOAT : if (TITLE.length() > 0) value = toString(ch, start, length).trim(); break; case STRING : if (TITLE.length() > 0) value = toString(ch, start, length).trim(); break; } } private void setCurrentElement(String name) { if (name.equals("molecule")) { CurrentElement = MOLECULE; } else if (name.equals("float")) { CurrentElement = FLOAT; } else if (name.equals("string")) { CurrentElement = STRING; } else { CurrentElement = UNKNOWN; }; } private String toString(char ch[], int start, int length) { StringBuffer x = new StringBuffer(); for (int i =0; i < length; i++) x.append(ch[start+i]); return x.toString(); } } --- NEW FILE: TMAssoc.java --- package com.egonw.woc.wml; import java.util.*; public class TMAssoc { private Vector rls; private String name; public TMAssoc () { rls = new Vector(2,1); } public void setName(String name) { this.name = name; } public String getName() { return this.name; } public void addRL(String rl) { rls.addElement(rl); } public Enumeration getRLs() { return rls.elements(); } } --- NEW FILE: TopicMap.java --- package com.egonw.woc.wml; import java.util.*; public class TopicMap { private Vector assocs; private String currentAssoc; public TopicMap () { assocs = new Vector(3,1); } public void addAssocRL(TMAssoc assoc) { assocs.addElement(assoc); } public Enumeration getAssocs() { return assocs.elements(); } } --- NEW FILE: XLANG.java --- package com.egonw.woc.wml; import java.util.*; public class XLANG { private String id; private String lw; private String value; public XLANG() { id = ""; value = ""; } public String getID() { return this.id; } public void setID(String c) { this.id = c; } public String getLIDWOORD() { return this.lw; } public void setLIDWOORD(String c) { this.lw = c; } public String getValue() { return this.value; } public void setValue(String s) { this.value = s; } } --- NEW FILE: XNAME.java --- package com.egonw.woc.wml; import java.util.*; public class XNAME { private String klasse; private Vector langs; public XNAME() { klasse = ""; langs = new Vector(); } public String getCLASS() { return this.klasse; } public void setCLASS(String c) { this.klasse = c; } public void addLANG(XLANG l) { langs.addElement(l); } public Enumeration elements() { return langs.elements(); } public String getName(String lang) { String r = ""; Enumeration names = elements(); while (names.hasMoreElements()) { XLANG l = (XLANG)(names.nextElement()); if (l.getID().equals(lang)) { r = l.getValue(); } } return r; } } --- NEW FILE: XNODE.java --- package com.egonw.woc.wml; import java.util.*; public class XNODE { private String cdata; private Hashtable atts; public XNODE() { cdata = ""; atts = new Hashtable(); } public boolean containsATT(String s) { return atts.containsKey(s); } public String getATT(String s) { return (String)atts.get(s); } public void setATT(String s, String t) { atts.put(s,t); } public void setCDATA(String s) { cdata = s; } public String getCDATA() { return cdata; } public String toString() { return "XNODE(" + cdata + "): " + atts.toString(); } } |