/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.meaningcloud.gate.clients;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import com.meaningcloud.gate.MeaningCloudClass.category;
import com.meaningcloud.gate.MeaningCloudClass.category.term;
import gate.util.InvalidOffsetException;
/**
*
* @author ADRIAN
*/
public class ClassClient {
public static List<category> collectInfo(Element response)
throws InvalidOffsetException, UnsupportedEncodingException {
List<category> a = new ArrayList<category>();
NodeList nodeL = response.getElementsByTagName("category");
for (int i = 0; i < nodeL.getLength(); i++) {
Node category = nodeL.item(i);
NodeList features = category.getChildNodes();
com.meaningcloud.gate.MeaningCloudClass.category cat = new com.meaningcloud.gate.MeaningCloudClass.category();
for (int j = 0; j < features.getLength(); j++) {
Node value = features.item(j);
String value_name = value.getNodeName();
if ("code".equals(value_name)) {
cat.code = new String(value.getTextContent().getBytes(),
"UTF-8");
} else if ("label".equals(value_name)) {
cat.label = new String(value.getTextContent().getBytes(),
"UTF-8");
} else if ("abs_relevance".equals(value_name)) {
cat.abs_relevance = new String(value.getTextContent()
.getBytes(), "UTF-8");
} else if ("relevance".equals(value_name)) {
cat.relevance = new String(value.getTextContent()
.getBytes(), "UTF-8");
} else if ("term_list".equals(value_name)) {
NodeList terms = value.getChildNodes();
cat.term_list = new ArrayList<term>(terms.getLength());
for (int k = 0; k < terms.getLength(); k++) {
com.meaningcloud.gate.MeaningCloudClass.category.term t = new com.meaningcloud.gate.MeaningCloudClass.category.term();
Node term = terms.item(k);
NodeList term_values = term.getChildNodes();
for (int l = 0; l < term_values.getLength(); l++) {
Node v = term_values.item(l);
String term_name = v.getNodeName();
if ("form".equals(term_name)) {
t.form = new String(v.getTextContent()
.getBytes(), "UTF-8");
} else if ("abs_relevance".equals(term_name)) {
t.abs_relevance = new String(v.getTextContent()
.getBytes(), "UTF-8");
}
}
cat.term_list.add(t);
}
}
}
a.add(cat);
}
return a;
}
}