edu.pdx.cs.joy.xml.Business Maven / Gradle / Ivy
The newest version!
package edu.pdx.cs.joy.xml;
import org.w3c.dom.*;
/**
* This class represents a business whose name, address and phone
* number are listed in a phone book. A Business
is
* constructed from an XML DOM tree. If we were doing this for real,
* we'd want a way of constructing an empty Business
and
* filling in its fields.
*/
public class Business extends PhoneBookEntry {
protected String name;
/**
* Create a new Business
from an Element
* in a DOM tree.
*/
public Business(Element root) {
NodeList elements = root.getChildNodes();
for (int i = 0; i < elements.getLength(); i++) {
Node node = elements.item(i);
if (!(node instanceof Element)) {
continue;
}
Element element = (Element) node;
switch (element.getNodeName()) {
case "name":
Node text = element.getFirstChild();
this.name = text.getNodeValue();
break;
case "address":
fillInAddress(element);
break;
case "phone":
fillInPhone(element);
break;
default:
String s = "Unknown element: " + element.getNodeName() + " (" +
element.getNodeValue() + ")";
throw new IllegalArgumentException(s);
}
}
}
public String toString() {
return this.name + "\n" + super.toString();
}
}