// Path: src/api/java/org/java_websocket/exceptions/InvalidDataException.java
// public class InvalidDataException extends Exception {
// 	/**
// 	 * Serializable
// 	 */
// 	private static final long serialVersionUID = 3731842424390998726L;
// 
// 	private int closecode;
// 
// 	public InvalidDataException(int closecode) {
// 		this.closecode = closecode;
// 	}
// 
// 	public InvalidDataException(int closecode, String s) {
// 		super(s);
// 		this.closecode = closecode;
// 	}
// 
// 	public InvalidDataException(int closecode, String s, Throwable t) {
// 		super(s, t);
// 		this.closecode = closecode;
// 	}
// 
// 	public InvalidDataException(int closecode, Throwable t) {
// 		super(t);
// 		this.closecode = closecode;
// 	}
// 
// 	public int getCloseCode() {
// 		return closecode;
// 	}
// 
// }
// 
// Path: src/api/java/org/java_websocket/exceptions/InvalidFrameException.java
// public class InvalidFrameException extends InvalidDataException {
// 
// 	/**
// 	 * Serializable
// 	 */
// 	private static final long serialVersionUID = -9016496369828887591L;
// 
// 	public InvalidFrameException() {
// 		super(CloseFrame.PROTOCOL_ERROR);
// 	}
// 
// 	public InvalidFrameException(String arg0) {
// 		super(CloseFrame.PROTOCOL_ERROR, arg0);
// 	}
// 
// 	public InvalidFrameException(String arg0, Throwable arg1) {
// 		super(CloseFrame.PROTOCOL_ERROR, arg0, arg1);
// 	}
// 
// 	public InvalidFrameException(Throwable arg0) {
// 		super(CloseFrame.PROTOCOL_ERROR, arg0);
// 	}
// }


import org.java_websocket.exceptions.InvalidDataException;
import org.java_websocket.exceptions.InvalidFrameException;
package org.java_websocket.framing;


public interface CloseFrame extends Framedata {
	/**
	 * indicates a normal closure, meaning whatever purpose the connection was
	 * established for has been fulfilled.
	 */
	public static final int NORMAL = 1000;
	/**
	 * 1001 indicates that an endpoint is "going away", such as a server going
	 * down, or a browser having navigated away from a page.
	 */
	public static final int GOING_AWAY = 1001;
	/**
	 * 1002 indicates that an endpoint is terminating the connection due to a
	 * protocol error.
	 */
	public static final int PROTOCOL_ERROR = 1002;
	/**
	 * 1003 indicates that an endpoint is terminating the connection because it
	 * has received a type of data it cannot accept (e.g. an endpoint that
	 * understands only text data MAY send this if it receives a binary
	 * message).
	 */
	public static final int REFUSE = 1003;
	/* 1004: Reserved. The specific meaning might be defined in the future. */
	/**
	 * 1005 is a reserved value and MUST NOT be set as a status code in a Close
	 * control frame by an endpoint. It is designated for use in applications
	 * expecting a status code to indicate that no status code was actually
	 * present.
	 */
	public static final int NOCODE = 1005;
	/**
	 * 1006 is a reserved value and MUST NOT be set as a status code in a Close
	 * control frame by an endpoint. It is designated for use in applications
	 * expecting a status code to indicate that the connection was closed
	 * abnormally, e.g. without sending or receiving a Close control frame.
	 */
	public static final int ABNORMAL_CLOSE = 1006;
	/**
	 * 1007 indicates that an endpoint is terminating the connection because it
	 * has received data within a message that was not consistent with the type
	 * of the message (e.g., non-UTF-8 [RFC3629] data within a text message).
	 */
	public static final int NO_UTF8 = 1007;
	/**
	 * 1008 indicates that an endpoint is terminating the connection because it
	 * has received a message that violates its policy. This is a generic status
	 * code that can be returned when there is no other more suitable status
	 * code (e.g. 1003 or 1009), or if there is a need to hide specific details
	 * about the policy.
	 */
	public static final int POLICY_VALIDATION = 1008;
	/**
	 * 1009 indicates that an endpoint is terminating the connection because it
	 * has received a message which is too big for it to process.
	 */
// Path: src/api/java/org/java_websocket/exceptions/InvalidDataException.java
// public class InvalidDataException extends Exception {
// 	/**
// 	 * Serializable
// 	 */
// 	private static final long serialVersionUID = 3731842424390998726L;
// 
// 	private int closecode;
// 
// 	public InvalidDataException(int closecode) {
// 		this.closecode = closecode;
// 	}
// 
// 	public InvalidDataException(int closecode, String s) {
// 		super(s);
// 		this.closecode = closecode;
// 	}
// 
// 	public InvalidDataException(int closecode, String s, Throwable t) {
// 		super(s, t);
// 		this.closecode = closecode;
// 	}
// 
// 	public InvalidDataException(int closecode, Throwable t) {
// 		super(t);
// 		this.closecode = closecode;
// 	}
// 
// 	public int getCloseCode() {
// 		return closecode;
// 	}
// 
// }
// 
// Path: src/api/java/org/java_websocket/exceptions/InvalidFrameException.java
// public class InvalidFrameException extends InvalidDataException {
// 
// 	/**
// 	 * Serializable
// 	 */
// 	private static final long serialVersionUID = -9016496369828887591L;
// 
// 	public InvalidFrameException() {
// 		super(CloseFrame.PROTOCOL_ERROR);
// 	}
// 
// 	public InvalidFrameException(String arg0) {
// 		super(CloseFrame.PROTOCOL_ERROR, arg0);
// 	}
// 
// 	public InvalidFrameException(String arg0, Throwable arg1) {
// 		super(CloseFrame.PROTOCOL_ERROR, arg0, arg1);
// 	}
// 
// 	public InvalidFrameException(Throwable arg0) {
// 		super(CloseFrame.PROTOCOL_ERROR, arg0);
// 	}
// }


// Path: src/api/java/org/java_websocket/framing/CloseFrame.java
import org.java_websocket.exceptions.InvalidDataException;
import org.java_websocket.exceptions.InvalidFrameException;

package org.java_websocket.framing;


public interface CloseFrame extends Framedata {
	/**
	 * indicates a normal closure, meaning whatever purpose the connection was
	 * established for has been fulfilled.
	 */
	public static final int NORMAL = 1000;
	/**
	 * 1001 indicates that an endpoint is "going away", such as a server going
	 * down, or a browser having navigated away from a page.
	 */
	public static final int GOING_AWAY = 1001;
	/**
	 * 1002 indicates that an endpoint is terminating the connection due to a
	 * protocol error.
	 */
	public static final int PROTOCOL_ERROR = 1002;
	/**
	 * 1003 indicates that an endpoint is terminating the connection because it
	 * has received a type of data it cannot accept (e.g. an endpoint that
	 * understands only text data MAY send this if it receives a binary
	 * message).
	 */
	public static final int REFUSE = 1003;
	/* 1004: Reserved. The specific meaning might be defined in the future. */
	/**
	 * 1005 is a reserved value and MUST NOT be set as a status code in a Close
	 * control frame by an endpoint. It is designated for use in applications
	 * expecting a status code to indicate that no status code was actually
	 * present.
	 */
	public static final int NOCODE = 1005;
	/**
	 * 1006 is a reserved value and MUST NOT be set as a status code in a Close
	 * control frame by an endpoint. It is designated for use in applications
	 * expecting a status code to indicate that the connection was closed
	 * abnormally, e.g. without sending or receiving a Close control frame.
	 */
	public static final int ABNORMAL_CLOSE = 1006;
	/**
	 * 1007 indicates that an endpoint is terminating the connection because it
	 * has received data within a message that was not consistent with the type
	 * of the message (e.g., non-UTF-8 [RFC3629] data within a text message).
	 */
	public static final int NO_UTF8 = 1007;
	/**
	 * 1008 indicates that an endpoint is terminating the connection because it
	 * has received a message that violates its policy. This is a generic status
	 * code that can be returned when there is no other more suitable status
	 * code (e.g. 1003 or 1009), or if there is a need to hide specific details
	 * about the policy.
	 */
	public static final int POLICY_VALIDATION = 1008;
	/**
	 * 1009 indicates that an endpoint is terminating the connection because it
	 * has received a message which is too big for it to process.
	 */
	public static final int TOOBIG = 1009;