001: //$Id: SimpleVO.java 230 2006-04-05 20:12:50Z jg_hamburg $
002: /********************************************************************************
003: * DDTUnit, a Datadriven Approach to Unit- and Moduletesting
004: * Copyright (c) 2004, Joerg and Kai Gellien
005: * All rights reserved.
006: *
007: * The Software is provided under the terms of the Common Public License 1.0
008: * as provided with the distribution of DDTUnit in the file cpl-v10.html.
009: * Redistribution and use in source and binary forms, with or without
010: * modification, are permitted provided that the following conditions
011: * are met:
012: *
013: * + Redistributions of source code must retain the above copyright
014: * notice, this list of conditions and the following disclaimer.
015: *
016: * + Redistributions in binary form must reproduce the above
017: * copyright notice, this list of conditions and the following
018: * disclaimer in the documentation and/or other materials provided
019: * with the distribution.
020: *
021: * + Neither the name of the authors or DDTUnit, nor the
022: * names of its contributors may be used to endorse or promote
023: * products derived from this software without specific prior
024: * written permission.
025: *
026: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
027: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
028: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
029: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
030: * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
031: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
032: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
033: * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
034: * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
035: * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
036: * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
037: ********************************************************************************/package junitx.ddtunit.resources;
038:
039: import java.util.Date;
040:
041: /**
042: * Example test resource representing a set of value objects usually used as
043: * transport medium between different architectural system layers.
044: *
045: * @author jg
046: */
047: public class SimpleVO {
048: private static final String LF = System
049: .getProperty("line.separator");
050:
051: private Integer integerValue;
052:
053: private String stringValue;
054:
055: private Double doubleValue;
056:
057: private Date dateValue;
058:
059: private SimpleVO simpleVO;
060:
061: private Integer[] integerArray;
062:
063: /**
064: * Default constructor.
065: */
066: public SimpleVO() {
067: // no special initialization neccessary
068: }
069:
070: /**
071: *
072: * @param text
073: */
074: public SimpleVO(String text) {
075: this .stringValue = text;
076: }
077:
078: /**
079: *
080: * @param text
081: * @param intValue
082: * @param doubleValue
083: */
084: public SimpleVO(String text, Integer intValue, Double doubleValue) {
085: this .stringValue = text;
086: this .integerValue = intValue;
087: this .doubleValue = doubleValue;
088: }
089:
090: /**
091: * Overwrite toString() method with instance specific information
092: */
093: public String toString() {
094: StringBuffer sb = new StringBuffer("SimpleVO:");
095:
096: sb.append(LF).append(" textValue=\"").append(stringValue)
097: .append("\"");
098: sb.append(LF).append(" integerValue=\"").append(integerValue)
099: .append("\"");
100: sb.append(LF).append(" doubleValue=\"").append(doubleValue)
101: .append("\"");
102:
103: return sb.toString();
104: }
105:
106: /**
107: * overwrite default equals() method
108: */
109: public boolean equals(Object object) {
110: boolean check = false;
111:
112: if (SimpleVO.class.isInstance(object)) {
113: SimpleVO vo = (SimpleVO) object;
114:
115: if ((((this .integerValue != null) && this .integerValue
116: .equals(vo.getIntegerValue())) || ((this .integerValue == null) && (vo
117: .getIntegerValue() == null)))
118: && (((this .doubleValue != null) && this .doubleValue
119: .equals(vo.getDoubleValue())) || ((this .doubleValue == null) && (vo
120: .getDoubleValue() == null)))
121: && (((this .stringValue != null) && this .stringValue
122: .equals(vo.getStringValue())) || ((this .stringValue == null) && (vo
123: .getStringValue() == null)))
124: && (((this .dateValue != null) && this .dateValue
125: .equals(vo.getDateValue())) || ((this .dateValue == null) && (vo
126: .getDateValue() == null)))) {
127: check = true;
128: }
129: }
130:
131: return check;
132: }
133:
134: /**
135: * Overwrite default hashCode()
136: */
137: public int hashCode() {
138: final int CONST_VAL = 42;
139: int hashVal = CONST_VAL;
140: if (this .stringValue != null) {
141: hashVal = hashVal + this .stringValue.hashCode();
142: }
143: if (this .integerValue != null) {
144: hashVal = (CONST_VAL * hashVal)
145: + this .integerValue.intValue();
146: }
147: if (this .doubleValue != null) {
148: hashVal = (CONST_VAL * hashVal)
149: + this .doubleValue.intValue();
150: }
151: if (this .dateValue != null) {
152: hashVal = (int) ((CONST_VAL * hashVal) + this .dateValue
153: .getTime());
154: }
155: return hashVal;
156: }
157:
158: /**
159: * @return Returns the doubleValue.
160: */
161: public Double getDoubleValue() {
162: return doubleValue;
163: }
164:
165: /**
166: * @param doubleValue The doubleValue to set.
167: */
168: public void setDoubleValue(Double doubleValue) {
169: this .doubleValue = new Double(doubleValue.doubleValue() * 10.0);
170: }
171:
172: /**
173: * @return Returns the integerValue.
174: */
175: public Integer getIntegerValue() {
176: return integerValue;
177: }
178:
179: /**
180: * @param integerValue The integerValue to set.
181: */
182: public void setIntegerValue(Integer integerValue) {
183: this .integerValue = new Integer(integerValue.intValue() * 10);
184: }
185:
186: /**
187: * @return Returns the stringValue.
188: */
189: public String getStringValue() {
190: return stringValue;
191: }
192:
193: /**
194: * @param stringValue The stringValue to set.
195: */
196: public void setStringValue(String stringValue) {
197: this .stringValue = stringValue;
198: }
199:
200: public Date getDateValue() {
201: return this .dateValue;
202: }
203:
204: public void setDateValue(Date dateValue) {
205: this.dateValue = dateValue;
206: }
207: }
|