From: Egon W. <eg...@us...> - 2002-06-08 20:29:07
|
Update of /cvsroot/woc/woc/source/wocjava/source/com/egonw/woc/util In directory usw-pr-cvs1:/tmp/cvs-serv19480/util Added Files: Convert.java ConvertAble.java Enumerator.java Expander.java GroupAdder.java ItemInfo.java IupacExtender.java Markup.java Memo.java MergeItems.java Path.java RepositoryDefHandler.java TopicExpander.java Log Message: Added java source files. --- NEW FILE: Convert.java --- package com.egonw.woc.util; public class Convert { public static String charInString(String s, char one, char two) { StringBuffer result = new StringBuffer(); for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == one) { result.append(two); } else { result.append(one); } } return result.toString(); } public static String firstLetterUpperCase(String s) { StringBuffer result = new StringBuffer(); if (s.length() > 0) { if (Character.isLetter(s.charAt(0))) { String firstLetter = new String((new Character(s.charAt(0))).toString()); result.append(firstLetter.toUpperCase()); } else result.append(s.charAt(0)); for (int i = 1; i < s.length(); i++) result.append(s.charAt(i)); } return result.toString(); } public static String firstUpperCase(String s) { StringBuffer result = new StringBuffer(); s = new String(s.toLowerCase().trim()); result.append(getTillFirstLetter(s)); result.append(firstLetterUpperCase(stripTillFirstLetter(s))); return result.toString(); } public static String NAMELikeToANCHORLike(String s) { StringBuffer result = new StringBuffer(); char c; s = s.toLowerCase().trim(); for (int i=0; i < s.length(); i++) { c = s.charAt(i); if ( (int)c >= 97 && (int)c <= 122 ) { result.append(c); } else if ( (c == '1') || (c == '2') || (c == '3') || (c == '4') || (c == '5') || (c == '6') || (c == '7') || (c == '8') || (c == '9') || (c == '0') ) { result.append(c); } else if ( c == ' ' ) { result.append('_'); } else if ( c == '-' ) { result.append(c); } else {}; } return result.toString(); } public static String GROUPLikeToANCHORLike(String s) { return NAMELikeToANCHORLike(s); } public static String GROUPLikeToNAMELike(String s) { //ofwel: maak van alle _ een spatie StringBuffer result = new StringBuffer(); char c; for (int i=0; i < s.length(); i++) { c = s.charAt(i); if ( c == '_' ) { result.append(' '); } else { result.append(c); }; } return result.toString(); } public static String getTillFirstLetter(String s) { StringBuffer sb = new StringBuffer(); int i = 0; while ((i<s.length()) && (!Character.isLetter(s.charAt(i)))) { sb.append(s.charAt(i)); i++; } return sb.toString(); } public static String stripTillFirstLetter(String s) { StringBuffer sb = new StringBuffer(); int i = 0; while ((i<s.length()) && (!Character.isLetter(s.charAt(i)))) i++; while (i < s.length()) { sb.append(s.charAt(i)); i++; } return sb.toString(); } } --- NEW FILE: ConvertAble.java --- package com.egonw.woc.util; import com.egonw.util.*; import com.egonw.woc.*; import com.egonw.woc.exception.*; public interface ConvertAble { void set(WoordTable wt); void set(ReportFile rf); WoordTable convert(); String getName(); } --- NEW FILE: Enumerator.java --- package com.egonw.woc.util; import java.util.Vector; import java.util.Enumeration; import com.egonw.util.*; import com.egonw.woc.*; import com.egonw.woc.files.*; import com.egonw.woc.exception.*; import com.egonw.woc.wml.*; public final class Enumerator implements ConvertAble { private WoordTable wt; private ReportFile rf; public Enumerator() {}; public String getName() { return "Enumerator"; } public void set(WoordTable wt) { this.wt = wt; } public void set(ReportFile rf) { if (rf instanceof WocReportFile) this.rf = rf; } public WoordTable convert() { WoordTable result = new WoordTable(); if (wt != null) { Item i; char letter = ' '; int j = 1; Enumeration values = wt.elements(); while ( values.hasMoreElements() ) { i = (Item)values.nextElement(); if (letter != ((String)i.get(Item.NAME)).toLowerCase().charAt(0)) { letter = ((String)i.get(Item.NAME)).toLowerCase().charAt(0); j = 1; } else { j++; } i.add(Item.NUMBER, i); try { result.add(i); } catch (WocNotification wn) { if (this.rf != null) { ((WocReportFile)rf).reportWocNotification(wn); } } } } return result; } } --- NEW FILE: Expander.java --- package com.egonw.woc.util; import java.util.Vector; import java.util.Enumeration; import com.egonw.util.*; import com.egonw.woc.*; import com.egonw.woc.files.*; import com.egonw.woc.wml.*; import com.egonw.woc.exception.*; public final class Expander implements ConvertAble { private WoordTable wt; private ReportFile rf; public Expander() {}; public String getName() { return "Expander"; } public void set(WoordTable wt) { this.wt = wt; } public void set(ReportFile rf) { if (rf instanceof WocReportFile) this.rf = rf; } public WoordTable convert() { WoordTable result = new WoordTable(); if (wt != null) { try { result.add(wt); } catch (WocNotification wn) {}; Item i; XItem j; Enumeration values = wt.elements(); while ( values.hasMoreElements() ) { i = (Item)values.nextElement(); /** expand IUPACNAME */ if (i.contains(Item.IUPACNAME)) { j = new XItem(); j.add(XItem.XFILENAME, i.get(XItem.XFILENAME)); j.add(Item.NAME, (String)i.get(Item.IUPACNAME)); if (i.contains(Item.CHEMICAL)) { j.add(Item.CHEMICAL, new String()); } Vector zie = new Vector(); zie.addElement((String)i.get(Item.NAME)); j.add(Item.ZIE, zie); j.add(XItem.XSEEONLY, Boolean.TRUE); try { result.add(j); } catch (WocNotification wn) { if (this.rf != null) { ((WocReportFile)rf).reportWocNotification(wn); } } } /** expand TRIVIALNAMEs */ if (i.contains(Item.TRIVIALNAME)) { Vector trivnames = (Vector)i.get(Item.TRIVIALNAME); Enumeration values_two = trivnames.elements(); while (values_two.hasMoreElements()) { String trivialName = (String)values_two.nextElement(); j = new XItem(); j.add(XItem.XFILENAME, i.get(XItem.XFILENAME)); j.add(Item.NAME, trivialName); /** nieuwe vector met over te nemen (otn) triviale namen **/ Enumeration otn_values = trivnames.elements(); Vector newTrivials = new Vector(); while (otn_values.hasMoreElements()) { String waarde = (String)otn_values.nextElement(); if (!waarde.equals(trivialName) && (waarde.length() != 0)) newTrivials.addElement(waarde); } if (newTrivials.size() > 0 ) j.add(Item.TRIVIALNAME, newTrivials); if (i.contains(Item.IUPACNAME)) j.add(Item.IUPACNAME, (String)i.get(Item.IUPACNAME)); Vector zie = new Vector(); zie.addElement((String)i.get(Item.NAME)); j.add(Item.ZIE, zie); j.add(XItem.XSEEONLY, Boolean.TRUE); try { result.add(j); } catch (WocNotification wn) { if (this.rf != null) { ((WocReportFile)rf).reportWocNotification(wn); } } } } /** expand ABBREVs */ if (i.contains(XItem.XAFKORT)) { Vector trivnames = (Vector)i.get(XItem.XAFKORT); Enumeration values_two = trivnames.elements(); while (values_two.hasMoreElements()) { Object o = values_two.nextElement(); if (o instanceof String) { System.out.println(i.get(Item.NAME) + " -> AFK: " + o); } else { XNODE trivialName = (XNODE)o; j = new XItem(); j.add(XItem.XFILENAME, i.get(XItem.XFILENAME)); j.add(Item.NAME, (String)trivialName.getCDATA()); XTYPE xt = new XTYPE(); xt.setType(XTYPE.ABBREV); j.add(XItem.XTYPE, xt); Memo m = new Memo(); Vector zie = new Vector(); zie.addElement((String)i.get(Item.NAME)); j.add(Item.ZIE, zie); m.add("Afkorting van " + (String)i.get(Item.NAME) + "."); Vector comments = new Vector(); comments.add(m); j.add(Item.COMMENT, comments); try { result.add(j); } catch (WocNotification wn) { if (this.rf != null) { ((WocReportFile)rf).reportWocNotification(wn); } } } } } } } return result; } } --- NEW FILE: GroupAdder.java --- package com.egonw.woc.util; import com.objectspace.jgl.*; import com.objectspace.jgl.algorithms.*; import com.objectspace.jgl.predicates.*; import java.util.Vector; import java.util.Enumeration; import com.egonw.util.*; import com.egonw.woc.*; import com.egonw.woc.files.*; import com.egonw.woc.predicate.*; import com.egonw.woc.exception.*; public final class GroupAdder implements ConvertAble { private WoordTable wt; private ReportFile rf; public GroupAdder() {}; public String getName() { return "Group Adder"; } public void set(WoordTable wt) { this.wt = wt; } public void set(ReportFile rf) { if (rf instanceof WocReportFile) this.rf = rf; } public WoordTable convert() { WoordTable result = wt; if (this.wt != null) { Enumeration groepen = extractGroups(wt); while (groepen.hasMoreElements()) { String groep = (String)groepen.nextElement(); try { result.add(convertGroupItems( returnGroupItems(wt, groep), groep) ); } catch (WocNotification wn) { if (this.rf != null) { ((WocReportFile)rf).reportWocNotification(wn); } } } } return result; } public static Enumeration extractGroups(WoordTable wt) { // bepaal alle groepen in de WOC Enumeration values = wt.elements(); OrderedSet groepen = new OrderedSet( new LessString() ); while ( values.hasMoreElements() ) { Item i = (Item)values.nextElement(); if (i.contains(Item.GROUP)) { Enumeration groups = ((Vector)i.get(Item.GROUP)).elements(); while (groups.hasMoreElements()) { String value = (String)groepen.add(groups.nextElement()); } } } return groepen.elements(); } public static WoordTable returnGroupItems(WoordTable wt, String group) { // bepaal alle item die binnen een groep horen WoordTable result = new WoordTable(); try { UnaryPredicate predicate = new BindSecondPredicate( new IsGroup(), new String(group) ); result.add((Container)Filtering.select(wt, predicate )); } catch (WocNotification wn) { System.out.println("Unreported WocNotification"); } finally { return result; } } public static Item convertGroupItems(WoordTable wt, String group) { // maak een nieuwe groep van alle item group = Convert.GROUPLikeToNAMELike(group); XItem result = new XItem(); result.add(XItem.XFILENAME, group); result.add(Item.NAME, group); result.add(XItem.XGROUP, new String("yes")); StringBuffer comment = new StringBuffer(); Enumeration values = wt.elements(); while ( values.hasMoreElements() ) { Item i = (Item)values.nextElement(); comment.append(i.get(Item.NAME)); if (values.hasMoreElements()) comment.append(", "); } Vector commentlist = new Vector(); Memo m = new Memo(); m.add("<P>Voorbeelden van " + group + " zijn: "); m.add(comment.toString()); m.add("</P>"); commentlist.addElement( m ); result.add(Item.COMMENT,commentlist); return result; } } --- NEW FILE: ItemInfo.java --- package com.egonw.woc.util; import java.util.*; import com.egonw.woc.*; import com.egonw.woc.wml.*; public class ItemInfo { public static Vector listKeywords(Item i) { /* returns a Vector of Strings */ Vector v = new Vector(); if (i.contains(XItem.XNAME)) { Enumeration names = ((Vector)i.get(XItem.XNAME)).elements(); while (names.hasMoreElements()) { Enumeration langs = ((XNAME)names.nextElement()).elements(); while (langs.hasMoreElements()) { v.addElement(((XLANG)langs.nextElement()).getValue()); } } } return v; } public static boolean containsLongInfo(Item i) { return (containsModels(i) || i.contains(Item.VERVOEGINGEN) || i.contains(Item.LIDWOORD) || i.contains(Item.CASNR) || i.contains(XItem.XGROUP) || i.contains(XItem.XGERMAN) || i.contains(Item.ENGLISH)); } public static boolean containsModels(Item i) { return (i.contains(Item.MOL) || i.contains(Item.PDB) || i.contains(Item.XYZFILE)); } public static boolean containsFysicalProps(Item i) { return (i.contains(Item.MASS) || i.contains(Item.RHO) || i.contains(Item.BOILINGPOINT) || i.contains(Item.MELTINGPOINT) || i.contains(Item.DIPOOL)); } public static boolean hasMoreThanOneComment(Item i) { boolean result = false; if (i.contains(Item.COMMENT)) { result = ( ((Vector)i.get(Item.COMMENT)).size() > 1 ); } return result; } public static boolean hasMoreThanOneVoorbeeld(Item i) { boolean result = false; if (i.contains(Item.VOORBEELD)) { result = ( ((Vector)i.get(Item.VOORBEELD)).size() > 1 ); } return result; } } --- NEW FILE: IupacExtender.java --- package com.egonw.woc.util; import com.objectspace.jgl.*; import com.objectspace.jgl.predicates.*; import com.objectspace.jgl.algorithms.*; import java.util.*; import java.io.Serializable; import com.egonw.util.*; import com.egonw.woc.*; import com.egonw.woc.predicate.*; import com.egonw.woc.exception.*; import com.egonw.woc.files.*; public final class IupacExtender implements ConvertAble { private WoordTable wt; private ReportFile rf; public IupacExtender () {}; public String getName() { return "IupacExtend"; } public void set(WoordTable wt) { this.wt = wt; } public void set(ReportFile rf) { if (rf instanceof WocReportFile) this.rf = rf; } public WoordTable convert() { WoordTable result = new WoordTable(); if (wt != null) { Enumeration v = wt.elements(); while ( v.hasMoreElements() ) { Item item = (Item)v.nextElement(); try { result.add(extendIupacNamespace(item)); } catch (WocNotification wn) { System.out.println("Error encountered in item : " + item.toString()); } } } return result; } private Item extendIupacNamespace(Item i) { if (i.contains(Item.COMMENT)) { Vector result = new Vector(); Enumeration comments = ((Vector)i.get(Item.COMMENT)).elements(); while ( comments.hasMoreElements() ) { result.addElement(this.comment((Memo)comments.nextElement(), (String)i.get(Item.NAME))); } i.add(Item.COMMENT, result); } if (i.contains(Item.VOORBEELD)) { Vector result = new Vector(); Enumeration comments = ((Vector)i.get(Item.VOORBEELD)).elements(); while ( comments.hasMoreElements() ) { result.addElement(this.comment((Memo)comments.nextElement(), (String)i.get(Item.NAME))); } i.add(Item.COMMENT, result); } return i; } private Memo comment(Memo m, String name) { Memo r = new Memo(); Enumeration values = m.elements(); while ( values.hasMoreElements() ) { String regel = (String)values.nextElement(); if (regel.indexOf("<iupac:def>") != -1) { regel = replace(regel, "iupac:def", "i"); } if (regel.indexOf("</iupac:def>") != -1) { regel = replace(regel, "iupac:def", "i"); } if (regel.indexOf("<iupac:regel>") != -1) { regel = replace(regel, "iupac:regel", "a href=\"\""); } if (regel.indexOf("</iupac:regel>") != -1) { regel = replace(regel, "iupac:regel", "a"); } if (regel.indexOf("<iupac:term>") != -1) { regel = replace(regel, "iupac:term", "i><b"); } if (regel.indexOf("</iupac:term>") != -1) { regel = replace(regel, "iupac:term", "b></i"); } r.add(regel); } return r; } private String replace(String in, String old, String with) { StringBuffer sb = new StringBuffer(in); int index = in.indexOf(old); if (index != -1) { sb.replace(index, index + old.length(), with); } return sb.toString(); } } --- NEW FILE: Markup.java --- package com.egonw.woc.util; import com.objectspace.jgl.*; import com.objectspace.jgl.predicates.*; import com.objectspace.jgl.algorithms.*; import java.util.*; import java.io.Serializable; import com.egonw.util.*; import com.egonw.woc.*; import com.egonw.woc.predicate.*; import com.egonw.woc.exception.*; import com.egonw.woc.files.*; public final class Markup implements ConvertAble { private WoordTable wt; private ReportFile rf; public Markup () {}; public String getName() { return "MarkUp"; } public void set(WoordTable wt) { this.wt = wt; } public void set(ReportFile rf) { if (rf instanceof WocReportFile) this.rf = rf; } public WoordTable convert() { WoordTable result = new WoordTable(); if (wt != null) { Enumeration v = wt.elements(); while ( v.hasMoreElements() ) { try { result.add(this.commentsInItem((Item)v.nextElement())); } catch (WocNotification wn) { if (this.rf != null) { ((WocReportFile)rf).reportWocNotification(wn); } } } } return result; } public Item commentsInItem(Item i) { if (i.contains(Item.COMMENT)) { Vector result = new Vector(); Enumeration comments = ((Vector)i.get(Item.COMMENT)).elements(); while ( comments.hasMoreElements() ) { result.addElement(this.comment((Memo)comments.nextElement(), (String)i.get(Item.NAME))); } i.add(Item.COMMENT, result); } return i; } public Memo comment(Memo m, String name) { Memo r = new Memo(); Enumeration values = m.elements(); while ( values.hasMoreElements() ) { StringBuffer tot = new StringBuffer(); StringTokenizer st = new StringTokenizer( (String)values.nextElement(), "\n\t\r.,;:?!'` \"",true); while (st.hasMoreTokens()) { String token = st.nextToken(); UnaryPredicate up = new BindSecondPredicate( new IsSource(), token ); System.out.println(token); if (Finding.some((Container)this.wt, up)) { String anchor = Convert.NAMELikeToANCHORLike(token); tot.append("<a href=" + HtmlWriteFile.QUOT + "../letters/" + anchor.substring(0,1) + ".html#" + anchor + HtmlWriteFile.QUOT + ">" + token + "</a>"); } else { tot.append(token); } } r.add(tot.toString()); } return r; } } --- NEW FILE: Memo.java --- package com.egonw.woc.util; import java.util.Vector; public class Memo extends Vector{ public Memo() { super(5,3); } public void add(String s) { super.addElement(s); } public void empty() { super.removeAllElements(); } public int count() { return super.size(); } public String getLine(int i) { return (String)super.elementAt(i-1); } } --- NEW FILE: MergeItems.java --- package com.egonw.woc.util; import java.util.Vector; import java.util.Enumeration; import com.egonw.woc.*; import com.egonw.woc.files.*; import com.egonw.woc.exception.*; public final class MergeItems { public static Item comment(Item i, Item j) { Item result = i; return result; } } --- NEW FILE: Path.java --- package com.egonw.woc.util; import java.io.*; import java.util.*; import com.egonw.woc.exception.*; import org.xml.sax.*; import org.xml.sax.helpers.*; /** * Class that defines the path to certain files. * * @author Egon Willighagen * @version 1.1, 04/09/2000 */ public class Path { private Hashtable defs; private String name; public Path(String repository) { this(repository, "file:///vol/www/woc/bin/repository_def.xml"); } public Path(String repository, String url) { defs = new Hashtable(); name = repository; // parse the repository document try { String parserName = "org.apache.xerces.parsers.SAXParser"; XMLReader parser = (XMLReader)Class.forName(parserName).newInstance(); ContentHandler handler = new RepositoryDefHandler(repository); parser.setContentHandler(handler); parser.setFeature("http://xml.org/sax/features/validation", false); parser.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); parser.parse(url); if (((RepositoryDefHandler)handler).foundRepository()) { defs = ((RepositoryDefHandler)handler).returnDefs(); } else { throw new WocException("Repository (" + repository + ") not found!"); } } catch (Exception e) { System.err.println("Error: " + e); System.exit(1); } } public String getName() { return this.name; }; public String getPhysicalRoot() { return (String)defs.get("PhysicalRoot"); }; public String getDataSubDir() { return (String)defs.get("DataSubDir"); }; public String getWMLSubDir() { return (String)defs.get("WMLSubDir"); }; public String getHtmlRoot() { return (String)defs.get("HtmlRoot"); }; public String getCgiBinRoot() { return (String)defs.get("CgiBinRoot"); }; public String getLetterFileSubDir() { return (String)defs.get("LetterFileSubDir"); }; public String getItemFileSubDir() { return (String)defs.get("ItemFileSubDir"); }; public String getGroupFileSubDir() { return (String)defs.get("GroupFileSubDir"); }; public String getIndexFileSubDir() { return (String)defs.get("IndexFileSubDir"); }; public String getPictureSubDir() { return (String)defs.get("PictureSubDir"); }; public String getCSSSubDir() { return (String)defs.get("CSSSubDir"); }; public String getLocatieSubDir() { return (String)defs.get("LocatieSubDir"); }; public String getJavascriptSubDir() { return (String)defs.get("JavascriptSubDir"); }; public String getJavaSubDir() { return (String)defs.get("JavaSubDir"); }; public String getModelsSubDir() { return (String)defs.get("ModelsSubDir"); }; public String getDADMLSubDir() { return (String)defs.get("DADMLSubDir"); }; public String getMolSubDir() { return (String)defs.get("MolSubDir"); }; public String getPdbSubDir() { return (String)defs.get("PdbSubDir"); }; public String getXyzSubDir() { return (String)defs.get("XyzSubDir"); }; public String getCmlSubDir() { return (String)defs.get("CmlSubDir"); }; public String getPhysPropSubDir() { return (String)defs.get("PhysPropSubDir"); }; public String getGifSubDir() { return (String)defs.get("GifSubDir"); }; public String getBronnenFile() { return (String)defs.get("BronnenFile"); }; public String getDatabasesFile() { return (String)defs.get("DatabasesFile"); }; } --- NEW FILE: RepositoryDefHandler.java --- package com.egonw.woc.util; import java.util.*; import java.io.*; 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 RepositoryDefHandler extends DefaultHandler { private final int UNKNOWN = -1; private final int GENERAL = 1; private final int SPECIFIC = 2; private final int PATH = 3; private int CurrentElement; private boolean general; private String current_repository; private String wanted_repository; private String current_path_name; private String current_path; private Hashtable defs; private boolean found_repository; public RepositoryDefHandler (String repository) { this.wanted_repository = repository; this.defs = new Hashtable(); }; public boolean foundRepository() { return found_repository; } public Hashtable returnDefs() { return defs; } public void startDocument () { general = false; CurrentElement = UNKNOWN; current_repository = ""; found_repository = false; } public void endDocument () { } public void startElement (String URI, String name, String qname, Attributes atts) { setCurrentElement(name); switch (CurrentElement) { case GENERAL : general = true; break; case PATH : for (int i = 0; i < atts.getLength(); i++) { if (atts.getQName(i).equals("id")) { current_path_name = atts.getValue(i); } } break; case SPECIFIC : for (int i = 0; i < atts.getLength(); i++) { if (atts.getQName(i).equals("repository")) { current_repository = atts.getValue(i); if (current_repository.equals(wanted_repository)) { found_repository = true; } } } break; } } public void endElement(String URI, String name, String qname) { setCurrentElement(name); switch (CurrentElement) { case GENERAL : general = false; break; case PATH : if (current_repository.equals(wanted_repository) || general) { defs.put(current_path_name, current_path); // System.out.println("Added: " + current_path_name + " -> " + // current_path); } else { //System.out.println("Not added: " + current_path_name + " -> " + // current_path); } current_path_name = ""; current_path = ""; break; case SPECIFIC : current_repository = ""; break; } } public void characters (char ch[], int start, int length) { switch (CurrentElement) { case PATH : current_path = toString(ch, start, length).trim(); break; } } private void setCurrentElement(String name) { if (name.equals("general")) { CurrentElement = GENERAL; } else if (name.equals("specific")) { CurrentElement = SPECIFIC; } else if (name.equals("path")) { CurrentElement = PATH; } 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: TopicExpander.java --- package com.egonw.woc.util; import java.util.Vector; import java.util.Enumeration; import com.egonw.util.*; import com.egonw.woc.*; import com.egonw.woc.files.*; import com.egonw.woc.wml.*; import com.egonw.woc.exception.*; public final class TopicExpander implements ConvertAble { private WoordTable wt; private ReportFile rf; public TopicExpander() {}; public String getName() { return "Topic Map Expander"; } public void set(WoordTable wt) { this.wt = wt; } public void set(ReportFile rf) { if (rf instanceof WocReportFile) this.rf = rf; } public WoordTable convert() { WoordTable result = new WoordTable(); if (wt != null) { try { result.add(wt); } catch (WocNotification wn) {}; Item i; XItem j; TopicMap tm; Enumeration values = wt.elements(); while ( values.hasMoreElements() ) { i = (Item)values.nextElement(); if (i.contains(XItem.XTOPICMAP)) { tm = (TopicMap)i.get(XItem.XTOPICMAP); Enumeration assocs = tm.getAssocs(); while (assocs.hasMoreElements()) { TMAssoc assoc = (TMAssoc)assocs.nextElement(); if (assoc.getName().equals("at-heeft-als-zuurrest")) { try { //System.out.println("Nieuwe zuurrest"); String zuurrest = (String)(assoc.getRLs()).nextElement(); //System.out.println(zuurrest); j = new XItem(); j.add(XItem.XFILENAME, i.get(XItem.XFILENAME)); j.add(Item.NAME, zuurrest); Vector commentlist = new Vector(); Memo m = new Memo(); m.add("Zuurrest van " + (String)i.get(Item.NAME) + "."); commentlist.addElement(m); j.add(Item.COMMENT, commentlist); Vector zie = new Vector(); zie.addElement((String)i.get(Item.NAME)); j.add(Item.ZIE, zie); try { result.add(j); } catch (WocException e) { // item is al aanwezig System.out.println("zuurrest van " +(String)i.get(Item.NAME)); } } catch (Exception e) { //System.out.println("oops... foutje"); }; } } } } } return result; } } |