public void delTrap(JS key, JS function) throws JSExn;
public Trap getTrap(JS key) throws JSExn;
- // FIXME: consider renaming/removing these
+ // FEATURE: consider renaming/removing these
public JS unclone();
public String coerceToString() throws JSExn;
public String[] getFormalArgs() { return emptystr; }
public String coerceToString() throws JSExn { throw new JSExn("cannot coerce a "+getClass().getName()+" to a string"); }
- public JS putAndTriggerTraps(JS key, JS val) throws JSExn { throw new JSExn(
- "'" + key + "' is trap read only on class ["+ getClass().getName() +"]"); }
- public JS getAndTriggerTraps(JS key) throws JSExn { return null; } // FIXME throw errors?
+ public JS putAndTriggerTraps(JS key, JS val) throws JSExn {
+ throw new JSExn("'" + key + "' is trap read only on class ["+ getClass().getName() +"]"); }
+ public JS getAndTriggerTraps(JS key) throws JSExn { return null; }
public JS justTriggerTraps(JS key, JS value) throws JSExn { return null; }
public void addTrap(JS key, JS function) throws JSExn {
Log.warn(this, "'" + JSU.str(key) + "' is not trappable on class ["+ getClass().getName() +"]"); }
public String coerceToString() throws JSExn { return clonee.coerceToString(); }
}
- public static class Obj extends Basket.HashMap implements JS {
+ public static class Obj extends Basket.Hash implements JS {
private static final String[] emptystr = new String[0];
private static final Placeholder holder = new Placeholder();
}
public JS getAndTriggerTraps(JS key) throws JSExn {
Trap t = (Trap)super.get(key, 1);
- return t == null ? (JS)super.get(key) : (JS)new Interpreter(t, null, false).run(null);
+ return t == null ? (JS)get(key) : (JS)new Interpreter(t, null, false).run(null);
}
public JS justTriggerTraps(JS key, JS val) throws JSExn {
Trap t = (Trap)super.get(key, 1);
public Trap next();
public Trap nextRead();
public Trap nextWrite();
-
- public Trap read(); // FIXME reconsider these function names
+ public Trap read(); // FEATURE reconsider these function names
public Trap write();
}
private final Enumeration parent;
+ public Enumeration() { this(null); }
public Enumeration(Enumeration parent) { this.parent = parent; }
protected abstract boolean _hasNext();
protected JS _next() { throw new NoSuchElementException(); }
}
- public static final class JavaIterator extends Enumeration {
- private final Iterator i;
+ public static class JavaIterator extends Enumeration {
+ protected final Iterator i;
public JavaIterator(Enumeration parent, Iterator i) { super(parent); this.i = i; }
protected boolean _hasNext() { return i.hasNext(); }
protected JS _next() { return (JS)i.next(); }
}
+ public static class JavaStringEnumeration extends Enumeration {
+ protected final java.util.Enumeration e;
+ public JavaStringEnumeration(java.util.Enumeration e) { this.e = e; }
+ protected boolean _hasNext() { return e.hasMoreElements(); }
+ protected JS _next() { return JSU.S(e.nextElement().toString()); }
+ }
+
public static final class RandomAccessList extends Enumeration {
private final List l;
private int pos = 0, size;