@Override
    public boolean equals(Object obj) {
        if (obj == this) {
            return true;
        } else if (obj instanceof PathMetadata) {
            PathMetadata p = (PathMetadata) obj;
            return element.equals(p.element) &&
                    pathType == p.pathType &&
                    Objects.equals(parent, p.parent);
        } else {
            return false;
        }

    }
{@code PathMetadata} provides metadata for {@link Path} expressions.

@author tiwe
querydsl-core/src/main/java/com/querydsl/core/types/PathMetadata.java