Changement de sémantique de la méthode hasValue


Cette page ne doit être appliquée que si le script vous demande de passer la migration manuelle dataholder.20210701.HASVALUE

L'intervention d'un développeur sera nécessaire pour cette migration manuelle

Si la migration assistée vous a mené sur cette page c'est que vous utilisez - dans vos sources java et/ou des scripts personnels dans WEB-INF/param/scripts - des méthodes du DataHolder dont la sémantique a changé.

Partie 1

Dans un 1er temps, recherchez toutes les occurrences de hasValue, hasLocalValue et hasExternalValue.
Pour chacune d'elles, il faut se poser la question suivante "est-ce que le test doit répondre vrai pour une valeur qui serait vide ?"
Si oui, vous devez remplacer ces méthodes par hasValueOrEmpty, hasLocalValueOrEmpty et hasExternalValueOrEmpty.

Pour rappel :
- un repeater est considéré comme vide si le nœud est présent mais qu'il n'y a pas d'entrée.
- un composite est considéré comme vide si le nœud est présent mais qu'il ne contient aucune donnée

Cas fréquent :
on fait souvent appel à hasValue avant un removeValue. La méthode removeValue a été modifiée pour ne plus lancer d'exception lorsqu'il n'y a pas de donnée. On peut donc simplement supprimer l'appel à hasValue et appeler directement removeValue.

Partie 2

Dans un 2e temps, recherchez toutes les occurrences de hasNonEmptyValue, hasNonEmptyLocalValue et hasNonEmptyExternalValue et les remplacer par hasValue, hasLocalValue et hasExternalValue.

Les méthodes hasNonEmpty**Value n'existant plus, vous devriez avoir des erreurs de compilation pour chacune d'elle.

Retour en haut