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 }