The interfaces we are supplied with and must use are pretty poor; and their documentation has mistakes too.
The interfaces don’t seem to make much logical sense, and I’m just getting a little annoyed.
An example mistake in the documentation for an interfaces function signature, where one parameter called ID is an integer:
// ID: The node ID to search for (null if nodeName is provided)
…As if an Java integer can be null.
If when either name or ID is used the other is null, surely an enum would be best suited to specify which is used, and then some data Object which would be a String for name or an Integer for ID.
Another example using the same functions, one of the parameters has an ArrayList<Node> type. I understand that a Set<Node> would be more applicable, but I can’t change it because they require their own interfaces to be used. They should at least be more generic and allow any kind of Collection<Node>.