[jdom-interest] Element Reference from Attribute
Elliotte Rusty Harold
elharo at metalab.unc.edu
Mon Nov 27 11:21:53 PST 2000
I was reading Bertrand Meyer's Object Oriented Software Construction
over the holiday (definitely heavy thinking) and that gave me a new
perspective on part of the debate in this thread. Meyer talks about
the notion of trading storage for computation in features (method
calls, to Java programmers) and I think maybe that's what we need
here for the getParent() method. In brief:
1. All nodes classes (Element, Attribute, ProcessingInstruction,
etc.) have a getParent() method that behaves correctly; i.e. it
returns a reference to the parent unless there is no parent in which
case it returns null. This method never throws an
UnsupportedOperationException or anything similar.
2. In some classes this method will be implemented via storage; that
is, each object will hold a reference to its parent which is simply
returned.
3. In other classes, this method is implemented via computation; i.e.
walk the whole document tree to find the parent but don't store it.
Individual programmers could use the builder/factories to decide
which version they wanted. However, the key idea is that in all cases
the API and behavior is the same. Each programmer gets to decide
whether they care more about storage or computation. This might
however be an issue for 1.1. For 1.0 I recommend using the simpler
solution, storage. We can add the computational option in 1.1.
--
+-----------------------+------------------------+-------------------+
| Elliotte Rusty Harold | elharo at metalab.unc.edu | Writer/Programmer |
+-----------------------+------------------------+-------------------+
| The XML Bible (IDG Books, 1999) |
| http://metalab.unc.edu/xml/books/bible/ |
| http://www.amazon.com/exec/obidos/ISBN=0764532367/cafeaulaitA/ |
+----------------------------------+---------------------------------+
| Read Cafe au Lait for Java News: http://metalab.unc.edu/javafaq/ |
| Read Cafe con Leche for XML News: http://metalab.unc.edu/xml/ |
+----------------------------------+---------------------------------+
More information about the jdom-interest
mailing list