code: @Override
    public <QT extends Identifiable<Long>> QT convert(Long value, Class<QT> identifiableType) {
  
      try {
  
        Identifiable<Long> identifiableObject =
          getObjectFactory().create(identifiableType, new Class[] { Long.class }, value);
  
        if (identifiableObject.isNew()) {
          identifiableObject.setId(value);
        }
  
        return identifiableType.cast(identifiableObject);
      }
      catch (Throwable cause) {
        throw newConversionException(cause, "Cannot convert Long [%1$d] into an Object of type [%2$s]",
          value, identifiableType);
      }
    }
docs: Converts an {@link Object} of {@link Class type S} into an {@link Object} of {@link Class qualifying type QT}.
  
  @param <QT> {@link Class qualifying type} extending {@link Class type T}.
  @param value {@link Object} of {@link Class type S} to convert.
  @param identifiableType the {@link Class qualifying type} of the {@link Object} resolved in the conversion.
  @return the converted {@link Object} of {@link Class qualifying type QT}.
  @throws ConversionException if the {@link Object} cannot be converted.
  @throws IllegalArgumentException if {@link Class qualifying type} is {@literal null}.
  @see org.cp.elements.data.conversion.ConversionService#convert(Object, Class)
  @see #convert(Object)