001 /**
002 *
003 * Copyright 2004 Protique Ltd
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 *
017 **/
018
019 package org.activemq.transport;
020 import java.net.URI;
021
022 /**
023 * A TransportStatusEvent is raised when the state of the underlying transport channel changes
024 *
025 * @version $Revision: 1.2 $
026 */
027 public class TransportStatusEvent {
028 /**
029 * The channel has been intially and successfully connected
030 */
031 public static final int CONNECTED = 1;
032 /**
033 * The channel has been disconnected, but maybe reconnected
034 */
035 public static final int DISCONNECTED = 2;
036 /**
037 * The channel has successfully reconnected after a disconnect
038 */
039 public static final int RECONNECTED = 3;
040 /**
041 * The channel has failed
042 */
043 public static final int FAILED = 4;
044
045 /**
046 * The channel has been STOPPED
047 */
048 public static final int STOPPED = 5;
049
050 private URI remoteURI;
051 private int channelStatus;
052 private TransportChannel transportChannel;
053
054 /**
055 * Default Constructor
056 */
057 public TransportStatusEvent() {
058 }
059
060 /**
061 * Constructs an event with the given channel status.
062 * @param tc
063 * @param channelStatus the channel status
064 */
065 public TransportStatusEvent(TransportChannel tc, int channelStatus) {
066 this.transportChannel = tc;
067 this.channelStatus = channelStatus;
068 }
069
070 /**
071 * @return a pretty print of this
072 */
073 public String toString() {
074 StringBuffer rc = new StringBuffer();
075 rc.append("Channel: ");
076 if( transportChannel !=null )
077 rc.append(transportChannel);
078 else if( remoteURI!=null )
079 rc.append(remoteURI);
080 rc.append(" has ");
081 rc.append(getStatusAsString(channelStatus));
082 return rc.toString();
083 }
084
085 private String getStatusAsString(int status) {
086 String result = null;
087 switch (status) {
088 case CONNECTED :
089 result = "connected";
090 break;
091 case DISCONNECTED :
092 result = "disconnected";
093 break;
094 case RECONNECTED :
095 result = "reconnected";
096 break;
097 case FAILED :
098 result = "failed";
099 break;
100 case STOPPED:
101 result = "stopped";
102 break;
103 default :
104 result = "unknown";
105 }
106 return result;
107 }
108
109 /**
110 * @return Returns the channelStatus.
111 */
112 public int getChannelStatus() {
113 return channelStatus;
114 }
115
116 /**
117 * @param channelStatus The channelStatus to set.
118 */
119 public void setChannelStatus(int channelStatus) {
120 this.channelStatus = channelStatus;
121 }
122
123 /**
124 * @return Returns the transportChannel.
125 */
126 public TransportChannel getTransportChannel() {
127 return transportChannel;
128 }
129 /**
130 * @param transportChannel The transportChannel to set.
131 */
132 public void setTransportChannel(TransportChannel transportChannel) {
133 this.transportChannel = transportChannel;
134 }
135
136 /**
137 * @return Returns the remoteURI.
138 */
139 public URI getRemoteURI() {
140 return remoteURI;
141 }
142
143 /**
144 * @param remoteURI The remoteURI to set.
145 */
146 public void setRemoteURI(URI remoteURI) {
147 this.remoteURI = remoteURI;
148 }
149 }