package de.lynorics.eclipse.jangaroo.ui.asdoc;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class KeywordDocParser {
private static List<KeywordDocumentation> list = null;
public KeywordDocParser() throws IOException {
if (list == null) {
Document doc = null;
try {
String url = "statements.html";
doc = Jsoup.parse(new File(url), "UTF-8");
}
catch (IOException ioe) {
// System.out.println("Parsing ActionScript3 Statements from Adobe...");
// String url = "http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/statements.html";
// doc = Jsoup.parse(new URL(url), 800);
}
if (doc != null) {
list = parse(doc);
}
else {
list = new ArrayList<KeywordDocumentation>();
}
}
}
public static void main(String[] args) throws IOException {
KeywordDocParser parser = new KeywordDocParser();
KeywordDocumentation match = parser.findByMatch("doc");
System.out.println(match.getName());
System.out.println(match.getDescription());
}
private List<KeywordDocumentation> parse(Document doc) {
List<KeywordDocumentation> list = new ArrayList<KeywordDocumentation>();
Elements tables = doc.select("table.detailHeader");
if (tables.size() > 0) {
for (Element table : tables) {
KeywordDocumentation keyword = new KeywordDocumentation();
Elements header = table.select("td.detailHeaderName");
keyword.setName(header.get(0).text());
keyword.setDescription(table.nextSibling().outerHtml());
list.add(keyword);
}
}
return list;
}
public KeywordDocumentation findByMatch(String match) {
KeywordDocumentation result = null;
for (KeywordDocumentation keyword : list) {
if (keyword.isSuitable(match)) {
result = keyword;
}
}
return result;
}
}