Class ArrayTuple
- All Implemented Interfaces:
CanonicalizableTuple<ArrayTuple>,StreamingExternalizable,Externalizable,Serializable,Comparable<ArrayTuple>
N-Tuple key class backed by an array of elements.
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionThis is required forExternalizablesupport, but should not be used otherwise.ArrayTuple(Object... elements) Construct a tuple backed by the supplied array of elements. -
Method Summary
Modifier and TypeMethodDescriptioncanonicalize(@NotNull UnaryOperator<Object> canonicalizer) Canonicalize this tuple.final intcompareTo(@NotNull ArrayTuple other) Get the elements of this tuple as aStream.final booleanfinal <T> TgetElement(int elementIndex) final Object[]Return a new array of the elements of this tuple, safe for any use.final inthashCode()voidreadExternal(@NotNull ObjectInput in) voidreadExternalStreaming(@NotNull ObjectInput in, @NotNull gnu.trove.map.TIntObjectMap<SerializationUtils.Reader> cachedReaders) Alternative toExternalizable.readExternal(ObjectInput)for use when a series of tuples of the same type with the same element types are being read in iterative fashion.toString()voidwriteExternal(@NotNull ObjectOutput out) voidwriteExternalStreaming(@NotNull ObjectOutput out, @NotNull gnu.trove.map.TIntObjectMap<SerializationUtils.Writer> cachedWriters) Alternative toExternalizable.writeExternal(ObjectOutput)for use when a series of tuples of the same type with the same element types are being written in iterative fashion.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface io.deephaven.tuple.serialization.StreamingExternalizable
initializeExternalStreaming
-
Constructor Details
-
ArrayTuple
Construct a tuple backed by the supplied array of elements. The elements array should not be changed after this call.- Parameters:
elements- The array to wrap
-
ArrayTuple
public ArrayTuple()This is required forExternalizablesupport, but should not be used otherwise.
-
-
Method Details
-
getElement
public final <T> T getElement(int elementIndex) -
getElements
Return a new array of the elements of this tuple, safe for any use.- Returns:
- A new array of the elements of this tuple
-
elementStream
Get the elements of this tuple as aStream.- Returns:
- A new
Streamof the elements of this tuple
-
hashCode
public final int hashCode() -
equals
-
compareTo
- Specified by:
compareToin interfaceComparable<ArrayTuple>
-
writeExternal
- Specified by:
writeExternalin interfaceExternalizable- Throws:
IOException
-
readExternal
public void readExternal(@NotNull @NotNull ObjectInput in) throws IOException, ClassNotFoundException - Specified by:
readExternalin interfaceExternalizable- Throws:
IOExceptionClassNotFoundException
-
writeExternalStreaming
public void writeExternalStreaming(@NotNull @NotNull ObjectOutput out, @NotNull @NotNull gnu.trove.map.TIntObjectMap<SerializationUtils.Writer> cachedWriters) throws IOException Description copied from interface:StreamingExternalizableAlternative to
Externalizable.writeExternal(ObjectOutput)for use when a series of tuples of the same type with the same element types are being written in iterative fashion.Primitive elements should be written with their primitive write methods (e.g.
DataOutput.writeInt(int)).Object elements are preceded by a boolean, true if null, false otherwise. The first non-null value for a given Object element is then preceded by the name of the class. All non-null values are then written with a writer method from
SerializationUtils.getWriter(Class, ObjectOutput), cached in cachedWriters.- Specified by:
writeExternalStreamingin interfaceStreamingExternalizable- Parameters:
out- The outputcachedWriters- The cached writers- Throws:
IOException
-
readExternalStreaming
public void readExternalStreaming(@NotNull @NotNull ObjectInput in, @NotNull @NotNull gnu.trove.map.TIntObjectMap<SerializationUtils.Reader> cachedReaders) throws Exception Description copied from interface:StreamingExternalizableAlternative to
Externalizable.readExternal(ObjectInput)for use when a series of tuples of the same type with the same element types are being read in iterative fashion.Primitive elements should be read with their primitive read methods (e.g.
DataInput.readInt()).Object elements are preceded by a boolean, true if null, false otherwise. The first non-null value for a given Object element is then preceded by the name of the class. All non-null values are then read with a reader method from
SerializationUtils.getReader(Class, ObjectInput), cached in cachedReaders.- Specified by:
readExternalStreamingin interfaceStreamingExternalizable- Parameters:
in- The inputcachedReaders- The cached readers- Throws:
Exception
-
toString
-
canonicalize
Description copied from interface:CanonicalizableTupleCanonicalize this tuple.- Specified by:
canonicalizein interfaceCanonicalizableTuple<ArrayTuple>- Parameters:
canonicalizer- The canonicalization operator to use on each object element.- Returns:
- This tuple if already canonical, else a new, canonical tuple of the same type
-