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    }