@Override
    public boolean equals(final Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        final PropertyPath that = (PropertyPath) o;
        return Objects.equals(parentParts, that.parentParts)
               && Objects.equals(leafPart, that.leafPart);
    }
@return The parent property name from a property path, i.e. "node" from "stroom.node.name".
Throws a {@link RuntimeException} if the path is empty or there is no parent.
stroom-util-shared/src/main/java/stroom/util/shared/PropertyPath.java