@Override
    public boolean equals(Object other) {
        if (other == this)
            return true;

        if ( !(other instanceof InnerNode) || (other.getClass() != this.getClass()))
            return false;

        /* This implementation requires getChildren() to return elements in order.
         Hence, we should make it final. Or make equals independent of order. */
        Collection<Object> children = getChildren().values();
        Collection<Object> otherChildren = ((InnerNode)other).getChildren().values();

        Iterator<Object> e1 = children.iterator();
        Iterator<Object> e2 = otherChildren.iterator();
        while(e1.hasNext() && e2.hasNext()) {
            Object o1 = e1.next();
            Object o2 = e2.next();
            if (!(Objects.equals(o1, o2)))
                return false;
        }
        return !(e1.hasNext() || e2.hasNext());
    }
Overrides {@link Node#postInitialize(String)}.
Perform post initialization on this node's children.

@param configId The config id of this instance.
config-lib/src/main/java/com/yahoo/config/InnerNode.java