EList
From Erights
EList is the abstract supertype (XXX establish terminology: supertype or superclass?) of ConstList, FlexList, and ReadOnlyList. (XXX complete list?)
All indexing is zero-based. All ranges are specified as beginning index, inclusive, to ending index, exclusive (not inclusive end or location and size).
Protocol
? def abcd := __identityFunc(["a", "b", "c", "d"]); null
XXX Used a program to generate this list of msgdoc headers from E-on-Java. Clean up and write specs.
add/1
- Signature: add(_) :ConstList
asKeys/0
- Signature: asKeys() :ConstMap
asMap/0
- Signature: asMap() :ConstMap
asSet/0
- Signature: asSet() :ConstSet
contains/1
- Signature: contains(_ :null) :Boolean
diverge/0
- Signature: diverge() :FlexList
diverge/1
fetch/2
get/1
- Signature: get(index :Integer) :valueType
Return the element at index.
? abcd[0] # value: "a" ? abcd[2] # value: "c" ? abcd[-1] # problem: <XXX specify form of error> ? abcd[4] # problem: <XXX specify form of error>
getArray/0
- Signature: getArray() :any
getArray/1
- Signature: getArray(_ :nullOk[Class]) :any
getArray/3
includes/1
- Signature: includes(_ :nullOk[EList]) :Boolean
indexOf1/1
- Signature: indexOf1(_) :Integer
indexOf1/2
iterate/1
last/0
- Signature: last() :any
lastIndexOf1/1
- Signature: lastIndexOf1(_) :Integer
lastIndexOf1/2
lastStartOf/1
- Signature: lastStartOf(_ :EList) :Integer
lastStartOf/2
multiply/1
printOn/4
- Signature: printOn(_ :String, _ :String, _ :String, out :TextWriter) :void
readOnly/0
- Signature: readOnly() :EList
Return an EList which is a read-only view of this list. If this list is immutable the result may be the same as this list.
run/2
Return a ConstList containing the subsequence of elements in this list starting with element index start and ending with the element before index end.
? abcd.run(1, 3) # value: ["b", "c"] ? abcd.run(0, abcd.size()) # value: ["a", "b", "c", "d"] ? ESpec.requireWrongArgsFail(abcd, "run", [0..!(abcd.size()), 0..!(abcd.size())])
{{XXX the above 'ESpec' is an idea about defining some utilities
run/1
Equivalent to thisEList.run(start, thisEList.size())
.
? abcd.run(1) # value: ["b", "c", "d"] ? abcd.run(0) # value: ["a", "b", "c", "d"]
size/0
- Signature: size() :Integer
Return the current number of elements of this list.
? abcd.size() # value: 4
snapshot/0
- Signature: snapshot() :ConstList
Return a ConstList with the current elements of this list.
XXX test this vs. mutation
? abcd.snapshot() # value: ["a", "b", "c", "d"]
sort/0
- Signature: sort() :ConstList
sort/1
startOf/1
- Signature: startOf(_ :EList) :int32
startOf/2
valueType/0
- Signature: valueType() :Guard
with/1
- Signature: with(new) :ConstList
Return a ConstList with the current elements of this list, followed by the one additional element new.
? abcd.with("e") # value: ["a", "b", "c", "d", "e"] ? __identityFunc([]).with(1) # value: [1]
XXX more tests?
with/2
- Signature: with(_ :Integer, _ :null) :ConstList
- This page is a stub; it should be expanded with more information. If doing so, check the original E web site and the mailing list archives for content which could be moved into this page.