class FromOptionalConverter implements ConditionalConverter<Optional<Object>, Object> {
  @Override
  public MatchResult match(Class<?> sourceType, Class<?> destinationType) {
    return (Optional.class.equals(sourceType) && !Optional.class.equals(destinationType))
        ? MatchResult.FULL
        : MatchResult.NONE;
  }

  @Override
  public Object convert(MappingContext<Optional<Object>, Object> mappingContext) {<FILL_FUNCTION_BODY>}
}

    if (mappingContext.getSource() == null || !mappingContext.getSource().isPresent()) {
      return null;
    }

    MappingContext<Object, Object> propertyContext = mappingContext.create(
        mappingContext.getSource().get(), mappingContext.getDestinationType());
    return mappingContext.getMappingEngine().map(propertyContext);
  
<no_super_class>