final void doWith(final MappedFieldMetaData metaData) {
        if (metaData == null) {
            throw new IllegalArgumentException("Method argument metaData must not be null.");
        }

        // Prepare the dynamic contextual data of this mapping
        final FieldData fieldData = new FieldData(metaData, evaluateFieldPath(metaData));
        // Determine whether the mapping can result in a non-null value
        final boolean isMappable = isMappable(fieldData);

        if (metaData.isLazy()) {
            // Lazy fields are never null, regardless of whether a value is mappable.
            Lazy<Object> lazy = isMappable ? new LazyFieldValue(fieldData, this) : java.util.Optional::empty;
            setField(metaData, lazy);
            return;
        }

        Object value = null;

        if (isMappable) {
            value = resolve(fieldData);
        }

        value = postProcessResolvedValue(fieldData, value);

        if (value != null) {
            setField(metaData, value);
        }
    }
final void doWith ( final MappedFieldMetaData metaData ) { if ( metaData == null ) { throw new IllegalArgumentException ( "Method argument metaData must not be null." ) ; } final FieldData fieldData = new FieldData ( metaData , evaluateFieldPath ( metaData ) ) ; final boolean isMappable = isMappable ( fieldData ) ; if ( metaData . isLazy ( ) ) { Lazy < Object > lazy = isMappable ? new LazyFieldValue ( fieldData , this ) : java . util . Optional :: empty ; setField ( metaData , lazy ) ; return ; } Object value = null ; if ( isMappable ) { value = resolve ( fieldData ) ; } value = postProcessResolvedValue ( fieldData , value ) ; if ( value != null ) { setField ( metaData , value ) ; } }
Invoked for each {@link io.neba.core.resourcemodels.metadata.ResourceModelMetaData#getMappableFields() mappable field}
of a {@link io.neba.api.annotations.ResourceModel} to map the {@link MappedFieldMetaData#getField() corresponding field's}
value from the resource provided to the {@link #FieldValueMappingCallback(Object, Resource, ResourceModelFactory, AnnotatedFieldMappers, PlaceholderVariableResolvers) constructor}.

@param metaData must not be <code>null</code>.