## visad
Class Tuple

    java.lang.Object
      visad.ThingImpl
          visad.DataImpl
              visad.Tuple

All Implemented Interfaces:
  Cloneable, Data, Serializable, Thing, TupleIface

Direct Known Subclasses:
  DoubleStringTuple, JamaCholeskyDecomposition, JamaEigenvalueDecomposition, JamaLUDecomposition, JamaQRDecomposition, JamaSingularValueDecomposition, NamedLocationTuple, RealTuple

public class Tuple
extends DataImpl
implements TupleIface

Tuple is the general VisAD data class for vectors. Tuple objects are immutable in the sense that the sequence of `Data` objects cannot be modified; Tuple objects are mutable, however, in the sense that a contained `Data` object might be mutable (e.g. it might be a `Field` with modifiable range values).

See Also:
  Serialized Form

Nested Class Summary

Nested classes inherited from class visad.DataImpl
`DataImpl.Syncher`

Nested classes inherited from class visad.ThingImpl
`ThingImpl.RemotePair`

Field Summary
`(package private) Data[]` `tupleComponents`

Fields inherited from class visad.DataImpl
`Type`

Fields inherited from interface visad.Data

`ABS, ACOS, ACOS_DEGREES, ADD, ASIN, ASIN_DEGREES, ATAN, ATAN_DEGREES, ATAN2, ATAN2_DEGREES, CEIL, COS, COS_DEGREES, DEGREES_TO_RADIANS, DEPENDENT, DIVIDE, EXP, FLOOR, INDEPENDENT, INV_ATAN2, INV_ATAN2_DEGREES, INV_DIVIDE, INV_POW, INV_REMAINDER, INV_SUBTRACT, LOG, MAX, MIN, MULTIPLY, NEAREST_NEIGHBOR, NEGATE, NO_ERRORS, NOP, POW, RADIANS_TO_DEGREES, REMAINDER, RINT, ROUND, SIN, SIN_DEGREES, SQRT, SUBTRACT, TAN, TAN_DEGREES, WEIGHTED_AVERAGE`

Constructor Summary
`Tuple(Data[] datums)` Construct a Tuple object from an array of Data objects; this constructs its MathType from the MathTypes of the data array
`Tuple(Data[] datums, boolean copy)` Construct a Tuple object from an array of Data objects; this constructs its MathType from the MathTypes of the data array
`Tuple(TupleType type)` Construct a Tuple object with missing value
`Tuple(TupleType type, Data[] datums)` Construct a Tuple object from a type and an array of Data objects
`Tuple(TupleType type, Data[] datums, boolean copy)` Construct a Tuple object from a type and an array of Data objects
`Tuple(TupleType type, Data[] datums, boolean copy, boolean checkType)` Construct a Tuple object from a type and an array of Data objects

Method Summary
`Data` `__getitem__(int index)` A wrapper around `getComponent` for JPython.
`int` `__len__()` A wrapper around `getLength` for JPython.
`Data` `adjustSamplingError(Data error, int error_mode)` return a Tuple that clones this, except its ErrorEstimate-s are adjusted for sampling errors in error
`Data` `binary(Data data, int op, MathType new_type, int sampling_mode, int error_mode)` Pointwise binary operation between this and data.
`static TupleType` `buildTupleType(Data[] datums)` Make a TupleType for an array of Data
`(package private) static boolean` `checkTupleType(TupleType type, Data[] datums)` Check a TupleType for an array of Data
`Object` `clone()` Clones this instance.
`DataShadow` `computeRanges(ShadowType type, DataShadow shadow)` Recursive version of computeRanges(), called down through Data object tree.
`boolean` `equals(Object obj)` Indicates if this Tuple is identical to an object.
`Data` `getComponent(int i)` Returns a component of this instance.
`Data[]` `getComponents()` Returns the components that constitute this instance.
`int` `getDimension()` Return number of components in this Tuple.
`int` `getLength()` Return the number of components of the Tuple
`Real[]` `getRealComponents()` Get all the Real components from this Tuple.
`int` `hashCode()` Returns the hash code of this object.
`boolean` `isMissing()` Check if there is no Data in this Tuple.
`String` `longString(String pre)`
`static Tuple` `makeTuple(Data[] datums)` Create a Tuple from an array of Data objects.
`Data` `unary(int op, MathType new_type, int sampling_mode, int error_mode)` Pointwise unary operation applied to this.

Methods inherited from class visad.DataImpl

`__add__, __add__, __div__, __div__, __mod__, __mod__, __mul__, __mul__, __neg__, __pow__, __pow__, __radd__, __rdiv__, __rmod__, __rmul__, __rpow__, __rsub__, __sub__, __sub__, abs, abs, acos, acos, acosDegrees, acosDegrees, add, add, asin, asin, asinDegrees, asinDegrees, atan, atan, atan2, atan2, atan2Degrees, atan2Degrees, atanDegrees, atanDegrees, binary, ceil, ceil, changeMathType, computeRanges, computeRanges, computeReferenceRanges, cos, cos, cosDegrees, cosDegrees, dataClone, divide, divide, exp, exp, floor, floor, getType, invertOp, local, log, log, longString, main, max, max, min, min, multiply, multiply, negate, negate, notifyReferences, pow, pow, remainder, remainder, rint, rint, round, round, setParent, sin, sin, sinDegrees, sinDegrees, sqrt, sqrt, subtract, subtract, tan, tan, tanDegrees, tanDegrees, toString, unary`

Methods inherited from class visad.ThingImpl
`adaptedAddReference, adaptedRemoveReference, addReference, removeReference`

Methods inherited from class java.lang.Object
`finalize, getClass, notify, notifyAll, wait, wait, wait`

Methods inherited from interface visad.Data

`abs, abs, acos, acos, acosDegrees, acosDegrees, add, add, asin, asin, asinDegrees, asinDegrees, atan, atan, atan2, atan2, atan2Degrees, atan2Degrees, atanDegrees, atanDegrees, binary, ceil, ceil, changeMathType, computeRanges, computeRanges, cos, cos, cosDegrees, cosDegrees, dataClone, divide, divide, exp, exp, floor, floor, getType, local, log, log, longString, max, max, min, min, multiply, multiply, negate, negate, pow, pow, remainder, remainder, rint, rint, round, round, sin, sin, sinDegrees, sinDegrees, sqrt, sqrt, subtract, subtract, tan, tan, tanDegrees, tanDegrees, unary`

Methods inherited from interface visad.Thing
`addReference, removeReference`

Field Detail

### tupleComponents

    Data[] tupleComponents

Constructor Detail

### Tuple

    public Tuple(TupleType type)

  Construct a Tuple object with missing value

Parameters:
  `type` - the TupleType

### Tuple

    public Tuple(TupleType type,
                 Data[] datums)
          throws VisADException,
                 RemoteException

  Construct a Tuple object from a type and an array of Data objects

Parameters:
  `type` - the TupleType
  `datums` - the Data components

### Tuple

    public Tuple(TupleType type,
                 Data[] datums,
                 boolean copy)
          throws VisADException,
                 RemoteException

  Construct a Tuple object from a type and an array of Data objects

Parameters:
  `type` - the TupleType
  `datums` - the Data components
  `copy` - if true, copy the data objects

### Tuple

    public Tuple(TupleType type,
                 Data[] datums,
                 boolean copy,
                 boolean checkType)
          throws VisADException,
                 RemoteException

  Construct a Tuple object from a type and an array of Data objects

Parameters:
  `type` - the TupleType
  `datums` - the Data components
  `copy` - if true, copy the data objects
  `checkType` - if true, make sure the type matches the datum types.

### Tuple

    public Tuple(Data[] datums,
                 boolean copy)
          throws VisADException,
                 RemoteException

  Construct a Tuple object from an array of Data objects; this constructs its MathType from the MathTypes of the data array

Parameters:
  `datums` - the Data components
  `copy` - if true, copy the data objects

### Tuple

    public Tuple(Data[] datums)
          throws VisADException,
                 RemoteException

  Construct a Tuple object from an array of Data objects; this constructs its MathType from the MathTypes of the data array

Parameters:
  `datums` - the Data components

Method Detail

### makeTuple

    public static Tuple makeTuple(Data[] datums)
                           throws VisADException,
                                  RemoteException

  Create a Tuple from an array of Data objects.

  Returns:
    a Tuple.
  Throws:
    `VisADException`
    `RemoteException`

### checkTupleType

    static boolean checkTupleType(TupleType type,
                                  Data[] datums)
                           throws VisADException,
                                  RemoteException

  Check a TupleType for an array of Data

  Throws:
    `VisADException`
    `RemoteException`

### buildTupleType

    public static TupleType buildTupleType(Data[] datums)
                                    throws VisADException,
                                           RemoteException

  Make a TupleType for an array of Data

  Parameters:
    `datums` - array of Data objects
  Throws:
    `VisADException`
    `RemoteException`

### getRealComponents

    public Real[] getRealComponents()
                             throws VisADException,
                                    RemoteException

  Get all the Real components from this Tuple.

  Specified by:
    `getRealComponents` in interface `TupleIface`
  Returns:
    an array of Real-s
  Throws:
    `VisADException`
    `RemoteException`

### getComponents

    public Data[] getComponents()

  Returns the components that constitute this instance. If this instance has no components, then `null` is returned. A returned array may be modified without affecting the behavior of this instance.

  Returns:
    The components of this instance or `null`.

### getDimension

    public int getDimension()

  Return number of components in this Tuple.

  Specified by:
    `getDimension` in interface `TupleIface`
  Returns:
    the number of components.

### getComponent

    public Data getComponent(int i)
                      throws VisADException,
                             RemoteException

  Returns a component of this instance. If this instance has no components, then an object of the appropriate `MathType` is created that has no data and is returned. A returned component is the actual component of this instance and is not a copy or clone.

  Specified by:
    `getComponent` in interface `TupleIface`
  Parameters:
    `i` - The zero-based index of the coponent to return.
  Returns:
    The `i`-th component of this instance.
  Throws:
    `VisADException` - if this instance has no components and couldn't create one with no data.
    `RemoteException` - if a Java RMI failure occurs.
    `TypeException` - if the index is less than zero or greater than `getDimension()-1`.

### isMissing

    public boolean isMissing()

  Check if there is no Data in this Tuple.

  Specified by:
    `isMissing` in interface `TupleIface`
  Returns:
    true if there is no data.

### binary

    public Data binary(Data data,
                       int op,
                       MathType new_type,
                       int sampling_mode,
                       int error_mode)
                throws VisADException,
                       RemoteException

  Description copied from interface: `Data`
  Pointwise binary operation between this and data. Applies to Reals, Tuples (recursively to components), and to Field ranges (Field domains implicitly resampled if necessary). Does not apply to Field domains or Sets (regarded as domains of Fields wthout ranges). Data.ADD is only op defined for Text, interpreted as concatenate. MathTypes of this and data must match, or one may match the range of the other if it is a FunctionType.

  Specified by:
    `binary` in interface `TupleIface`
  Overrides:
    `binary` in class `DataImpl`
  Parameters:
    `data` - other Data operand for binary operation
    `op` - may be Data.ADD, Data.SUBTRACT, etc; these include all binary operations defined for Java primitive data types
    `new_type` - MathType of the result
    `sampling_mode` - may be Data.NEAREST_NEIGHBOR or Data.WEIGHTED_AVERAGE
    `error_mode` - may be Data.INDEPENDENT, Data.DEPENDENT or Data.NO_ERRORS;
  Returns:
    result, with MathType = new_type
  Throws:
    `RemoteException` - an RMI error occurred
    `VisADException` - a VisAD error occurred

### unary

    public Data unary(int op,
                      MathType new_type,
                      int sampling_mode,
                      int error_mode)
               throws VisADException,
                      RemoteException

  Description copied from interface: `Data`
  Pointwise unary operation applied to this. Applies to Reals, Tuples (recursively to components), and to Field ranges (Field domains implicitly resampled if necessary). Does not apply to Field domains, Sets (regarded as domains of Fields wthout ranges) or Text.

  Specified by:
    `unary` in interface `TupleIface`
  Overrides:
    `unary` in class `DataImpl`
  Parameters:
    `op` - may be Data.ABS, Data.ACOS, etc; these include all unary operations defined for Java primitive data types
    `new_type` - MathType of the result
    `sampling_mode` - may be Data.NEAREST_NEIGHBOR or Data.WEIGHTED_AVERAGE
    `error_mode` - may be Data.INDEPENDENT, Data.DEPENDENT or Data.NO_ERRORS;
  Returns:
    result, with MathType = new_type
  Throws:
    `VisADException` - a VisAD error occurred
    `RemoteException` - an RMI error occurred

### computeRanges

    public DataShadow computeRanges(ShadowType type,
                                    DataShadow shadow)
                             throws VisADException,
                                    RemoteException

  Description copied from interface: `Data`
  Recursive version of computeRanges(), called down through Data object tree.

  Specified by:
    `computeRanges` in interface `TupleIface`
  Throws:
    `VisADException`
    `RemoteException`

### adjustSamplingError

    public Data adjustSamplingError(Data error,
                                    int error_mode)
                             throws VisADException,
                                    RemoteException

  return a Tuple that clones this, except its ErrorEstimate-s are adjusted for sampling errors in error

  Specified by:
    `adjustSamplingError` in interface `TupleIface`
  Overrides:
    `adjustSamplingError` in class `DataImpl`
  Parameters:
    `error` -
    `error_mode` - may be Data.INDEPENDENT, Data.DEPENDENT or Data.NO_ERRORS;
  Returns:
    clone of this, except with ErrorEstimates set according to values in error
  Throws:
    `RemoteException` - an RMI error occurred
    `VisADException` - a VisAD error occurred

### __getitem__

    public Data __getitem__(int index)
                     throws VisADException,
                            RemoteException

  A wrapper around `getComponent` for JPython.

  Returns:
    The requested Data object.
  Throws:
    `VisADException`
    `RemoteException`

### __len__

    public int __len__()

  A wrapper around `getLength` for JPython.

  Returns:
    The number of components of the Tuple

### getLength

    public int getLength()

  Return the number of components of the Tuple

  Returns:
    Number of components.

### clone

    public Object clone()
                 throws CloneNotSupportedException

  Clones this instance. The `clone()` method of each component is invoked.

  This implementation throws `CloneNotSupportedException` if and only if one of the components throws it.

  Overrides:
    `clone` in class `DataImpl`
  Returns:
    A clone of this instance.
  Throws:
    `CloneNotSupportedException` - if cloning isn't supported.

### longString

    public String longString(String pre)
                      throws VisADException,
                             RemoteException

  Specified by:
    `longString` in interface `TupleIface`
  Overrides:
    `longString` in class `DataImpl`
  Parameters:
    `pre` - String added to start of each line
  Returns:
    a longer String than returned by toString(), indented by pre (a string of blanks)
  Throws:
    `VisADException`
    `RemoteException`

### equals

    public boolean equals(Object obj)

  Indicates if this Tuple is identical to an object.

  Parameters:
    `obj` - The object.
  Returns:
    `true` if and only if the object is a Tuple and both Tuple-s have identical component sequences.

### hashCode

    public int hashCode()

  Returns the hash code of this object.

  Returns:
    The hash code of this object.