code: public static <P, T> PositionFactory<P, T> at(Function<? super P, ? extends T> accessor) {
          Validate.isInstanceOf(Accessor.class, accessor, "Cannot detect property from %s; missing %s?", accessor,
              THERIAN_PROPERTY_METHOD_WEAVER);
          return new PositionFactory<>(((Accessor<? super P, ? extends T>) accessor).propertyName);
      }
docs: Create a {@link Property.PositionFactory} for the property specified by {@code accessor}, whose original source
  form is expected to have been a method reference for a valid Java bean accessor method, in which case it is
  required that the calling class be processed with the {@code therian-property-method-weaver} for Apache Commons
  Weaver, which wraps the reference in an {@link Accessor} object. Alternatively the {@link Accessor} can be
  explicitly instantiated.
  
  @param accessor
  @return {@link PositionFactory}
  @throws IllegalArgumentException if {@code accessor} is not an {@link Accessor} instance at runtime.