Use overloading for special cases instead of nulls

Replace NodeList.getProperties() with Node.getParentProperties(). This
avoids a null check on parent by relying on the ability to check the
parent node's type instead. This new method is now only defined on Node,
and not on NodeList where it was innappropriate since getProperties() on
a NodeList didn't reall make sense but it was need due to the improved
code flow.

Also take advantage of inheritance to avoid the parent == null check in
getChangeData().

Change-Id: I528631d7d5d8315e35ec5c176596a6db99f816fc
2 files changed