001: /*
002: * Copyright (c) 2001 Silvere Martin-Michiellot All Rights Reserved.
003: *
004: * Silvere Martin-Michiellot grants you ("Licensee") a non-exclusive,
005: * royalty free, license to use, modify and redistribute this
006: * software in source and binary code form,
007: * provided that i) this copyright notice and license appear on all copies of
008: * the software; and ii) Licensee does not utilize the software in a manner
009: * which is disparaging to Silvere Martin-Michiellot.
010: *
011: * This software is provided "AS IS," without a warranty of any kind. ALL
012: * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
013: * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
014: * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. Silvere Martin-Michiellot
015: * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
016: * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
017: * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL
018: * Silvere Martin-Michiellot OR ITS LICENSORS BE LIABLE
019: * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
020: * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
021: * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
022: * OR INABILITY TO USE SOFTWARE, EVEN IF Silvere Martin-Michiellot HAS BEEN
023: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
024: *
025: * This software is not designed or intended for use in on-line control of
026: * aircraft, air traffic, aircraft navigation or aircraft communications; or in
027: * the design, construction, operation or maintenance of any nuclear
028: * facility. Licensee represents and warrants that it will not use or
029: * redistribute the Software for such purposes.
030: *
031: * @Author: Silvere Martin-Michiellot
032: *
033: */
034:
035: package com.db.net;
036:
037: /**
038: * This class provides a holding Object for control messages sent to the ClientHelper.
039: */
040:
041: import java.io.Serializable;
042:
043: public class ControlReply extends Message implements Serializable {
044:
045: public static final int REFUSED = 0;
046: public static final int ACCEPTED = 1;
047:
048: private int replyKind;
049: private Object objectValue;
050: private String refusedValue;
051:
052: //ControlReply should then be send to the correct client
053: //ControlReply should contain the answer to the request if it can be done and the the reason why it couldn't be done the rest of the time
054: public ControlReply(int replyKind) {
055:
056: if ((replyKind >= ControlReply.REFUSED)
057: && (replyKind <= ControlReply.ACCEPTED)) {
058: this .replyKind = replyKind;
059: } else {
060: throw new IllegalArgumentException(
061: "reply kind must be one of ControlReply.REFUSED or ControlReply.ACCEPTED.");
062: }
063:
064: }
065:
066: public int getReplyKind() {
067:
068: return this .replyKind;
069:
070: }
071:
072: public Object getObjectValue() {
073:
074: if (this .replyKind == ControlReply.ACCEPTED) {
075: return this .objectValue;
076: } else {
077: return null;
078: }
079:
080: }
081:
082: //should be done once for all
083: //works only with Reply.ACCEPTED
084: public void setObjectValue(Object objectValue) {
085:
086: if (this .replyKind == ControlReply.ACCEPTED) {
087: this .objectValue = objectValue;
088: }
089:
090: }
091:
092: public String getRefusedValue() {
093:
094: if (this .replyKind == ControlReply.REFUSED) {
095: return this .refusedValue;
096: } else {
097: return null;
098: }
099:
100: }
101:
102: //should be done once for all
103: //works only with ControlReply.REFUSED
104: public void setRefusedValue(String refusedValue) {
105:
106: if (this.replyKind == ControlReply.REFUSED) {
107: this.refusedValue = refusedValue;
108: }
109:
110: }
111:
112: }
|