code: private boolean isPropertyTypeInternal() {
          Class<?> type = getType();
          return
                  // References are always contained in properties of type String or String[].
                  isReference()
                          || isPropertyType(type)
                          || (type.isArray() || isCollectionType) && isPropertyType(getTypeParameter());
      }
docs: Determines whether the {@link java.lang.reflect.Field#getType() field type}
  can only be represented by a property of a {@link org.apache.sling.api.resource.Resource},
  not a {@link org.apache.sling.api.resource.Resource} itself.