|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Object
|
+--org.abora.white.xpp.basic.Heaper
|
+--org.abora.white.collection.tables.ScruTable
Please read class comment for ScruSet first.
Like Sets, Tables represent collections of Heapers, and provide protocol for storing, retrieving, and iterating over the collection. However, Tables in addition provide an organization for the Heapers collected together in the range of a Table: A Table can also be seen as a collection of associations between keys and values. A particular Table object has a particular domain coordinateSpace, and all keys in that Table are positions in that coordinate space. For each position in a Table's coordinate space there is at most one value which it maps to. This value may be any arbitrary Heaper. The same Heaper may appear as value for several keys.
When iterating over the contents of a Table with a Stepper, the normal elements enumerated
by the Stepper are values (i.e., range elements) of the Table. However,
ScruTable::stepper returns a TableStepper (a subclass of Stepper) which provides aditional
protocol of accessing the key corresponding to the current value. (see ScruTable::stepper
and TableStepper.)
| Constructor Summary | |
protected |
ScruTable()
|
protected |
ScruTable(Rcvr rcvr)
|
| Method Summary | |
int |
actualHashForEqual()
See ScruTable::isEqual |
abstract ImmuTable |
asImmuTable()
Return a side-effect-free snapshot of my current contents. |
abstract MuTable |
asMuTable()
Return a side-effectable version of the same table. |
ScruTable |
backfollowFrom(Heaper value)
Return the subTable with the domain of all positions whose values are equal to value. |
boolean |
contentsEqual(ScruTable other)
Returns whether the two ScruTables have exactly the same mapping from keys to values at the moment. |
int |
contentsHash()
Has the same relationship to contentsEqual that hashForEqual has to isEqual. |
abstract CoordinateSpace |
coordinateSpace()
The kind of elements used to index into the table are Positions of this coordinate space. |
abstract ScruTable |
copy()
A new one whose initial state is my current state, but that doesn't track changes. |
abstract IntegerValue |
count()
Return the number of domain elements, which is to say, the number of associations. |
abstract XnRegion |
domain()
Return an XuRegion representing a snapshot of the current domain. |
abstract ScruTable |
emptySize(IntegerValue size)
Return an empty table just like the current one. |
abstract Heaper |
fetch(Position key)
Return the range element at the domain position key. |
Heaper |
get(Position key)
Return the range element at the domain position key. |
boolean |
includesIntKey(IntegerValue aKey)
Unboxed version. |
boolean |
includesKey(Position key)
includesKey is used to test for the presence of a key->value pair in the table. |
Heaper |
intFetch(IntegerValue key)
Unboxed version. |
Heaper |
intGet(IntegerValue key)
Unboxed version. |
abstract boolean |
isEmpty()
Is there anything in the table? 'table->isEmpty()' iff 'table->domain()->isEmpty()'. |
abstract boolean |
isEqual(Heaper other)
All MuTable subclasses have equality based on identity (now and forever equal. |
void |
printOn(java.io.PrintWriter stream)
This should rarely be overridden. |
void |
printOnWithSimpleSyntax(java.io.PrintWriter oo,
java.lang.String open,
java.lang.String sep,
java.lang.String close)
Print the contents of the table as |
void |
printOnWithSyntax(java.io.PrintWriter stream,
java.lang.String open,
java.lang.String map,
java.lang.String sep,
java.lang.String close)
Print the contents of the table as |
static void |
problems()
|
ImmuSet |
range()
A snapshot of the current range elements of the table collected together into an ImmuSet. |
abstract XnRegion |
runAt(Position key)
Return the length of the run starting at position key. |
XnRegion |
runAtInt(IntegerValue key)
Unboxed version. |
TableStepper |
stepper()
implement default argument of NULL |
abstract TableStepper |
stepper(OrderSpec order)
Return a TableStepper which will enumerate my key->value mappings. |
abstract ScruTable |
subTable(XnRegion region)
Return a table which contains only the intersection of this table's domain and the domain specified by 'region'. |
Heaper |
theOne()
Iff I contain exactly one range element, return it. |
ScruTable |
transformedBy(Dsp dsp)
Return a ScruTable with the domain of the receiver transformed by the Dsp. |
| Methods inherited from class org.abora.white.xpp.basic.Heaper |
destroy, destruct, equals, hashForEqual, printContentsOn, sendSelfTo, toString |
| Methods inherited from class java.lang.Object |
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
protected ScruTable()
protected ScruTable(Rcvr rcvr)
| Method Detail |
public abstract CoordinateSpace coordinateSpace()
public abstract IntegerValue count()
public abstract XnRegion domain()
public abstract Heaper fetch(Position key)
public Heaper get(Position key)
public ImmuSet range()
public abstract ScruTable subTable(XnRegion region)
public ScruTable transformedBy(Dsp dsp)
public int actualHashForEqual()
actualHashForEqual in class Heaperpublic boolean contentsEqual(ScruTable other)
public int contentsHash()
public boolean includesKey(Position key)
public abstract boolean isEmpty()
public abstract boolean isEqual(Heaper other)
isEqual in class Heaperpublic abstract TableStepper stepper(OrderSpec order)
public Heaper theOne()
public abstract ImmuTable asImmuTable()
public abstract MuTable asMuTable()
public ScruTable backfollowFrom(Heaper value)
public void printOn(java.io.PrintWriter stream)
Heaper
printOn in class Heaper
public void printOnWithSimpleSyntax(java.io.PrintWriter oo,
java.lang.String open,
java.lang.String sep,
java.lang.String close)
public void printOnWithSyntax(java.io.PrintWriter stream,
java.lang.String open,
java.lang.String map,
java.lang.String sep,
java.lang.String close)
public abstract XnRegion runAt(Position key)
public abstract ScruTable copy()
public abstract ScruTable emptySize(IntegerValue size)
public boolean includesIntKey(IntegerValue aKey)
public Heaper intFetch(IntegerValue key)
public Heaper intGet(IntegerValue key)
public XnRegion runAtInt(IntegerValue key)
public TableStepper stepper()
public static void problems()
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||