Search in sources :

Example 1 with MessageKey

use of io.vertigo.core.locale.MessageKey in project vertigo by KleeGroup.

the class AbstractSqlExceptionHandler method handleTooLargeValueSqlException.

/**
 * @param sqle Exception base de données
 */
protected final VUserException handleTooLargeValueSqlException(final SQLException sqle) {
    final MessageKey key = Resources.DYNAMO_SQL_CONSTRAINT_TOO_BIG_VALUE;
    LOGGER.warn(MessageText.of(key).getDisplay(), sqle);
    // On se contente de logger l'exception cause mais on ne la lie pas à l'erreur utilisateur.
    return new VUserException(key);
}
Also used : MessageKey(io.vertigo.core.locale.MessageKey) VUserException(io.vertigo.lang.VUserException)

Example 2 with MessageKey

use of io.vertigo.core.locale.MessageKey in project vertigo by KleeGroup.

the class AbstractSqlExceptionHandler method handleConstraintSQLException.

/**
 * Traite l'exception lié à la contrainte d'intégrité.
 * Et lance une KUserException avec le message par défaut passé en paramètre et une MessageKey basé sur le nom de la contrainte.
 * @param sqle Exception SQL
 * @param defaultMsg Message par defaut
 */
protected final VUserException handleConstraintSQLException(final SQLException sqle, final MessageKey defaultMsg) {
    final String msg = sqle.getMessage();
    // recherche le nom de la contrainte d'intégrité
    final String constraintName = extractConstraintName(msg);
    Assertion.checkNotNull(constraintName, "Impossible d''extraire le nom de la contrainte : {0}", msg);
    // recherche le message pour l'utilisateur
    // On crée une clé de MessageText dynamiquement sur le nom de la contrainte d'intégrité
    // Ex: CK_PERSON_FULL_NAME_UNIQUE
    final MessageKey constraintKey = new SQLConstraintMessageKey(constraintName);
    // On récupère ici le message externalisé par défaut : Resources.DYNAMO_SQL_CONSTRAINT_IMPOSSIBLE_TO_DELETE ou Resources.DYNAMO_SQL_CONSTRAINT_ALREADY_REGISTRED)
    final String defaultConstraintMsg = MessageText.of(defaultMsg).getDisplay();
    final MessageText userContraintMessageText = MessageText.builder().withKey(constraintKey).withDefaultMsg(defaultConstraintMsg).build();
    final VUserException constraintException = new VUserException(userContraintMessageText);
    constraintException.initCause(sqle);
    return constraintException;
}
Also used : MessageKey(io.vertigo.core.locale.MessageKey) MessageText(io.vertigo.core.locale.MessageText) VUserException(io.vertigo.lang.VUserException)

Aggregations

MessageKey (io.vertigo.core.locale.MessageKey)2 VUserException (io.vertigo.lang.VUserException)2 MessageText (io.vertigo.core.locale.MessageText)1