code: @Override
    public T convert(S value) {
  
      T defaultValue = getDefaultValue();
  
      if (value == null && defaultValue != null) {
        return defaultValue;
      }
  
      throw newConversionException("Cannot convert [%1$s] to [%2$s]",
        value, getTargetType().map(Class::getName).orElse(Constants.UNKNOWN));
    }
docs: Converts an {@link Object} of {@link Class type S} into an {@link Object} of {@link Class type T}.
  
  @param value {@link Object} of {@link Class type S} to convert.
  @return the converted {@link Object} of {@link Class type T}.
  @throws ConversionException if the {@link Object} cannot be converted.
  @see org.cp.elements.data.conversion.ConversionService#convert(Object, Class)
  @see #convert(Object, Class)