001 /*
002 * Copyright 2011 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
017 package org.kuali.kfs.module.cg.businessobject;
018
019 import java.util.LinkedHashMap;
020
021 import org.kuali.rice.kns.bo.Country;
022 import org.kuali.rice.kns.bo.State;
023 import org.kuali.kfs.sys.context.SpringContext;
024 import org.kuali.rice.kns.service.CountryService;
025 import org.kuali.rice.kns.service.StateService;
026 import org.kuali.rice.kns.bo.Inactivateable;
027 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
028
029 /**
030 * Subcontractors are vendors involved with an awarded {@link Proposal}.
031 */
032 public class SubContractor extends PersistableBusinessObjectBase implements Inactivateable {
033
034 private String subcontractorNumber;
035 private String subcontractorName;
036 private String subcontractorAddressLine1;
037 private String subcontractorAddressLine2;
038 private String subcontractorCity;
039 private String subcontractorStateCode;
040 private String subcontractorZipCode;
041 private String subcontractorCountryCode;
042 private boolean active;
043
044 private State subcontractorState;
045 private Country subcontractorCountry;
046
047 /**
048 * Default no-arg constructor.
049 */
050 public SubContractor() {
051 }
052
053 /**
054 * Gets the subcontractorNumber attribute.
055 *
056 * @return Returns the subcontractorNumber
057 */
058 public String getSubcontractorNumber() {
059 return subcontractorNumber;
060 }
061
062 /**
063 * Sets the subcontractorNumber attribute.
064 *
065 * @param subcontractorNumber The subcontractorNumber to set.
066 */
067 public void setSubcontractorNumber(String subcontractorNumber) {
068 this.subcontractorNumber = subcontractorNumber;
069 }
070
071 /**
072 * Gets the subcontractorName attribute.
073 *
074 * @return Returns the subcontractorName
075 */
076 public String getSubcontractorName() {
077 return subcontractorName;
078 }
079
080 /**
081 * Sets the subcontractorName attribute.
082 *
083 * @param subcontractorName The subcontractorName to set.
084 */
085 public void setSubcontractorName(String subcontractorName) {
086 this.subcontractorName = subcontractorName;
087 }
088
089 /**
090 * Gets the subcontractorAddressLine1 attribute.
091 *
092 * @return Returns the subcontractorAddressLine1
093 */
094 public String getSubcontractorAddressLine1() {
095 return subcontractorAddressLine1;
096 }
097
098 /**
099 * Sets the subcontractorAddressLine1 attribute.
100 *
101 * @param subcontractorAddressLine1 The subcontractorAddressLine1 to set.
102 */
103 public void setSubcontractorAddressLine1(String subcontractorAddressLine1) {
104 this.subcontractorAddressLine1 = subcontractorAddressLine1;
105 }
106
107 /**
108 * Gets the subcontractorAddressLine2 attribute.
109 *
110 * @return Returns the subcontractorAddressLine2
111 */
112 public String getSubcontractorAddressLine2() {
113 return subcontractorAddressLine2;
114 }
115
116 /**
117 * Sets the subcontractorAddressLine2 attribute.
118 *
119 * @param subcontractorAddressLine2 The subcontractorAddressLine2 to set.
120 */
121 public void setSubcontractorAddressLine2(String subcontractorAddressLine2) {
122 this.subcontractorAddressLine2 = subcontractorAddressLine2;
123 }
124
125 /**
126 * Gets the subcontractorCity attribute.
127 *
128 * @return Returns the subcontractorCity
129 */
130 public String getSubcontractorCity() {
131 return subcontractorCity;
132 }
133
134 /**
135 * Sets the subcontractorCity attribute.
136 *
137 * @param subcontractorCity The subcontractorCity to set.
138 */
139 public void setSubcontractorCity(String subcontractorCity) {
140 this.subcontractorCity = subcontractorCity;
141 }
142
143 /**
144 * Gets the subcontractorStateCode attribute.
145 *
146 * @return Returns the subcontractorStateCode.
147 */
148 public String getSubcontractorStateCode() {
149 return subcontractorStateCode;
150 }
151
152 /**
153 * Sets the subcontractorStateCode attribute value.
154 *
155 * @param subcontractorStateCode The subcontractorStateCode to set.
156 */
157 public void setSubcontractorStateCode(String subcontractorStateCode) {
158 this.subcontractorStateCode = subcontractorStateCode;
159 }
160
161 /**
162 * Gets the subcontractorZipCode attribute.
163 *
164 * @return Returns the subcontractorZipCode
165 */
166 public String getSubcontractorZipCode() {
167 return subcontractorZipCode;
168 }
169
170 /**
171 * Sets the subcontractorZipCode attribute.
172 *
173 * @param subcontractorZipCode The subcontractorZipCode to set.
174 */
175 public void setSubcontractorZipCode(String subcontractorZipCode) {
176 this.subcontractorZipCode = subcontractorZipCode;
177 }
178
179 /**
180 * Gets the subcontractorCountryCode attribute.
181 *
182 * @return Returns the subcontractorCountryCode
183 */
184 public String getSubcontractorCountryCode() {
185 return subcontractorCountryCode;
186 }
187
188 /**
189 * Sets the subcontractorCountryCode attribute.
190 *
191 * @param subcontractorCountryCode The subcontractorCountryCode to set.
192 */
193 public void setSubcontractorCountryCode(String subcontractorCountryCode) {
194 this.subcontractorCountryCode = subcontractorCountryCode;
195 }
196
197 /**
198 * Gets the active attribute.
199 *
200 * @return Returns the active.
201 */
202 public boolean isActive() {
203 return active;
204 }
205
206 /**
207 * Sets the active attribute value.
208 *
209 * @param active The active to set.
210 */
211 public void setActive(boolean active) {
212 this.active = active;
213 }
214
215 /**
216 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
217 */
218 protected LinkedHashMap toStringMapper() {
219 LinkedHashMap m = new LinkedHashMap();
220 m.put("subcontractorNumber", this.getSubcontractorNumber());
221 return m;
222 }
223
224 /**
225 * Gets the {@link Country} in which the subcontractor is located.
226 *
227 * @return the {@link Country} in which the subcontractor is located.
228 */
229 public Country getSubcontractorCountry() {
230 subcontractorCountry = SpringContext.getBean(CountryService.class).getByPrimaryIdIfNecessary(subcontractorCountryCode, subcontractorCountry);
231 return subcontractorCountry;
232 }
233
234 /**
235 * Sets the {@link Country} in which the subcontractor is located.
236 *
237 * @param country the {@link Country} in which the subcontractor is located.
238 */
239 public void setSubcontractorCountry(Country country) {
240 this.subcontractorCountry = country;
241 }
242
243 /**
244 * Gets the {@link State} in which the subcontractor is located.
245 *
246 * @return the {@link State} in which the subcontractor is located.
247 */
248 public State getSubcontractorState() {
249 subcontractorState = SpringContext.getBean(StateService.class).getByPrimaryIdIfNecessary(subcontractorCountryCode, subcontractorStateCode, subcontractorState);
250 return subcontractorState;
251 }
252
253 /**
254 * Sets the {@link State} in which the subcontractor is located.
255 *
256 * @param state the {@link State} in which the subcontractor is located.
257 */
258 public void setSubcontractorState(State state) {
259 this.subcontractorState = state;
260 }
261
262 }