001 /**
002 * Copyright 2005-2013 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.rice.kim.api.identity.address;
017
018 import org.joda.time.DateTime;
019 import org.kuali.rice.core.api.mo.common.Defaultable;
020 import org.kuali.rice.core.api.mo.common.GloballyUnique;
021 import org.kuali.rice.core.api.mo.common.Identifiable;
022 import org.kuali.rice.core.api.mo.common.Versioned;
023 import org.kuali.rice.core.api.mo.common.active.Inactivatable;
024 import org.kuali.rice.kim.api.identity.CodedAttributeContract;
025
026 /**
027 * address information for a KIM identity
028 *
029 * @author Kuali Rice Team (rice.collab@kuali.org)
030 *
031 */
032 public interface EntityAddressContract extends Versioned, GloballyUnique, Defaultable, Inactivatable, Identifiable {
033
034 /**
035 * Gets this id of the parent identity object.
036 * @return the identity id for this {@link EntityAddressContract}
037 */
038 String getEntityId();
039
040 /**
041 * Gets this entityTypeCode of the {@link EntityAddressContract}'s object.
042 * @return the identity type code for this {@link EntityAddressContract}
043 */
044 String getEntityTypeCode();
045
046 /**
047 * Gets this {@link EntityAddressContract}'s address type code.
048 * @return the address type for this {@link EntityAddressContract}, or null if none has been assigned.
049 */
050 CodedAttributeContract getAddressType();
051
052 /**
053 * Returns the attention line for this {@link EntityAddressContract}
054 * Corresponds to PESC AttentionLine
055 * @return the attention line
056 */
057 String getAttentionLine();
058
059 /**
060 * Gets this {@link EntityAddressContract}'s first line.
061 * @return the first line for this {@link EntityAddressContract}, or null if none has been assigned.
062 */
063 String getLine1();
064
065 /**
066 * Gets this {@link EntityAddressContract}'s second line.
067 * @return the second line for this {@link EntityAddressContract}, or null if none has been assigned.
068 */
069 String getLine2();
070
071 /**
072 * Gets this {@link EntityAddressContract}'s third line.
073 * @return the third line for this {@link EntityAddressContract}, or null if none has been assigned.
074 */
075 String getLine3();
076
077 /**
078 * Gets this {@link EntityAddressContract}'s city name.
079 * Corresponds to PESC City.
080 * @return the city name for this {@link EntityAddressContract}, or null if none has been assigned.
081 */
082 String getCity();
083
084 /**
085 * Gets this {@link EntityAddressContract}'s state code.
086 * Corresponds to PESC StateProvinceCode.
087 * @return the state code for this {@link EntityAddressContract}, or null if none has been assigned.
088 */
089 String getStateProvinceCode();
090
091 /**
092 * Gets this {@link EntityAddressContract}'s postal code.
093 * @return the postal code for this {@link EntityAddressContract}, or null if none has been assigned.
094 */
095 String getPostalCode();
096
097 /**
098 * Gets this {@link EntityAddressContract}'s country code.
099 * @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 }