code: @Override
    public URI convert(Object value) {
  
      try {
        if (value instanceof URI) {
          return (URI) value;
        }
        else if (value instanceof URL) {
          return ((URL) value).toURI();
        }
        else if (value instanceof String) {
          return URI.create(value.toString().trim());
        }
        else {
          throw newConversionException("[%s] is not a valid URI", value);
        }
      }
      catch (Exception cause) {
  
        if (cause instanceof ConversionException) {
          throw (ConversionException) cause;
        }
  
        throw newConversionException(cause, "[%s] is not a valid URI", value);
      }
    }
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)