code: @SuppressWarnings("unchecked")
    public <T> T convert(Object value, Class<T> toType) {
  
      for (ConverterDescriptor descriptor : getRegistry().keySet()) {
  
        Converter converter = descriptor.getConverter();
  
        if (converter.canConvert(value, toType)) {
          if (descriptor.isExactConversion(toType)) {
            return toType.cast(converter.convert(value));
          }
          else {
            return toType.cast(converter.convert(value, toType));
          }
        }
      }
  
      throw newConversionException("Cannot convert [%1$s] into Object of type [%2$s]",
        value, toType.getName());
    }
docs: Converts the given {@link Object} into a {@link Object value} of the {@link Class target type}.
  
  @param <T> {@link Class target type} of the conversion.
  @param value {@link Object} to convert.
  @param toType {@link Class target type} to convert the {@link Object} into.
  @return the converted {@link Object} of the {@link Class target type} with the given {@code value}.
  @throws ConversionException if the {@link Object} could not be converted into a {@link Object value}
  of the desired {@link Class target type}.
  @see org.cp.elements.data.conversion.Converter#convert(Object, Class)
  @see org.cp.elements.data.conversion.Converter#convert(Object)