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.Inactivateable;
022    import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
023    import org.kuali.rice.kns.util.KualiDecimal;
024    import org.kuali.rice.kns.util.ObjectUtils;
025    
026    /**
027     * 
028     */
029    public class ProposalSubcontractor extends PersistableBusinessObjectBase implements Inactivateable {
030    
031        private String proposalSubcontractorNumber;
032        private Long proposalNumber;
033        private String subcontractorNumber;
034        private KualiDecimal proposalSubcontractorAmount;
035        private String proposalSubcontractorDescription;
036        private boolean active = true;
037    
038        private SubContractor subcontractor;
039    
040        /**
041         * Default constructor.
042         */
043        public ProposalSubcontractor() {
044    
045        }
046    
047        /**
048         * Gets the proposalSubcontractorNumber attribute.
049         * 
050         * @return Returns the proposalSubcontractorNumber
051         */
052        public String getProposalSubcontractorNumber() {
053            return proposalSubcontractorNumber;
054        }
055    
056        /**
057         * Sets the proposalSubcontractorNumber attribute.
058         * 
059         * @param proposalSubcontractorNumber The proposalSubcontractorNumber to set.
060         */
061        public void setProposalSubcontractorNumber(String proposalSubcontractorNumber) {
062            this.proposalSubcontractorNumber = proposalSubcontractorNumber;
063        }
064    
065    
066        /**
067         * Gets the proposalNumber attribute.
068         * 
069         * @return Returns the proposalNumber
070         */
071        public Long getProposalNumber() {
072            return proposalNumber;
073        }
074    
075        /**
076         * Sets the proposalNumber attribute.
077         * 
078         * @param proposalNumber The proposalNumber to set.
079         */
080        public void setProposalNumber(Long proposalNumber) {
081            this.proposalNumber = proposalNumber;
082        }
083    
084    
085        /**
086         * Gets the subcontractorNumber attribute.
087         * 
088         * @return Returns the subcontractorNumber
089         */
090        public String getSubcontractorNumber() {
091            return subcontractorNumber;
092        }
093    
094        /**
095         * Sets the subcontractorNumber attribute.
096         * 
097         * @param subcontractorNumber The subcontractorNumber to set.
098         */
099        public void setSubcontractorNumber(String subcontractorNumber) {
100            this.subcontractorNumber = subcontractorNumber;
101        }
102    
103    
104        /**
105         * Gets the proposalSubcontractorAmount attribute.
106         * 
107         * @return Returns the proposalSubcontractorAmount
108         */
109        public KualiDecimal getProposalSubcontractorAmount() {
110            return proposalSubcontractorAmount;
111        }
112    
113        /**
114         * Sets the proposalSubcontractorAmount attribute.
115         * 
116         * @param proposalSubcontractorAmount The proposalSubcontractorAmount to set.
117         */
118        public void setProposalSubcontractorAmount(KualiDecimal proposalSubcontractorAmount) {
119            this.proposalSubcontractorAmount = proposalSubcontractorAmount;
120        }
121    
122        /**
123         * Gets the proposalSubcontractorDescription attribute.
124         * 
125         * @return Returns the proposalSubcontractorDescription.
126         */
127        public String getProposalSubcontractorDescription() {
128            return proposalSubcontractorDescription;
129        }
130    
131        /**
132         * Sets the proposalSubcontractorDescription attribute value.
133         * 
134         * @param proposalSubcontractorDescription The proposalSubcontractorDescription to set.
135         */
136        public void setProposalSubcontractorDescription(String proposalSubcontractorDescription) {
137            this.proposalSubcontractorDescription = proposalSubcontractorDescription;
138        }
139    
140        /**
141         * Gets the active attribute.
142         * 
143         * @return Returns the active.
144         */
145        public boolean isActive() {
146            return active;
147        }
148    
149        /**
150         * Sets the active attribute value.
151         * 
152         * @param active The active to set.
153         */
154        public void setActive(boolean active) {
155            this.active = active;
156        }
157    
158        /**
159         * @return Returns the subcontractor.
160         */
161        public SubContractor getSubcontractor() {
162            return subcontractor;
163        }
164    
165        /**
166         * @param subcontractor The subcontractor to set.
167         * @deprecated
168         */
169        public void setSubcontractor(SubContractor subcontractor) {
170            this.subcontractor = subcontractor;
171        }
172    
173        /**
174         * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
175         */
176        protected LinkedHashMap toStringMapper() {
177            LinkedHashMap m = new LinkedHashMap();
178            m.put("proposalSubcontractorNumber", this.proposalSubcontractorNumber);
179            if (this.proposalNumber != null) {
180                m.put("proposalNumber", this.proposalNumber.toString());
181            }
182            m.put("subcontractorNumber", this.subcontractorNumber);
183            return m;
184        }
185    
186        /**
187         * This can be displayed by Proposal.xml lookup results.
188         * 
189         * @see Object#toString()
190         */
191        @Override
192        public String toString() {
193            // todo: get "nonexistent" from ApplicationResources.properties via KFSKeyConstants?
194            String name = ObjectUtils.isNull(getSubcontractor()) ? "nonexistent" : getSubcontractor().getSubcontractorName();
195            String description = getProposalSubcontractorDescription() == null ? "" : " " + getProposalSubcontractorDescription();
196            return name + " " + getProposalSubcontractorAmount() + description;
197        }
198    }