For the latest news and information visit The GNU Crypto project

## gnu.crypto.tool
Class SimpleCallbackHandler

    java.lang.Object
      |
      +--gnu.crypto.tool.SimpleCallbackHandler

All Implemented Interfaces:
  CallbackHandler

public class SimpleCallbackHandler
extends java.lang.Object
implements CallbackHandler

A simple `CallbackHandler` for test purposes.

Constructor Summary
`SimpleCallbackHandler()`

Method Summary
`void` `handle(Callback[] callbacks)` Retrieve or display the information requested in the provided `Callback`s.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SimpleCallbackHandler

    public SimpleCallbackHandler()

Method Detail

### handle

    public void handle(Callback[] callbacks)
                throws java.io.IOException,
                       UnsupportedCallbackException

  Description copied from interface: `CallbackHandler`

  Retrieve or display the information requested in the provided `Callback`s.

  The `handle()` method implementation checks the instance(s) of the `Callback` object(s) passed in to retrieve or display the requested information. The following example is provided to help demonstrate what an `handle()` method implementation might look like. This example code is for guidance only. Many details, including proper error handling, are left out for simplicity.

      public void handle(Callback[] callbacks)
      throws IOException, UnsupportedCallbackException {
         for (int i = 0; i < callbacks.length; i++) {
            if (callbacks[i] instanceof TextOutputCallback) {
               // display the message according to the specified type
               TextOutputCallback toc = (TextOutputCallback)callbacks[i];
               switch (toc.getMessageType()) {
               case TextOutputCallback.INFORMATION:
                  System.out.println(toc.getMessage());
                  break;
               case TextOutputCallback.ERROR:
                  System.out.println("ERROR: " + toc.getMessage());
                  break;
               case TextOutputCallback.WARNING:
                  System.out.println("WARNING: " + toc.getMessage());
                  break;
               default:
                  throw new IOException("Unsupported message type: "
                        + toc.getMessageType());
               }
            } else if (callbacks[i] instanceof NameCallback) {
               // prompt the user for a username
               NameCallback nc = (NameCallback)callbacks[i];
               // ignore the provided defaultName
               System.err.print(nc.getPrompt());
               System.err.flush();
               nc.setName((new BufferedReader(
                     new InputStreamReader(System.in))).readLine());
            } else if (callbacks[i] instanceof PasswordCallback) {
               // prompt the user for sensitive information
               PasswordCallback pc = (PasswordCallback)callbacks[i];
               System.err.print(pc.getPrompt());
               System.err.flush();
               pc.setPassword(readPassword(System.in));
            } else {
               throw new UnsupportedCallbackException(
                     callbacks[i], "Unrecognized Callback");
            }
         }
      }

       // Reads user password from given input stream.
      private char[] readPassword(InputStream in) throws IOException {
         // insert code to read a user password from the input stream
      }

  Specified by:
    `handle` in interface `CallbackHandler`
  Parameters:
    `callbacks` - an array of `Callback` objects provided by an underlying security service which contains the information requested to be retrieved or displayed.
  Throws:
    `UnsupportedCallbackException` - if the implementation of this method does not support one or more of the Callbacks specified in the `callbacks` parameter.
    `java.io.IOException` - if an input or output error occurs.

For the latest news and information visit The GNU Crypto project

Copyright © 2001, 2002, 2003, 2004 Free Software Foundation, Inc.