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    package org.kuali.kfs.sys.businessobject;
017    
018    import java.util.LinkedHashMap;
019    
020    import org.kuali.kfs.sys.context.SpringContext;
021    import org.kuali.rice.kns.service.CountryService;
022    import org.kuali.rice.kns.service.StateService;
023    import org.kuali.rice.kns.bo.Country;
024    import org.kuali.rice.kns.bo.Inactivateable;
025    import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
026    import org.kuali.rice.kns.bo.State;
027    import org.kuali.rice.kns.util.ObjectUtils;
028    
029    public class TaxRegionState extends PersistableBusinessObjectBase implements Inactivateable {
030    
031        private String postalCountryCode;
032        private String stateCode;
033        private String taxRegionCode;
034        private boolean active;
035    
036        private Country country;
037        private State state;
038        private TaxRegion taxRegion;
039    
040        public boolean isActive() {
041            return active;
042        }
043    
044        public void setActive(boolean active) {
045            this.active = active;
046        }
047    
048        public String getStateCode() {
049            return stateCode;
050        }
051    
052        public void setStateCode(String stateCode) {
053            this.stateCode = stateCode;
054        }
055    
056        public TaxRegion getTaxRegion() {        
057            if(ObjectUtils.isNull(taxRegion)){
058                this.refreshReferenceObject("taxRegion");
059            }
060            return taxRegion;
061        }
062    
063        public void setTaxRegion(TaxRegion taxRegion) {
064            this.taxRegion = taxRegion;
065        }
066    
067        public String getTaxRegionCode() {
068            return taxRegionCode;
069        }
070    
071        public void setTaxRegionCode(String taxRegionCode) {
072            this.taxRegionCode = taxRegionCode;
073        }
074    
075        protected LinkedHashMap toStringMapper() {
076            LinkedHashMap m = new LinkedHashMap();
077            m.put("stateCode", this.stateCode);
078            m.put("taxRegionCode", this.taxRegionCode);
079            return m;
080        }
081    
082        public State getState() {
083            state = SpringContext.getBean(StateService.class).getByPrimaryIdIfNecessary(postalCountryCode, stateCode, state);
084            return state;
085        }
086    
087        public void setState(State state) {
088            this.state = state;
089        }
090    
091        /**
092         * Gets the postalCountryCode attribute.
093         * 
094         * @return Returns the postalCountryCode.
095         */
096        public String getPostalCountryCode() {
097            return postalCountryCode;
098        }
099    
100        /**
101         * Sets the postalCountryCode attribute value.
102         * 
103         * @param postalCountryCode The postalCountryCode to set.
104         */
105        public void setPostalCountryCode(String postalCountryCode) {
106            this.postalCountryCode = postalCountryCode;
107        }
108    
109        /**
110         * Gets the country attribute. 
111         * @return Returns the country.
112         */
113        public Country getCountry() {
114            country = SpringContext.getBean(CountryService.class).getByPrimaryIdIfNecessary(postalCountryCode, country);
115            return country;
116        }
117    
118        /**
119         * Sets the country attribute value.
120         * @param country The country to set.
121         */
122        public void setCountry(Country country) {
123            this.country = country;
124        }
125    }