/*
* File: PagesScanner.java
* Generated from: Pages.dtd
* Date: den 10 oktober 2002 21:19
*
* @author h&m
* @version generated by NetBeans XML module
*/
/**
* This is a scanner of DOM tree.
*
* Example:
*
* javax.xml.parsers.DocumentBuilderFactory builderFactory = javax.xml.parsers.DocumentBuilderFactory.newInstance();
* javax.xml.parsers.DocumentBuilder builder = builderFactory.newDocumentBuilder();
* org.w3c.dom.Document document = builder.parse (new org.xml.sax.InputSource (???));
* PagesScanner scanner = new PagesScanner (document);
* scanner.visitDocument();
*
*
* @see org.w3c.dom.Document
* @see org.w3c.dom.Element
* @see org.w3c.dom.NamedNodeMap
*
*/
public class PagesScanner {
/** org.w3c.dom.Document document */
org.w3c.dom.Document document;
PRCalculator prc;
/** Create new PagesScanner with org.w3c.dom.Document. */
public PagesScanner(PRCalculator prc, org.w3c.dom.Document document) {
this.prc = prc;
this.document = document;
}
/** Scan through org.w3c.dom.Document document. */
public void visitDocument() {
org.w3c.dom.Element element = document.getDocumentElement();
if ((element != null) && element.getTagName().equals("pagerank")) {
visitElement_pagerank(element);
}
if ((element != null) && element.getTagName().equals("pages")) {
visitElement_pages(element);
}
if ((element != null) && element.getTagName().equals("page")) {
visitElement_page(element);
}
if ((element != null) && element.getTagName().equals("links")) {
visitElement_links(element);
}
if ((element != null) && element.getTagName().equals("link")) {
visitElement_link(element);
}
}
/** Scan through org.w3c.dom.Element named pagerank. */
void visitElement_pagerank(org.w3c.dom.Element element) { //
// element.getValue();
org.w3c.dom.NodeList nodes = element.getChildNodes();
for (int i = 0; i < nodes.getLength(); i++) {
org.w3c.dom.Node node = nodes.item(i);
switch (node.getNodeType()) {
case org.w3c.dom.Node.CDATA_SECTION_NODE:
// ((org.w3c.dom.CDATASection)node).getData();
break;
case org.w3c.dom.Node.ELEMENT_NODE:
org.w3c.dom.Element nodeElement = (org.w3c.dom.Element)node;
if (nodeElement.getTagName().equals("pages")) {
visitElement_pages(nodeElement);
}
if (nodeElement.getTagName().equals("links")) {
visitElement_links(nodeElement);
}
break;
case org.w3c.dom.Node.PROCESSING_INSTRUCTION_NODE:
// ((org.w3c.dom.ProcessingInstruction)node).getTarget();
// ((org.w3c.dom.ProcessingInstruction)node).getData();
break;
}
}
}
/** Scan through org.w3c.dom.Element named pages. */
void visitElement_pages(org.w3c.dom.Element element) { //
// element.getValue();
org.w3c.dom.NodeList nodes = element.getChildNodes();
for (int i = 0; i < nodes.getLength(); i++) {
org.w3c.dom.Node node = nodes.item(i);
switch (node.getNodeType()) {
case org.w3c.dom.Node.CDATA_SECTION_NODE:
// ((org.w3c.dom.CDATASection)node).getData();
break;
case org.w3c.dom.Node.ELEMENT_NODE:
org.w3c.dom.Element nodeElement = (org.w3c.dom.Element)node;
if (nodeElement.getTagName().equals("page")) {
visitElement_page(nodeElement);
}
break;
case org.w3c.dom.Node.PROCESSING_INSTRUCTION_NODE:
// ((org.w3c.dom.ProcessingInstruction)node).getTarget();
// ((org.w3c.dom.ProcessingInstruction)node).getData();
break;
}
}
}
/** Scan through org.w3c.dom.Element named page. */
void visitElement_page(org.w3c.dom.Element element) { //
// element.getValue();
org.w3c.dom.NamedNodeMap attrs = element.getAttributes();
for (int i = 0; i < attrs.getLength(); i++) {
org.w3c.dom.Attr attr = (org.w3c.dom.Attr)attrs.item(i);
if (attr.getName().equals("name")) { //
prc.addPage(attr.getValue());
}
}
org.w3c.dom.NodeList nodes = element.getChildNodes();
for (int i = 0; i < nodes.getLength(); i++) {
org.w3c.dom.Node node = nodes.item(i);
switch (node.getNodeType()) {
case org.w3c.dom.Node.CDATA_SECTION_NODE:
// ((org.w3c.dom.CDATASection)node).getData();
break;
case org.w3c.dom.Node.ELEMENT_NODE:
org.w3c.dom.Element nodeElement = (org.w3c.dom.Element)node;
break;
case org.w3c.dom.Node.PROCESSING_INSTRUCTION_NODE:
// ((org.w3c.dom.ProcessingInstruction)node).getTarget();
// ((org.w3c.dom.ProcessingInstruction)node).getData();
break;
}
}
}
/** Scan through org.w3c.dom.Element named links. */
void visitElement_links(org.w3c.dom.Element element) { //
// element.getValue();
org.w3c.dom.NodeList nodes = element.getChildNodes();
for (int i = 0; i < nodes.getLength(); i++) {
org.w3c.dom.Node node = nodes.item(i);
switch (node.getNodeType()) {
case org.w3c.dom.Node.CDATA_SECTION_NODE:
// ((org.w3c.dom.CDATASection)node).getData();
break;
case org.w3c.dom.Node.ELEMENT_NODE:
org.w3c.dom.Element nodeElement = (org.w3c.dom.Element)node;
if (nodeElement.getTagName().equals("link")) {
visitElement_link(nodeElement);
}
break;
case org.w3c.dom.Node.PROCESSING_INSTRUCTION_NODE:
// ((org.w3c.dom.ProcessingInstruction)node).getTarget();
// ((org.w3c.dom.ProcessingInstruction)node).getData();
break;
}
}
}
/** Scan through org.w3c.dom.Element named link. */
void visitElement_link(org.w3c.dom.Element element) { //
// element.getValue();
org.w3c.dom.NamedNodeMap attrs = element.getAttributes();
org.w3c.dom.Attr from = (org.w3c.dom.Attr)attrs.item(0);
org.w3c.dom.Attr to = (org.w3c.dom.Attr)attrs.item(1);
prc.addIncomingPage(from.getValue(), to.getValue());
}
}