@Override
    public boolean equals(@Nullable Object object) {
      if (this == object) {
        return true;
      } else if (!(object instanceof TypeParameterElementFactory)) {
        return false;
      }

      TypeParameterElementFactory that = (TypeParameterElementFactory) object;
      return this.toString.equals(that.toString)
          && this.enclosingElementFactory.equals(that.enclosingElementFactory);
    }
Saves the Element reference and returns it when inquired, with the hope that the same object
still represents that element, or the required information is present.
common/src/main/java/com/google/auto/common/BasicAnnotationProcessor.java