org.mozilla.javascript
Class Kit
java.lang.Object
org.mozilla.javascript.Kit
public class Kit
extends java.lang.Object
Collection of utilities
static Object | addListener(Object bag, Object listener) - Add listener to bag of listeners.
|
static Class | classOrNull(ClassLoader loader, String className)
|
static Class | classOrNull(String className)
|
static RuntimeException | codeBug() - Throws RuntimeException to indicate failed assertion.
|
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.
|
static RuntimeException | initCause(RuntimeException ex, Throwable cause) - If initCause methods exists in Throwable, call
ex.initCause(cause) or otherwise do nothing.
|
static Object | makeHashKeyFromPair(Object key1, Object key2)
|
static String | readReader(Reader r)
|
static byte[] | readStream(InputStream is, int initialBufferCapacity)
|
static Object | removeListener(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 int | xDigitToInt(int c, int accumulator) - If character c is a hexadecimal digit, return
accumulator * 16 plus corresponding
number.
|
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);
}
}
}
bag
- Current collection of listeners.listener
- Listener to add to bag
- A new bag containing all listeners from bag and
listener.
removeListener(Object bag, Object listener)
, getListener(Object bag, int index)
classOrNull
public static Class classOrNull(ClassLoader loader,
String className)
classOrNull
public static Class classOrNull(String className)
codeBug
public static RuntimeException codeBug()
throws 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.
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
addListener(Object bag, Object listener)
.
bag
- Current collection of listeners.index
- Index of the listener to access.
- Listener at the given index or null.
addListener(Object bag, Object listener)
, removeListener(Object bag, Object listener)
initCause
public static RuntimeException initCause(RuntimeException ex,
Throwable cause)
If initCause methods exists in Throwable, call
ex.initCause(cause) or otherwise do nothing.
makeHashKeyFromPair
public static Object makeHashKeyFromPair(Object key1,
Object key2)
readReader
public static String readReader(Reader r)
throws IOException
readStream
public static byte[] readStream(InputStream is,
int initialBufferCapacity)
throws IOException
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
addListener(Object bag, Object listener)
.
bag
- Current collection of listeners.listener
- Listener to remove from bag
- A new bag containing all listeners from bag except
listener.
addListener(Object bag, Object listener)
, getListener(Object bag, int index)
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.