## org.mozilla.javascript
Class Kit

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

    public class Kit

extends java.lang.Object

Collection of utilities

Constructor Summary
`Kit()`

Method Summary
`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`