Line 1:
Line 1:
−
==[http://www.cs.umd.edu/%7Emeesh/cmsc420/spr07/part1/p11/node20.html Using the provided XML processing code to get a working parser]==
−
=== Node -> Element ===
−
<blockquote>
−
In the DOM, every XML object implements the org.w3c.dom.Node interface. Nodes have a lot of useful methods, but the ones you care most about are getNodeName(), getNodeValue(), and getAttribute(). Suppose you had a Node object representing one of our command elements. You could determine which command it was with the following code:
−
<code><pre>
−
Node command = ...;
−
if (command.getNodeName().equals("createCity"))
−
// createCity command
−
</pre></code>
−
To get the value of an attribute, you could use this code:
−
<code><pre>
−
String name = command.getAttribute("name");
−
</pre></code>
−
</blockquote>
−
If you read the Java API, you'll see both Document and Element are subtypes of Node. A Node does not have the method getAttribute(). But Element does have a getAttribute() method.
−
=== Node Child List ===
−
<blockquote>
−
To ignore comment nodes, you can even do an instanceof check of the command node to make sure it is of type Element.
−
</blockquote>
−
instanceof checks can be costly. If there's an alternative, you should use it. That said, Node has a method called [http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/Node.html#getNodeType() getNodeType()].
−
−
−
== [http://www.cs.umd.edu/%7Emeesh/cmsc420/spr07/part1/p11/node22.html Outputting XML Conventions] ==
−
−
=== Printing to System.out ===
−
<blockquote>
−
It is sufficient to merely spit these out to System.out (the standard output stream) as they are discovered when processing the commands. However, remember that the result must be a well-formed XML document and a well-formed XML document must have a single root element.
−
</blockquote>
−
Do not call System.out.println() to print out your output. Instead, create a new Document and append Elements to it as you process commands. You can print a Document to System.out using XmlUtility.print().
−
−
== [http://www.cs.umd.edu/%7Emeesh/cmsc420/spr07/part1/p11/node24.html Drawing a spatial map using CanvasPlus] ==
−
=== Color class ===
−
It should be noted that all colors used in CanvasPlus refer to their java.awt.Color counterparts.
−
−
== [http://www.cs.umd.edu/%7Emeesh/cmsc420/spr07/part1/p11/node26.html Input] ==
−
=== spatialWidth and spatialHeight ===
−
<blockquote>
−
The attributes are spatialWidth and spatialHeight, both Unrestricted Integers...
−
</blockquote>
−
spatialWidth and spatialHeight will always be 2<sup>k</sup> by 2<sup>k</sup>. That way you can take advantage of bit operators.
−
−
=== List cities ===
−
<blockquote>
−
listCities
−
Prints all cities (vertices) currently present in the graph.
−
</blockquote>
−
Graph here means data dictionary.
−
−
=== Nearest City tie ===
−
<blockquote>
−
nearestCity
−
Will return the name and location of the closest city to the specified point in space. To do this correctly, you may want to use the PriorityQueue-otherwise, you might not be fast enough.
−
</blockquote>
−
If there is a distance tie, check the city names using java.lang.String.compareTo() (for a distance tie, the nearestCity name is less than the other city name).