code: private <T> T resolvePropertyTypedValue(FieldData field, Class<T> propertyType) {
          if (field.isAbsolute() || field.isRelative()) {
              return resolvePropertyTypedValueFromForeignResource(field, propertyType);
          }
          if (this.properties == null) {
              throw new IllegalStateException("Tried to map the property " + field +
                      " even though the resource has no properties.");
          }
          return this.properties.get(field.path, propertyType);
      }
docs: Resolves a field's value using the field's {@link FieldValueMappingCallback.FieldData#path}.
  {@link FieldData#isRelative() relative} or {@link  FieldData#isAbsolute() absolute} paths
  are interpreted as references to the properties of another resource and are resolved
  via {@link #resolvePropertyTypedValueFromForeignResource(FieldData, Class)}.
  
  <br />
  Ignores all {@link FieldValueMappingCallback.FieldData#metaData meta data}
  except for the field path as the desired return type is explicitly specified.
  
  @return the resolved value, or <code>null</code>.