001: /*
002: * Copyright (c) 2002-2007 JGoodies Karsten Lentzsch. All Rights Reserved.
003: *
004: * Redistribution and use in source and binary forms, with or without
005: * modification, are permitted provided that the following conditions are met:
006: *
007: * o Redistributions of source code must retain the above copyright notice,
008: * this list of conditions and the following disclaimer.
009: *
010: * o Redistributions in binary form must reproduce the above copyright notice,
011: * this list of conditions and the following disclaimer in the documentation
012: * and/or other materials provided with the distribution.
013: *
014: * o Neither the name of JGoodies Karsten Lentzsch nor the names of
015: * its contributors may be used to endorse or promote products derived
016: * from this software without specific prior written permission.
017: *
018: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
019: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
020: * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
021: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
022: * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
023: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
024: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
025: * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
026: * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
027: * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
028: * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
029: */
030:
031: package com.jgoodies.binding.tests.beans;
032:
033: import com.jgoodies.binding.beans.Model;
034:
035: /**
036: * A Java Bean that provides a bunch of properties.
037: * The property types are: Object, boolean and int;
038: * the access types are: read-write, read-only and write-only.
039: * In addition, there's a property that doesn't check for changes
040: * - and may cause problems with event notification cycles.
041: * This class is intended to be used by the Binding unit test suite.
042: *
043: * @author Karsten Lentzsch
044: * @version $Revision: 1.9 $
045: */
046: public final class CustomBean extends Model {
047:
048: public Object readWriteObjectProperty;
049: public boolean readWriteBooleanProperty;
050: public int readWriteIntProperty;
051: public Integer readWriteIntegerProperty;
052:
053: public Object readOnlyObjectProperty;
054: public boolean readOnlyBooleanProperty;
055: public int readOnlyIntProperty;
056:
057: public Object writeOnlyObjectProperty;
058: public boolean writeOnlyBooleanProperty;
059: public int writeOnlyIntProperty;
060:
061: // Getters and Setters for the Read/Write Properties **********************
062:
063: public Object getReadWriteObjectProperty() {
064: return readWriteObjectProperty;
065: }
066:
067: public void setReadWriteObjectProperty(Object newValue) {
068: Object oldValue = getReadWriteObjectProperty();
069: readWriteObjectProperty = newValue;
070: firePropertyChange("readWriteObjectProperty", oldValue,
071: newValue);
072: }
073:
074: public boolean isReadWriteBooleanProperty() {
075: return readWriteBooleanProperty;
076: }
077:
078: public void setReadWriteBooleanProperty(boolean newValue) {
079: boolean oldValue = isReadWriteBooleanProperty();
080: readWriteBooleanProperty = newValue;
081: firePropertyChange("readWriteBooleanProperty", oldValue,
082: newValue);
083: }
084:
085: public int getReadWriteIntProperty() {
086: return readWriteIntProperty;
087: }
088:
089: public void setReadWriteIntProperty(int newValue) {
090: int oldValue = getReadWriteIntProperty();
091: readWriteIntProperty = newValue;
092: firePropertyChange("readWriteIntProperty", oldValue, newValue);
093: }
094:
095: public Integer getReadWriteIntegerProperty() {
096: return readWriteIntegerProperty;
097: }
098:
099: public void setReadWriteIntegerProperty(Integer newValue) {
100: Integer oldValue = getReadWriteIntegerProperty();
101: readWriteIntegerProperty = newValue;
102: firePropertyChange("readWriteIntegerProperty", oldValue,
103: newValue);
104: }
105:
106: // Getters for the Read-Only Properties ***********************************
107:
108: public Object getReadOnlyObjectProperty() {
109: return readOnlyObjectProperty;
110: }
111:
112: public boolean isReadOnlyBooleanProperty() {
113: return readOnlyBooleanProperty;
114: }
115:
116: public int getReadOnlyIntProperty() {
117: return readOnlyIntProperty;
118: }
119:
120: // Setters for the Write-Only Properties **********************************
121:
122: public void setWriteOnlyObjectProperty(Object newValue) {
123: writeOnlyObjectProperty = newValue;
124: firePropertyChange("writeOnlyObjectProperty", null, newValue);
125: }
126:
127: public void setWriteOnlyBooleanProperty(boolean newValue) {
128: writeOnlyBooleanProperty = newValue;
129: firePropertyChange("writeOnlyBooleanProperty", null, Boolean
130: .valueOf(newValue));
131: }
132:
133: public void setWriteOnlyIntProperty(int newValue) {
134: writeOnlyIntProperty = newValue;
135: firePropertyChange("writeOnlyIntProperty", null, new Integer(
136: newValue));
137: }
138:
139: // Getters and Setters that Throw Runtime Exceptions **********************
140:
141: /**
142: * Throws a runtime exception.
143: *
144: * @return nothing - won't return
145: */
146: public Object getNoAccess() {
147: return new Integer(3 / 0);
148: }
149:
150: /**
151: * Throws a runtime exception.
152: *
153: * @param object an arbitrary object
154: */
155: public void setNoAccess(Object object) {
156: if (3 / 0 < 4 || object == null)
157: return;
158: }
159:
160: // Multiple Updates *******************************************************
161:
162: public void setReadWriteObjectProperties(Object object, boolean b,
163: int i) {
164: readWriteObjectProperty = object;
165: readWriteBooleanProperty = b;
166: readWriteIntProperty = i;
167: fireMultiplePropertiesChanged();
168: }
169:
170: }
|