Package gnu.mapping
Class Values<E>
- java.lang.Object
-
- gnu.lists.AbstractSequence<E>
-
- gnu.mapping.Values<E>
-
- All Implemented Interfaces:
Consumable
,Externalizable
,Serializable
- Direct Known Subclasses:
Values.FromArray
,Values.FromList
,Values.FromTreeList
,Values.Values2
public abstract class Values<E> extends AbstractSequence<E> implements Consumable, Externalizable
Encapsulate multiple values in a single object. In Scheme and Lisp mainly used to return multiple values from a function. In XQuery used to represent a non-singleton sequence.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Values.FromArray<E>
An implementation of Values that stores the values in an array.static class
Values.FromList<E>
An implementation of Values that uses a java.util.List.static class
Values.FromTreeList
An implementation of Values that uses a TreeList.static class
Values.Values2<E,V1 extends E,V2 extends E>
A specialization of Values for exactly 2 values.
-
Constructor Summary
Constructors Modifier Constructor Description protected
Values()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
call_with(Procedure proc)
Apply a Procedure with these values as the arguments.Object
canonicalize()
If a simple value, return that value.static void
checkFinalPos(Object values, int pos)
static int
countValues(Object value)
static Object
getFromPos(Object values, int pos)
static Object
getFromPosFinal(Object values, int pos)
Object[]
getValues()
Get the values encapsulated.static int
incrPos(Object values, int pos)
static Values
make()
static <E> Object
make(E[] vals)
Create a value for each element of an array.static Object
make(TreeList list, int startPosition, int endPosition)
Extract a value (single or Values) from a sub-range of a TreeList.static <E> Object
make(List<E> seq)
Create a value for each element of a list.static <E> Values<E>
makeFromArray(E... vals)
protected int
nextIndex(int ipos)
Get the offset from the beginning corresponding to a position cookie.static int
nextIndex(Object values, int curIndex)
Helper method called by compiled code.static Object
nextValue(Object values, int curIndex)
Helper method called by compiled code.void
print(Consumer out)
Object
readResolve()
static Object
values(Object... vals)
static <E,V1 extends E,V2 extends E>
Values.Values2<E,V1,V2>values2(V1 val1, V2 val2)
void
writeExternal(ObjectOutput out)
static void
writeValues(Object value, Consumer out)
-
Methods inherited from class gnu.lists.AbstractSequence
add, add, addAll, addAll, addPos, asImmutable, badRank, boundedHash, checkCanWrite, checkRank, clear, compare, compare, compare, consume, consume, consumeNext, consumePosRange, contains, containsAll, copyPos, createPos, createRelativePos, effectiveIndex, effectiveIndex, effectiveIndex, effectiveIndex, effectiveIndex, elements, endPos, equals, equals, fill, fill, fillPosRange, firstAttributePos, firstChildPos, firstChildPos, fromEndIndex, get, get, get, get, get, getAttribute, getAttributeLength, getBooleanRaw, getByteRaw, getCharRaw, getContainingSequenceSize, getDoubleRaw, getElementKind, getFloatRaw, getIndexDifference, getInt, getInt, getInt, getInt, getInt, getIntRaw, getIterator, getIterator, getIteratorAtPos, getLongRaw, getLowBound, getNextKind, getNextTypeName, getNextTypeObject, getPosNext, getPosPrevious, getRaw, getRowMajor, getShortRaw, getSize, getSize, gotoAttributesStart, gotoChildrenStart, gotoParent, hashCode, hasNext, hasPrevious, indexOf, isAfterPos, isEmpty, iterator, lastIndexOf, listIterator, listIterator, nextIndex, nextMatching, nextPos, parentPos, previousPos, rank, releasePos, remove, remove, removeAll, removePos, removePosRange, retainAll, set, set, setAt, setBuffer, setPosNext, setPosPrevious, setRaw, size, stableCompare, startPos, subList, subSequence, subSequencePos, toArray, toArray, toString, toString, unsupported, unsupportedException
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface gnu.lists.Consumable
consume
-
Methods inherited from interface java.io.Externalizable
readExternal
-
-
-
-
Method Detail
-
getValues
public Object[] getValues()
Get the values encapsulated.
-
values2
public static <E,V1 extends E,V2 extends E> Values.Values2<E,V1,V2> values2(V1 val1, V2 val2)
-
make
public static Values make()
-
make
public static <E> Object make(E[] vals)
Create a value for each element of an array.- Parameters:
vals
- values to use. The array should be immutable, as may be re-used for the result.
-
makeFromArray
public static <E> Values<E> makeFromArray(E... vals)
-
make
public static <E> Object make(List<E> seq)
Create a value for each element of a list.- Parameters:
seq
- values to use. The list should be immutable, as may be re-used for the result.
-
make
public static Object make(TreeList list, int startPosition, int endPosition)
Extract a value (single or Values) from a sub-range of a TreeList.- Parameters:
list
- the TreeList to copystartPosition
- start of range, as a raw index in dataendPosition
- end of range, as a raw index in data
-
canonicalize
public Object canonicalize()
If a simple value, return that value. Also, if no values, return empty.
-
call_with
public Object call_with(Procedure proc) throws Throwable
Apply a Procedure with these values as the arguments.- Throws:
Throwable
-
print
public void print(Consumer out)
-
writeExternal
public void writeExternal(ObjectOutput out) throws IOException
- Specified by:
writeExternal
in interfaceExternalizable
- Throws:
IOException
-
readResolve
public Object readResolve() throws ObjectStreamException
- Throws:
ObjectStreamException
-
incrPos
public static int incrPos(Object values, int pos)
-
checkFinalPos
public static void checkFinalPos(Object values, int pos)
-
nextIndex
public static int nextIndex(Object values, int curIndex)
Helper method called by compiled code. The compiled code iterates through zero or more values. Return the index of the next value, or -1 if currently at eof. A non-Values object is treated as a singleton value, so in that case there is no next value.
-
nextValue
public static Object nextValue(Object values, int curIndex)
Helper method called by compiled code. The compiled code iterates through zero or more values. Extract the object referenced by the curIndex. A non-Values object is treated as a singleton value.
-
nextIndex
protected int nextIndex(int ipos)
Description copied from class:AbstractSequence
Get the offset from the beginning corresponding to a position cookie.- Overrides:
nextIndex
in classAbstractSequence<E>
-
countValues
public static int countValues(Object value)
-
-