@Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    Path path = (Path) o;
    if (hashCode != path.hashCode) {
      return false;
    }
    return Objects.equals(annotatedElement, path.annotatedElement)
            && Objects.equals(parent, path.parent);
  }
Returns current path in java bean format: {@code foo.bar.qux}. For root path returns
empty list ({@code ""}).
criteria/common/src/org/immutables/criteria/expression/Path.java