package edu.stanford.nlp.semgraph.semgrex.ssurgeon;
import java.util.*;
import java.io.*;
import org.w3c.dom.*;
/**
* This implements an unordered word-list resource for Ssurgeon
* @author Eric Yeh
*
*/
public class SsurgeonWordlist {
private static final String WORD_ELT = "word";
private String id;
private HashSet<String> words = new java.util.HashSet<>();
@Override
public String toString() {
StringWriter buf = new StringWriter();
buf.write("Ssurgeon Wordlist Resource, id=");
buf.write(id);
buf.write(", elements=(");
for (String word : words) {
buf.write(" ");
buf.write(word);
}
buf.write(")");
return buf.toString();
}
public String getID() { return id ; }
/**
* Reconstructs the resource from the XML file
*/
@SuppressWarnings("unchecked")
public SsurgeonWordlist(Element rootElt) {
id = rootElt.getAttribute("id");
NodeList wordEltNL = rootElt.getElementsByTagName(WORD_ELT);
for (int i=0; i<wordEltNL.getLength(); i++) {
Node node = wordEltNL.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
String word = Ssurgeon.getEltText((Element) node);
words.add(word);
}
}
}
public boolean contains(String testWord) {
return words.contains(testWord);
}
/**
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}