001/*
002 * CDDL HEADER START
003 *
004 * The contents of this file are subject to the terms of the
005 * Common Development and Distribution License, Version 1.0 only
006 * (the "License").  You may not use this file except in compliance
007 * with the License.
008 *
009 * You can obtain a copy of the license at
010 * docs/licenses/cddl.txt
011 * or http://www.opensource.org/licenses/cddl1.php.
012 * See the License for the specific language governing permissions
013 * and limitations under the License.
014 *
015 * When distributing Covered Code, include this CDDL HEADER in each
016 * file and include the License file at
017 * docs/licenses/cddl.txt.  If applicable,
018 * add the following below this CDDL HEADER, with the fields enclosed
019 * by brackets "[]" replaced with your own identifying information:
020 *      Portions Copyright [yyyy] [name of copyright owner]
021 *
022 * CDDL HEADER END
023 *
024 *
025 *      Portions Copyright 2007-2021 Ping Identity Corporation
026 *      Portions Copyright 2006-2008 Sun Microsystems, Inc.
027 */
028package com.unboundid.directory.sdk.common.types;
029
030
031
032/**
033 * This enumeration defines the set of possible reasons for the closure of a
034 * connection between a client and the server.
035 */
036public enum DisconnectReason
037{
038  /**
039   * The disconnect reason that indicates that the client connection was closed
040   * because the client unbind from the server.
041   */
042  UNBIND("Client Unbind"),
043
044
045
046  /**
047   * The disconnect reason that indicates that the client connection was closed
048   * because the client disconnected without unbinding.
049   */
050  CLIENT_DISCONNECT("Client Disconnect"),
051
052
053
054  /**
055   * The disconnect reason that indicates that the client connection was closed
056   * because the client connection was rejected.
057   */
058  CONNECTION_REJECTED("Client Connection Rejected"),
059
060
061
062  /**
063   * The disconnect reason that indicates that the client connection was closed
064   * because of an I/O error.
065   */
066  IO_ERROR("I/O Error"),
067
068
069
070  /**
071   * The disconnect reason that indicates that the client connection was closed
072   * because of a protocol error.
073   */
074  PROTOCOL_ERROR("Protocol Error"),
075
076
077
078  /**
079   * The disconnect reason that indicates that the client connection was closed
080   * because the Directory Server shut down.
081   */
082  SERVER_SHUTDOWN("Server Shutdown"),
083
084
085
086  /**
087   * The disconnect reason that indicates that the client connection was closed
088   * because an administrator terminated the connection.
089   */
090  ADMIN_DISCONNECT("Administrative Termination"),
091
092
093
094  /**
095   * The disconnect reason that indicates that the client connection was closed
096   * because of a security problem.
097   */
098  SECURITY_PROBLEM("Security Problem"),
099
100
101
102  /**
103   * The disconnect reason that indicates that the client connection was closed
104   * because the maximum allowed request size was exceeded.
105   */
106  MAX_REQUEST_SIZE_EXCEEDED("Maximum Request Size Exceeded"),
107
108
109
110  /**
111   * The disconnect reason that indicates that the client connection was closed
112   * because an administrative limit was exceeded.
113   */
114  ADMIN_LIMIT_EXCEEDED("Administrative Limit Exceeded"),
115
116
117
118  /**
119   * The disconnect reason that indicates that the client connection was closed
120   * because the idle time limit was exceeded.
121   */
122  IDLE_TIME_LIMIT_EXCEEDED("Idle Time Limit Exceeded"),
123
124
125
126  /**
127   * The disconnect reason that indicates that the client connection was closed
128   * because of an I/O timeout.
129   */
130  IO_TIMEOUT("I/O Timeout"),
131
132
133
134  /**
135   * The disconnect reason that indicates that the client connection
136   * was closed because of an internal error within the server.
137   */
138  SERVER_ERROR("Server Error"),
139
140
141
142  /**
143   * The disconnect reason that indicates that the client connection
144   * was closed by a plugin.
145   */
146  CLOSED_BY_PLUGIN("Connection Closed by Plugin"),
147
148
149
150  /**
151   * The disconnect reason that indicates that the client connection
152   * was closed for some other reason.
153   */
154  OTHER("Unknown Closure Reason");
155
156
157
158  // The disconnect reason.
159  private final String message;
160
161
162  /**
163   * Creates a new disconnect reason element with the provided closure message.
164   *
165   * @param  message  The message for this disconnect reason.
166   */
167  DisconnectReason(final String message)
168  {
169    this.message = message;
170  }
171
172
173
174  /**
175   * Retrieves the human-readable disconnect reason.
176   *
177   * @return  The human-readable disconnect reason.
178   */
179  public String getClosureMessage()
180  {
181    return message;
182  }
183
184
185
186  /**
187   * Retrieves a string representation of this disconnect reason.
188   *
189   * @return  A string representation of this disconnect reason.
190   */
191  @Override()
192  public String toString()
193  {
194    return message;
195  }
196}