Die Enum org.jowidgets.validation.MessageType
liefert die möglichen Message Typen. Diese werden in der
folgenden Tabelle dargestellt:
Type | Valid |
---|---|
OK | yes |
INFO | yes |
WARNING | yes |
INFO_ERROR | no |
ERROR | no |
Die Message Typen sind nach ihrem Schweregrad (Severity)
sortiert, wobei Error
der
schwerste Fehler ist. In der Spalte
Valid wird angegeben, ob der validierte
Wert als valide einstuft wird. Valide Werte
können weiter verarbeitet werden, zum Beispiel indem sie in die
Datenbank geschrieben, oder für eine andersartige Transaktion
verwendet werden. Nicht valide Werte sind abzulehnen.
Es folgt eine kurze Beschreibung der Semantik der einzelnen Message Typen:
Ein Validation Result hat gar keine oder genau eine OK Message ohne Text, wenn die Validierung erfolgreich war und es keine weiteren Informationen oder Warnungen zur Validierung gibt. Per Konvention hat eine OK Message keinen Message Text und Context.
Der Typ INFO kann verwendet werden, um Informationen anzuzeigen, wie zum Beispiel: „Die Angabe ist freiwillig“, „Eingabe korrekt“ oder „Gut gemacht!“.
Messages vom Typ WARNING können verwendet werden, wenn der Wert zwar (technisch) valide ist, es sich aber eventuell um einen Irrtum handelt, zum Beispiel weil der Wert ungewöhnlich erscheint. Auch kann der Nutzer über zusätzliche Folgen gewarnt werden, falls die Eingabe so übernommen wird. Beispiele für Message Texte sind: „Möchten die wirklich 100 Fernseher bestellen?“, „Die Maße liegen außerhalb des Normbereichs“, „Bei dieser Bestellmenge fallen zusätzliche Gebühren an!“, „Für diesen Artikel kann keine UsSt ausgewiesen werden!“.
Der Typ INFO_ERROR kann für Fehler verwendet werden, bei denen der Wert zwar technisch nicht valide ist (und somit auch nicht akzeptiert wird), der Nutzer aber bisher nichts falsch gemacht hat. Dies gilt zum Beispiel für Pflichtfelder, deren Editierung noch nicht begonnen wurde oder für Eingaben, die zum Beispiel durch Ergänzung noch richtig werden könnten. Beispiele wären: „Pflichtangabe“, „Bitte vervollständigen Sie die Eingabe“.
Der Typ ERROR gilt für alle anderen Fehler.
Die Typen INFO
und
INFO_ERROR
wurden Aufgrund von Kundenfeedback
eingeführt. So wollten Kunden neben negativen auch positives
Feedback beim Ausfüllen einer Maske haben, um sich bestätigt zu
fühlen, alles richtig gemacht zu haben. Des Weiteren wurde
bemängelt, dass eine Maske zum Erzeugen eines Datensatzes mit
Pflichtfeldern bereits beim Öffnen mit etlichen Fehlern
angezeigt wurde, obwohl man offensichtlich doch noch gar nichts
falsch gemacht habe. Meldungen vom Typ
INFO_ERROR
enthalten daher eher Information,
was zu tun ist, damit es richtig wird und werden in der Regel
(konfigurierbar) nicht mit roter Farbe angezeigt. Meldungen von
Typ ERROR
geben eher an, was falsch ist. Ein
gutes Beispiel für einen
schlechten
ERROR
Text wäre: „Geben sie einen
gültigen Wert ein“, besser wäre „Es sind nicht mehr
als 20 Zeichen erlaubt“.
Die Existenz der Fehlertypen bedeutet nicht, dass auch allen
Typen Verwendung finden müssen. Für einige Anwendungsfälle
reicht eventuell OK==richtig
und
ERROR==falsch
aus.
Die Enum MessageType
bietet folgende
Methode, um zu prüfen, ob der Typ zur Klasse der validen
Messages gehört oder nicht.
public boolean isValid() {...}
Die Werte werden anhand der oben angezeigten Tabelle zurückgegeben.
Die Enum MessageType
bietet folgende
Methoden, um den Schweregrad (Severity) zweier Message Types
zu vergleichen.
public boolean equalOrWorse(final MessageType messageType) {...} public boolean worse(final MessageType messageType) {...}
Die Methode equalOrWorse
liefert
true
zurück, falls der MessageType die
gleiche oder eine höhere Severity hat, als der übergebene. Die
Methode worse()
liefert
true
zurück, falls der MessageType eine
höhere Severity hat, als der übergebene.
Beispiel:
System.out.println(MessageType.ERROR.equalOrWorse(MessageType.WARNING)); System.out.println(MessageType.WARNING.equalOrWorse(MessageType.ERROR));
Ergebnis:
true false