1 /**
2 * Copyright 2005-2012 The Kuali Foundation
3 *
4 * Licensed under the Educational Community License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.opensource.org/licenses/ecl2.php
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 implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.kuali.rice.kim.api.identity.address;
17
18 import org.joda.time.DateTime;
19 import org.kuali.rice.core.api.mo.common.Defaultable;
20 import org.kuali.rice.core.api.mo.common.GloballyUnique;
21 import org.kuali.rice.core.api.mo.common.Identifiable;
22 import org.kuali.rice.core.api.mo.common.Versioned;
23 import org.kuali.rice.core.api.mo.common.active.Inactivatable;
24 import org.kuali.rice.kim.api.identity.CodedAttributeContract;
25
26 /**
27 * address information for a KIM identity
28 *
29 * @author Kuali Rice Team (rice.collab@kuali.org)
30 *
31 */
32 public interface EntityAddressContract extends Versioned, GloballyUnique, Defaultable, Inactivatable, Identifiable {
33
34 /**
35 * Gets this id of the parent identity object.
36 * @return the identity id for this {@link EntityAddressContract}
37 */
38 String getEntityId();
39
40 /**
41 * Gets this entityTypeCode of the {@link EntityAddressContract}'s object.
42 * @return the identity type code for this {@link EntityAddressContract}
43 */
44 String getEntityTypeCode();
45
46 /**
47 * Gets this {@link EntityAddressContract}'s address type code.
48 * @return the address type for this {@link EntityAddressContract}, or null if none has been assigned.
49 */
50 CodedAttributeContract getAddressType();
51
52 /**
53 * Returns the attention line for this {@link EntityAddressContract}
54 * Corresponds to PESC AttentionLine
55 * @return the attention line
56 */
57 String getAttentionLine();
58
59 /**
60 * Gets this {@link EntityAddressContract}'s first line.
61 * @return the first line for this {@link EntityAddressContract}, or null if none has been assigned.
62 */
63 String getLine1();
64
65 /**
66 * Gets this {@link EntityAddressContract}'s second line.
67 * @return the second line for this {@link EntityAddressContract}, or null if none has been assigned.
68 */
69 String getLine2();
70
71 /**
72 * Gets this {@link EntityAddressContract}'s third line.
73 * @return the third line for this {@link EntityAddressContract}, or null if none has been assigned.
74 */
75 String getLine3();
76
77 /**
78 * Gets this {@link EntityAddressContract}'s city name.
79 * Corresponds to PESC City.
80 * @return the city name for this {@link EntityAddressContract}, or null if none has been assigned.
81 */
82 String getCity();
83
84 /**
85 * Gets this {@link EntityAddressContract}'s state code.
86 * Corresponds to PESC StateProvinceCode.
87 * @return the state code for this {@link EntityAddressContract}, or null if none has been assigned.
88 */
89 String getStateProvinceCode();
90
91 /**
92 * Gets this {@link EntityAddressContract}'s postal code.
93 * @return the postal code for this {@link EntityAddressContract}, or null if none has been assigned.
94 */
95 String getPostalCode();
96
97 /**
98 * Gets this {@link EntityAddressContract}'s country code.
99 * @return the country code for this {@link EntityAddressContract}, or null if none has been assigned.
100 */
101 String getCountryCode();
102
103 /**
104 * Returns the unmasked attention line for this {@link EntityAddressContract}
105 * @return the unmasked attention line
106 */
107 String getAttentionLineUnmasked();
108
109 /**
110 * Gets this {@link EntityAddressContract}'s unmasked first line.
111 * @return the unmasked first line for this {@link EntityAddressContract}, or null if none has been assigned.
112 */
113 String getLine1Unmasked();
114
115 /**
116 * Gets this {@link EntityAddressContract}'s unmasked second line.
117 * @return the unmasked second line for this {@link EntityAddressContract}, or null if none has been assigned.
118 */
119 String getLine2Unmasked();
120
121 /**
122 * Gets this {@link EntityAddressContract}'s unmasked third line.
123 * @return the unmasked third line for this {@link EntityAddressContract}, or null if none has been assigned.
124 */
125 String getLine3Unmasked();
126
127 /**
128 * Gets this {@link EntityAddressContract}'s unmasked city name.
129 * @return the unmasked city name for this {@link EntityAddressContract}, or null if none has been assigned.
130 */
131 String getCityUnmasked();
132
133 /**
134 * Gets this {@link EntityAddressContract}'s unmasked state code.
135 * @return the unmasked state code for this {@link EntityAddressContract}, or null if none has been assigned.
136 */
137 String getStateProvinceCodeUnmasked();
138
139 /**
140 * Gets this {@link EntityAddressContract}'s unmasked postal code.
141 * @return the unmasked postal code for this {@link EntityAddressContract}, or null if none has been assigned.
142 */
143 String getPostalCodeUnmasked();
144
145 /**
146 * Gets this {@link EntityAddressContract}'s unmasked country code.
147 * @return the unmasked country code for this {@link EntityAddressContract}, or null if none has been assigned.
148 */
149 String getCountryCodeUnmasked();
150
151 /**
152 * Returns the {@link EntityAddressContract}'s address format
153 * Corresponds to PESC AddressFormat
154 * @return the address format or null if none is set
155 */
156 String getAddressFormat();
157
158 /**
159 * Returns the {@link EntityAddressContract}'s modification date
160 * Corresponds to PESC ModifiedDate
161 * @return the modification date
162 */
163 DateTime getModifiedDate();
164
165 /**
166 * Returns the {@link EntityAddressContract}'s validation date
167 * Corresponds to PESC ValidatedDate
168 * @return the validation date or null if none is set
169 */
170 DateTime getValidatedDate();
171
172 /**
173 * Returns whether the {@link EntityAddressContract} is validated
174 * Corresponds to PESC Validated
175 * @return whether the address is validated
176 */
177 boolean isValidated();
178
179 /**
180 * Returns the {@link EntityAddressContract}'s note/message
181 * Corresponds to PESC NoteMessage
182 * @return the note/message or null if none is set
183 */
184 String getNoteMessage();
185
186 /**
187 * Returns a boolean value that determines if address fields should be suppressed.
188 * @return boolean value that determines if address should be suppressed.
189 */
190 boolean isSuppressAddress();
191 }