1 /* 2 * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 /* 26 * $Id: KeySelectorException.java,v 1.3 2005/05/10 15:47:42 mullan Exp $ 27 */ 28 package javax.xml.crypto; 29 30 import java.io.PrintStream; 31 import java.io.PrintWriter; 32 33 /** 34 * Indicates an exceptional condition thrown by a {@link KeySelector}. 35 * 36 * <p>A {@code KeySelectorException} can contain a cause: another 37 * throwable that caused this {@code KeySelectorException} to get thrown. 38 * 39 * @author Sean Mullan 40 * @author JSR 105 Expert Group 41 * @since 1.6 42 */ 43 public class KeySelectorException extends Exception { 44 45 private static final long serialVersionUID = -7480033639322531109L; 46 47 /** 48 * The throwable that caused this exception to get thrown, or 49 * {@code null} if this exception was not caused by another throwable 50 * or if the causative throwable is unknown. 51 * 52 * @serial 53 */ 54 private Throwable cause; 55 56 /** 57 * Constructs a new {@code KeySelectorException} with 58 * {@code null} as its detail message. 59 */ 60 public KeySelectorException() { 61 super(); 62 } 63 64 /** 65 * Constructs a new {@code KeySelectorException} with the specified 66 * detail message. 67 * 68 * @param message the detail message 69 */ 70 public KeySelectorException(String message) { 71 super(message); 72 } 73 74 /** 75 * Constructs a new {@code KeySelectorException} with the 76 * specified detail message and cause. 77 * <p>Note that the detail message associated with 78 * {@code cause} is <i>not</i> automatically incorporated in 79 * this exception's detail message. 80 * 81 * @param message the detail message 82 * @param cause the cause (A {@code null} value is permitted, and 83 * indicates that the cause is nonexistent or unknown.) 84 */ 85 public KeySelectorException(String message, Throwable cause) { 86 super(message); 87 this.cause = cause; 88 } 89 90 /** 91 * Constructs a new {@code KeySelectorException} with the specified 92 * cause and a detail message of 93 * {@code (cause==null ? null : cause.toString())} 94 * (which typically contains the class and detail message of 95 * {@code cause}). 96 * 97 * @param cause the cause (A {@code null} value is permitted, and 98 * indicates that the cause is nonexistent or unknown.) 99 */ 100 public KeySelectorException(Throwable cause) { 101 super(cause==null ? null : cause.toString()); 102 this.cause = cause; 103 } 104 105 /** 106 * Returns the cause of this {@code KeySelectorException} or 107 * {@code null} if the cause is nonexistent or unknown. (The 108 * cause is the throwable that caused this 109 * {@code KeySelectorException} to get thrown.) 110 * 111 * @return the cause of this {@code KeySelectorException} or 112 * {@code null} if the cause is nonexistent or unknown. 113 */ 114 public Throwable getCause() { 115 return cause; 116 } 117 118 /** 119 * Prints this {@code KeySelectorException}, its backtrace and 120 * the cause's backtrace to the standard error stream. 121 */ 122 public void printStackTrace() { 123 super.printStackTrace(); 124 //XXX print backtrace of cause 125 } 126 127 /** 128 * Prints this {@code KeySelectorException}, its backtrace and 129 * the cause's backtrace to the specified print stream. 130 * 131 * @param s {@code PrintStream} to use for output 132 */ 133 public void printStackTrace(PrintStream s) { 134 super.printStackTrace(s); 135 //XXX print backtrace of cause 136 } 137 138 /** 139 * Prints this {@code KeySelectorException}, its backtrace and 140 * the cause's backtrace to the specified print writer. 141 * 142 * @param s {@code PrintWriter} to use for output 143 */ 144 public void printStackTrace(PrintWriter s) { 145 super.printStackTrace(s); 146 //XXX print backtrace of cause 147 } 148 }