1 /* 2 * Copyright (c) 1999, 2015, 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 package javax.security.auth.callback; 27 28 /** 29 * <p> Underlying security services instantiate and pass a 30 * {@code TextOutputCallback} to the {@code handle} 31 * method of a {@code CallbackHandler} to display information messages, 32 * warning messages and error messages. 33 * 34 * @since 1.4 35 * @see javax.security.auth.callback.CallbackHandler 36 */ 37 public class TextOutputCallback implements Callback, java.io.Serializable { 38 39 private static final long serialVersionUID = 1689502495511663102L; 40 41 /** Information message. */ 42 public static final int INFORMATION = 0; 43 /** Warning message. */ 44 public static final int WARNING = 1; 45 /** Error message. */ 46 public static final int ERROR = 2; 47 48 /** 49 * @serial 50 * @since 1.4 51 */ 52 private int messageType; 53 /** 54 * @serial 55 * @since 1.4 56 */ 57 private String message; 58 59 /** 60 * Construct a TextOutputCallback with a message type and message 61 * to be displayed. 62 * 63 * @param messageType the message type ({@code INFORMATION}, 64 * {@code WARNING} or {@code ERROR}). 65 * 66 * @param message the message to be displayed. 67 * 68 * @exception IllegalArgumentException if {@code messageType} 69 * is not either {@code INFORMATION}, 70 * {@code WARNING} or {@code ERROR}, 71 * if {@code message} is null, 72 * or if {@code message} has a length of 0. 73 */ 74 public TextOutputCallback(int messageType, String message) { 75 if ((messageType != INFORMATION && 76 messageType != WARNING && messageType != ERROR) || 77 message == null || message.isEmpty()) 78 throw new IllegalArgumentException(); 79 80 this.messageType = messageType; 81 this.message = message; 82 } 83 84 /** 85 * Get the message type. 86 * 87 * @return the message type ({@code INFORMATION}, 88 * {@code WARNING} or {@code ERROR}). 89 */ 90 public int getMessageType() { 91 return messageType; 92 } 93 94 /** 95 * Get the message to be displayed. 96 * 97 * @return the message to be displayed. 98 */ 99 public String getMessage() { 100 return message; 101 } 102 }