@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);
    }
  }
@ 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 ) ; } }
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)