1 /*
2 * Copyright 2011 The Kuali Foundation
3 *
4 * Licensed under the Educational Community License, Version 2.0 (the
5 * "License"); you may not use this file except in compliance with the
6 * License. You may obtain a copy of the License at
7 *
8 * http://www.osedu.org/licenses/ECL-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13 * implied. See the License for the specific language governing
14 * permissions and limitations under the License.
15 */
16 package org.kuali.student.r2.common.infc;
17
18 public interface ValidationResult {
19
20 public enum ErrorLevel {
21
22 OK(0), WARN(1), ERROR(2);
23 int level;
24
25 private ErrorLevel(int level) {
26 this.level = level;
27 }
28
29 public int getLevel() {
30 return level;
31 }
32
33 public static ErrorLevel fromInt(int level) {
34 switch (level) {
35 case 0:
36 return OK;
37 case 1:
38 return WARN;
39 case 2:
40 return ERROR;
41 default:
42 throw new IllegalArgumentException(level + "");
43 }
44 }
45
46 public static ErrorLevel min(ErrorLevel e1, ErrorLevel e2) {
47 return e1.ordinal() < e2.ordinal() ? e1 : e2;
48 }
49
50 public static ErrorLevel max(ErrorLevel e1, ErrorLevel e2) {
51 return e1.ordinal() > e2.ordinal() ? e1 : e2;
52 }
53 }
54
55 /**
56 * Message explaining this validation result
57 *
58 * If an error it is an an error message.
59 *
60 * TODO: decide if this is a key that then gets resolved into a
61 * real localized message using the message service or the final
62 * localized message itself
63 *
64 * @name Message
65 * @readOnly
66 */
67 public String getMessage();
68
69 /**
70 * Identifies the element (field) that is the focus of the
71 * validation. Uses xpath (dot) notation to navigate to the
72 * field, for example: officialIdentifier.code
73 *
74 * TODO: find out how repeating substructures are handled in this
75 * notation, with [n] occurrence brackets?
76 *
77 * @name Element
78 * @readOnly
79 * @required
80 */
81 public String getElement();
82
83 /**
84 * Indicates the severity of the validation result.
85 *
86 * 0=OK
87 * 1=WARN
88 * 2=ERROR
89 *
90 * @name Level
91 * @readOnly
92 * @required
93 */
94 public ErrorLevel getLevel();
95
96
97
98
99 }