001: /*
002: * Copyright (c) 2001 - 2004 ivata limited.
003: * All rights reserved.
004: * -----------------------------------------------------------------------------
005: * ivata masks may be redistributed under the GNU General Public
006: * License as published by the Free Software Foundation;
007: * version 2 of the License.
008: *
009: * These programs are free software; you can redistribute them and/or
010: * modify them under the terms of the GNU General Public License
011: * as published by the Free Software Foundation; version 2 of the License.
012: *
013: * These programs are distributed in the hope that they will be useful,
014: * but WITHOUT ANY WARRANTY; without even the implied warranty of
015: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
016: *
017: * See the GNU General Public License in the file LICENSE.txt for more
018: * details.
019: *
020: * If you would like a copy of the GNU General Public License write to
021: *
022: * Free Software Foundation, Inc.
023: * 59 Temple Place - Suite 330
024: * Boston, MA 02111-1307, USA.
025: *
026: *
027: * To arrange commercial support and licensing, contact ivata at
028: * http://www.ivata.com/contact.jsp
029: * -----------------------------------------------------------------------------
030: * $Log: CustomerDO.java,v $
031: * Revision 1.5 2005/09/14 12:41:33 colinmacleod
032: * Added serialVersionUID.
033: *
034: * Revision 1.4 2005/04/09 18:04:13 colinmacleod
035: * Changed copyright text to GPL v2 explicitly.
036: *
037: * Revision 1.3 2005/01/07 09:13:04 colinmacleod
038: * Added newline to end of file.
039: *
040: * Revision 1.2 2005/01/07 08:08:17 colinmacleod
041: * Moved up a version number.
042: * Changed copyright notices to 2005.
043: * Updated the documentation:
044: * - started working on multiproject:site docu.
045: * - changed the logo.
046: * Added checkstyle and fixed LOADS of style issues.
047: * Added separate thirdparty subproject.
048: * Added struts (in web), util and webgui (in webtheme) from ivata op.
049: *
050: * Revision 1.1 2004/11/10 17:18:19 colinmacleod
051: * New value object classes - first version in CVS.
052: * -----------------------------------------------------------------------------
053: */
054: package com.ivata.mask.web.demo.customer;
055:
056: import com.ivata.mask.util.StringHandling;
057: import com.ivata.mask.web.demo.valueobject.DemoValueObject;
058:
059: /**
060: * <p>
061: * Represents a single customer of this imaginary system.
062: * </p>
063: *
064: * @since ivata masks 0.4 (2004-05-20)
065: * @author Colin MacLeod
066: * <a href='mailto:colin.macleod@ivata.com'>colin.macleod@ivata.com</a>
067: * @version $Revision: 1.5 $
068: */
069: public final class CustomerDO extends DemoValueObject {
070: /**
071: * Serialization version (for <code>Serializable</code> interface).
072: */
073: private static final long serialVersionUID = 1L;
074: /**
075: * <p>
076: * Person's email address (ok - it's a simple system).
077: * </p>
078: */
079: private String emailAddress;
080: /**
081: * <p>
082: * Person's first name(s).
083: * </p>
084: */
085: private String firstName;
086: /**
087: * <p>
088: * Person's last name(s).
089: * </p>
090: */
091: private String lastName;
092: /**
093: * Full customer postal address, including carriage
094: * returns, region/state, country, etc.
095: */
096: private String postalAddress;
097:
098: /**
099: * <p>
100: * Construct a new customer instance with no id.
101: * </p>
102: */
103: public CustomerDO() {
104: super ();
105: }
106:
107: /**
108: * <p>
109: * Construct a new customer instance with the given unique identifier.
110: * </p>
111: *
112: * @param idParam unique identifier of this customer.
113: */
114: public CustomerDO(final int idParam) {
115: super (idParam);
116: }
117:
118: /**
119: * Get a text to display describing the customer. If the customer has a
120: * first and last name, then this will return something like "Freddie
121: * Kruger", otherwise just the first or last name is returned -
122: * whichever is present.
123: *
124: * @return customer's name.
125: * @see com.ivata.mask.valueobject.ValueObject#getStringValue()
126: */
127: public String getDisplayValue() {
128: StringBuffer stringValue = new StringBuffer();
129: if (!StringHandling.isNullOrEmpty(firstName)) {
130: stringValue.append(firstName.trim());
131: }
132: if (!StringHandling.isNullOrEmpty(lastName)) {
133: if (stringValue.length() > 0) {
134: stringValue.append(" ");
135: }
136: stringValue.append(lastName.trim());
137: }
138: return stringValue.toString();
139: }
140:
141: /**
142: * Person's email address (ok - it's a simple system).
143: *
144: * @return string email address such as
145: * <code>ted@nowhere.com</code>.
146: */
147: public String getEmailAddress() {
148: return emailAddress;
149: }
150:
151: /**
152: * <p>
153: * Person's first name(s).
154: * </p>
155: *
156: * @return first name such as "Bob", or "Sally".
157: */
158: public String getFirstName() {
159: return firstName;
160: }
161:
162: /**
163: * Person's last name(s).
164: *
165: * @return last name of the customer, such as "Smith" or
166: * "Tarrantino".
167: */
168: public String getLastName() {
169: return lastName;
170: }
171:
172: /**
173: * Full customer postal address, including carriage
174: * returns, region/state, country, etc.
175: *
176: * @return Customer's full snail-mail address.
177: */
178: public String getPostalAddress() {
179: return postalAddress;
180: }
181:
182: /**
183: * Person's email address (ok - it's a simple system).
184: *
185: * @param emailAddressParam string email address such as
186: * <code>ted@nowhere.com</code>.
187: */
188: public void setEmailAddress(final String emailAddressParam) {
189: emailAddress = emailAddressParam;
190: }
191:
192: /**
193: * <p>
194: * Person's first name(s).
195: * </p>
196: *
197: * @param firstNameParam first name such as "Bob", or
198: * "Sally".
199: */
200: public void setFirstName(final String firstNameParam) {
201: firstName = firstNameParam;
202: }
203:
204: /**
205: * Person's last name(s).
206: *
207: * @param lastNameParam last name of the customer, such as "Smith"
208: * or "Tarrantino".
209: */
210: public void setLastName(final String lastNameParam) {
211: lastName = lastNameParam;
212: }
213:
214: /**
215: * Full customer postal address, including carriage
216: * returns, region/state, country, etc.
217: *
218: * @param postalAddressParam Customer's full snail-mail address.
219: */
220: public void setPostalAddress(final String postalAddressParam) {
221: postalAddress = postalAddressParam;
222: }
223: }
|