/**
* $Revision: 2408 $
* $Date: 2004-11-02 20:53:30 -0300 (Tue, 02 Nov 2004) $
*
* Copyright 2003-2005 Jive Software.
*
* All rights reserved. Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jivesoftware.smack.packet;
/**
* Represents a stream error packet. Stream errors are unrecoverable errors
* where the server will close the unrelying TCP connection after the stream
* error was sent to the client. These is the list of stream errors as defined
* in the XMPP spec:
* <p>
*
* <table border=1>
* <tr>
* <td><b>Code</b></td>
* <td><b>Description</b></td>
* </tr>
* <tr>
* <td>bad-format</td>
* <td>the entity has sent XML that cannot be processed</td>
* </tr>
* <tr>
* <td>unsupported-encoding</td>
* <td>the entity has sent a namespace prefix that is unsupported</td>
* </tr>
* <tr>
* <td>bad-namespace-prefix</td>
* <td>Remote Server Timeout</td>
* </tr>
* <tr>
* <td>conflict</td>
* <td>the server is closing the active stream for this entity because a new
* stream has been initiated that conflicts with the existing stream.</td>
* </tr>
* <tr>
* <td>connection-timeout</td>
* <td>the entity has not generated any traffic over the stream for some period
* of time.</td>
* </tr>
* <tr>
* <td>host-gone</td>
* <td>the value of the 'to' attribute provided by the initiating entity in the
* stream header corresponds to a hostname that is no longer hosted by the
* server.</td>
* </tr>
* <tr>
* <td>host-unknown</td>
* <td>the value of the 'to' attribute provided by the initiating entity in the
* stream header does not correspond to a hostname that is hosted by the server.
* </td>
* </tr>
* <tr>
* <td>improper-addressing</td>
* <td>a stanza sent between two servers lacks a 'to' or 'from' attribute</td>
* </tr>
* <tr>
* <td>internal-server-error</td>
* <td>the server has experienced a misconfiguration.</td>
* </tr>
* <tr>
* <td>invalid-from</td>
* <td>the JID or hostname provided in a 'from' address does not match an
* authorized JID.</td>
* </tr>
* <tr>
* <td>invalid-id</td>
* <td>the stream ID or dialback ID is invalid or does not match an ID
* previously provided.</td>
* </tr>
* <tr>
* <td>invalid-namespace</td>
* <td>the streams namespace name is invalid.</td>
* </tr>
* <tr>
* <td>invalid-xml</td>
* <td>the entity has sent invalid XML over the stream.</td>
* </tr>
* <tr>
* <td>not-authorized</td>
* <td>the entity has attempted to send data before the stream has been
* authenticated</td>
* </tr>
* <tr>
* <td>policy-violation</td>
* <td>the entity has violated some local service policy.</td>
* </tr>
* <tr>
* <td>remote-connection-failed</td>
* <td>Rthe server is unable to properly connect to a remote entity.</td>
* </tr>
* <tr>
* <td>resource-constraint</td>
* <td>Rthe server lacks the system resources necessary to service the stream.</td>
* </tr>
* <tr>
* <td>restricted-xml</td>
* <td>the entity has attempted to send restricted XML features.</td>
* </tr>
* <tr>
* <td>see-other-host</td>
* <td>the server will not provide service to the initiating entity but is
* redirecting traffic to another host.</td>
* </tr>
* <tr>
* <td>system-shutdown</td>
* <td>the server is being shut down and all active streams are being closed.</td>
* </tr>
* <tr>
* <td>undefined-condition</td>
* <td>the error condition is not one of those defined by the other conditions
* in this list.</td>
* </tr>
* <tr>
* <td>unsupported-encoding</td>
* <td>the initiating entity has encoded the stream in an encoding that is not
* supported.</td>
* </tr>
* <tr>
* <td>unsupported-stanza-type</td>
* <td>the initiating entity has sent a first-level child of the stream that is
* not supported.</td>
* </tr>
* <tr>
* <td>unsupported-version</td>
* <td>the value of the 'version' attribute provided by the initiating entity in
* the stream header specifies a version of XMPP that is not supported.</td>
* </tr>
* <tr>
* <td>xml-not-well-formed</td>
* <td>the initiating entity has sent XML that is not well-formed.</td>
* </tr>
* </table>
*
* @author Gaston Dombiak
*/
public class StreamError {
private final String code;
public StreamError(String code) {
super();
this.code = code;
}
/**
* Returns the error code.
*
* @return the error code.
*/
public String getCode() {
return code;
}
@Override
public String toString() {
final StringBuilder txt = new StringBuilder();
txt.append("stream:error (").append(code).append(")");
return txt.toString();
}
}