org.mozilla.javascript

## Class Kit

- java.lang.Object
- - org.mozilla.javascript.Kit

    public class Kit
    extends java.lang.Object

Collection of utilities

### Constructor Summary

Constructors
Constructor and Description
`Kit()`

### Method Summary

Methods
`static java.lang.Object` `addListener(java.lang.Object bag, java.lang.Object listener)` Add listener to bag of listeners.
`static java.lang.Class<?>` `classOrNull(java.lang.ClassLoader loader, java.lang.String className)` Attempt to load the class of the given name.
`static java.lang.Class<?>` `classOrNull(java.lang.String className)`
`static java.lang.RuntimeException` `codeBug()` Throws RuntimeException to indicate failed assertion.
`static java.lang.RuntimeException` `codeBug(java.lang.String msg)` Throws RuntimeException to indicate failed assertion.
`static java.lang.Object` `getListener(java.lang.Object bag, int index)` Get listener at index position in bag or null if index equals to number of listeners in bag.
`static java.lang.RuntimeException` `initCause(java.lang.RuntimeException ex, java.lang.Throwable cause)` If initCause methods exists in Throwable, call `ex.initCause(cause)` or otherwise do nothing.
`static java.lang.Object` `makeHashKeyFromPair(java.lang.Object key1, java.lang.Object key2)`
`static java.lang.String` `readReader(java.io.Reader r)`
`static byte[]` `readStream(java.io.InputStream is, int initialBufferCapacity)`
`static java.lang.Object` `removeListener(java.lang.Object bag, java.lang.Object listener)` Remove listener from bag of listeners.
`static int` `xDigitToInt(int c, int accumulator)` If character `c` is a hexadecimal digit, return `accumulator` * 16 plus corresponding number.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### Kit

    public Kit()

### Method Detail

#### classOrNull

    public static java.lang.Class<?> classOrNull(java.lang.String className)

#### classOrNull

    public static java.lang.Class<?> classOrNull(java.lang.ClassLoader loader,
                                 java.lang.String className)

Attempt to load the class of the given name. Note that the type parameter isn't checked.

#### initCause

    public static java.lang.RuntimeException initCause(java.lang.RuntimeException ex,
                                       java.lang.Throwable cause)

If initCause methods exists in Throwable, call `ex.initCause(cause)` or otherwise do nothing.

Returns:
  The `ex` argument.

#### xDigitToInt

    public static int xDigitToInt(int c,
                  int accumulator)

If character `c` is a hexadecimal digit, return `accumulator` * 16 plus corresponding number. Otherise return -1.

#### addListener

    public static java.lang.Object addListener(java.lang.Object bag,
                               java.lang.Object listener)

Add listener to bag of listeners. The function does not modify bag and return a new collection containing listener and all listeners from bag. Bag without listeners always represented as the null value.

Usage example:

         private volatile Object changeListeners;

         public void addMyListener(PropertyChangeListener l)
         {
             synchronized (this) {
                 changeListeners = Kit.addListener(changeListeners, l);
             }
         }

         public void removeTextListener(PropertyChangeListener l)
         {
             synchronized (this) {
                 changeListeners = Kit.removeListener(changeListeners, l);
             }
         }

         public void fireChangeEvent(Object oldValue, Object newValue)
         {
         // Get immune local copy
             Object listeners = changeListeners;
             if (listeners != null) {
                 PropertyChangeEvent e = new PropertyChangeEvent(
                     this, "someProperty" oldValue, newValue);
                 for (int i = 0; ; ++i) {
                     Object l = Kit.getListener(listeners, i);
                     if (l == null)
                         break;
                     ((PropertyChangeListener)l).propertyChange(e);
                 }
             }
         }

Parameters:
  `listener` - Listener to add to bag
  `bag` - Current collection of listeners.
Returns:
  A new bag containing all listeners from bag and listener.
See Also:
  `removeListener(Object bag, Object listener)`, `getListener(Object bag, int index)`

#### removeListener

    public static java.lang.Object removeListener(java.lang.Object bag,
                                  java.lang.Object listener)

Remove listener from bag of listeners. The function does not modify bag and return a new collection containing all listeners from bag except listener. If bag does not contain listener, the function returns bag.

For usage example, see `addListener(Object bag, Object listener)`.

Parameters:
  `listener` - Listener to remove from bag
  `bag` - Current collection of listeners.
Returns:
  A new bag containing all listeners from bag except listener.
See Also:
  `addListener(Object bag, Object listener)`, `getListener(Object bag, int index)`

#### getListener

    public static java.lang.Object getListener(java.lang.Object bag,
                               int index)

Get listener at index position in bag or null if index equals to number of listeners in bag.

For usage example, see `addListener(Object bag, Object listener)`.

Parameters:
  `bag` - Current collection of listeners.
  `index` - Index of the listener to access.
Returns:
  Listener at the given index or null.
See Also:
  `addListener(Object bag, Object listener)`, `removeListener(Object bag, Object listener)`

#### makeHashKeyFromPair

    public static java.lang.Object makeHashKeyFromPair(java.lang.Object key1,
                                       java.lang.Object key2)

#### readReader

    public static java.lang.String readReader(java.io.Reader r)
                                       throws java.io.IOException

Throws:
  `java.io.IOException`

#### readStream

    public static byte[] readStream(java.io.InputStream is,
                    int initialBufferCapacity)
                             throws java.io.IOException

Throws:
  `java.io.IOException`

#### codeBug

    public static java.lang.RuntimeException codeBug()
                                              throws java.lang.RuntimeException

Throws RuntimeException to indicate failed assertion. The function never returns and its return type is RuntimeException only to be able to write `throw Kit.codeBug()` if plain `Kit.codeBug()` triggers unreachable code error.

Throws:
  `java.lang.RuntimeException`

#### codeBug

    public static java.lang.RuntimeException codeBug(java.lang.String msg)
                                              throws java.lang.RuntimeException

Throws RuntimeException to indicate failed assertion. The function never returns and its return type is RuntimeException only to be able to write `throw Kit.codeBug()` if plain `Kit.codeBug()` triggers unreachable code error.

Throws:
  `java.lang.RuntimeException`