org.mozilla.javascript

Class Kit

public class Kit extends Object

Collection of utilities
Method Summary
static ObjectaddListener(Object bag, Object listener)
Add listener to bag of listeners.
static ClassclassOrNull(String className)
static ClassclassOrNull(ClassLoader loader, String className)
static RuntimeExceptioncodeBug()
Throws RuntimeException to indicate failed assertion.
static ObjectgetListener(Object bag, int index)
Get listener at index position in bag or null if index equals to number of listeners in bag.
static RuntimeExceptioninitCause(RuntimeException ex, Throwable cause)
If initCause methods exists in Throwable, call ex.initCause(cause) or otherwise do nothing.
static ObjectmakeHashKeyFromPair(Object key1, Object key2)
static StringreadReader(Reader r)
static byte[]readStream(InputStream is, int initialBufferCapacity)
static ObjectremoveListener(Object bag, Object listener)
Remove listener from bag of listeners.
static String[]semicolonSplit(String s)
Split string into array of strings using semicolon as string terminator (; after the last string is required).
static intxDigitToInt(int c, int accumulator)
If character c is a hexadecimal digit, return accumulator * 16 plus corresponding number.

Method Detail

addListener

public static Object addListener(Object bag, 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: Kit Kit

classOrNull

public static Class classOrNull(String className)

classOrNull

public static Class classOrNull(ClassLoader loader, String className)

codeBug

public static RuntimeException codeBug()
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.

getListener

public static Object getListener(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 {@link 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: Kit Kit

initCause

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

Returns: The ex argument.

makeHashKeyFromPair

public static Object makeHashKeyFromPair(Object key1, Object key2)

readReader

public static String readReader(Reader r)

readStream

public static byte[] readStream(InputStream is, int initialBufferCapacity)

removeListener

public static Object removeListener(Object bag, 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 {@link 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: Kit Kit

semicolonSplit

public static String[] semicolonSplit(String s)
Split string into array of strings using semicolon as string terminator (; after the last string is required).

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.