16d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Finkpackage fi.iki.elonen; 26d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink 36d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Finkimport fi.iki.elonen.WebSocketFrame.CloseCode; 46d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink 56d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Finkimport java.io.IOException; 66d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink 76d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Finkpublic class WebSocketException extends IOException { 86d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink private CloseCode code; 96d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink private String reason; 106d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink 116d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink public WebSocketException(Exception cause) { 126d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink this(CloseCode.InternalServerError, cause.toString(), cause); 136d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink } 146d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink 156d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink public WebSocketException(CloseCode code, String reason) { 166d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink this(code, reason, null); 176d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink } 186d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink 196d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink public WebSocketException(CloseCode code, String reason, Exception cause) { 206d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink super(code + ": " + reason, cause); 216d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink this.code = code; 226d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink this.reason = reason; 236d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink } 246d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink 256d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink public CloseCode getCode() { 266d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink return code; 276d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink } 286d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink 296d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink public String getReason() { 306d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink return reason; 316d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink } 326d3737c76afdb1c991bf8d96e3dd2cc622435f09Niko Fink} 33