cascading.tuple
Class TupleEntry

java.lang.Object
  extended by cascading.tuple.TupleEntry

public class TupleEntry
extends Object

Class TupleEntry allows a Tuple instance and its declaring Fields instance to be used as a single object.

Once a TupleEntry is created, its Fields cannot be changed, but the Tuple instance it holds can be replaced or modified. The managed Tuple should not have elements added or removed, as this will break the relationship with the associated Fields instance.

If type information is provided on the Fields instance, all setters on this class will use that information to coerce the given object to the expected type.

For example, if position is is of type long, then entry.setString(0, "9" ) will coerce the "9" to a long 9. Thus, entry.getObject(0) == 9l.

No coercion is performed with the getObject(Comparable) and getObject(int) methods.

To set a value without coercion, see the setRaw(Comparable, Object) and setRaw(int, Object) methods.

See Also:
Fields, Tuple

Field Summary
static TupleEntry NULL
          An EMPTY TupleEntry instance for use as a stand in instead of a null.
 
Constructor Summary
TupleEntry()
          Constructor TupleEntry creates a new TupleEntry instance.
TupleEntry(boolean isUnmodifiable)
          Constructor TupleEntry creates a new TupleEntry instance.
TupleEntry(Fields fields)
          Constructor TupleEntry creates a new TupleEntry instance.
TupleEntry(Fields fields, boolean isUnmodifiable)
          Constructor TupleEntry creates a new TupleEntry instance.
TupleEntry(Fields fields, Tuple tuple)
          Constructor TupleEntry creates a new TupleEntry instance.
TupleEntry(Fields fields, Tuple tuple, boolean isUnmodifiable)
          Constructor TupleEntry creates a new TupleEntry instance.
TupleEntry(Tuple tuple)
          Constructor TupleEntry creates a new TupleEntry instance.
TupleEntry(TupleEntry tupleEntry)
          Constructor TupleEntry creates a new TupleEntry instance that is a safe copy of the given tupleEntry.
 
Method Summary
 TupleEntry appendNew(TupleEntry entry)
          Method appendNew appends the given TupleEntry instance to this instance.
<T> Iterable<T>
asIterableOf(Class<T> type)
          Method asIterableOf returns an Iterable instance that will coerce all Tuple elements into the given type parameter.
 boolean equals(Object object)
           
 Comparable get(Comparable fieldName)
          Deprecated. 
 Comparable get(int pos)
          Deprecated. 
 boolean getBoolean(Comparable fieldName)
          Method getBoolean returns the element for the given field name or position as a boolean.
 Tuple getCoercedTuple(Type[] types)
          Method getCoercedTuple is a helper method for copying the current tuple elements into a new Tuple, of the same size, as the requested coerced types.
 Tuple getCoercedTuple(Type[] types, Tuple into)
          Method getCoercedTuple is a helper method for copying the current tuple elements into the new Tuple, of the same size, as the requested coerced types.
 double getDouble(Comparable fieldName)
          Method getDouble returns the element for the given field name or position as a double.
 Fields getFields()
          Method getFields returns the fields of this TupleEntry object.
 float getFloat(Comparable fieldName)
          Method getFloat returns the element for the given field name or position as a float.
 int getInteger(Comparable fieldName)
          Method getInteger returns the element for the given field name or position as an int.
 long getLong(Comparable fieldName)
          Method getLong returns the element for the given field name or position as a long.
 Object getObject(Comparable fieldName)
          Method getObject returns the value in the given field or position.
 Object getObject(Comparable fieldName, Type type)
          Method getObject returns the value in the given field or position as the requested type.
 Object getObject(int pos)
          Method getObject returns the value in the given position pos.
 Object getObject(int pos, Type type)
          Method getObject returns the value in the given field or position as the requested type.
 short getShort(Comparable fieldName)
          Method getShort returns the element for the given field name or position as a short.
 String getString(Comparable fieldName)
          Method getString returns the element for the given field name or position as a String.
 Tuple getTuple()
          Method getTuple returns the tuple of this TupleEntry object.
 Tuple getTupleCopy()
          Method getTupleCopy returns a copy of the tuple of this TupleEntry object.
 int hashCode()
           
 boolean hasTypes()
          Returns true if there are types associated with this instance.
 boolean isUnmodifiable()
          Method isUnmodifiable returns true if this TupleEntry is unmodifiable.
static Tuple select(Fields selector, TupleEntry... entries)
          Method select will select a new Tuple instance from the given set of entries.
 TupleEntry selectEntry(Fields selector)
          Method selectEntry selects the fields specified in the selector from this instance.
 TupleEntry selectEntryCopy(Fields selector)
          Method selectEntry selects the fields specified in selector from this instance.
 Tuple selectInto(Fields selector, Tuple tuple)
          Method selectInto selects the fields specified in the selector from this instance and copies them into the given tuple argument.
 Tuple selectTuple(Fields selector)
          Method selectTuple selects the fields specified in the selector from this instance.
 Tuple selectTupleCopy(Fields selector)
          Method selectTupleCopy selects the fields specified in selector from this instance.
 void set(Comparable fieldName, Object value)
          Deprecated. 
 void set(TupleEntry tupleEntry)
          Method set sets the values from the given tupleEntry into this TupleEntry instance based on the given tupleEntry field names.
 void setBoolean(Comparable fieldName, boolean value)
          Method setBoolean sets the value in the given field or position.
 void setCanonicalTuple(Tuple tuple)
          Method setCanonicalTuple replaces each value of the current tuple with the given tuple elements after they are coerced.
 void setDouble(Comparable fieldName, double value)
          Method setDouble sets the value in the given field or position.
 void setFloat(Comparable fieldName, float value)
          Method setFloat sets the value in the given field or position.
 void setInteger(Comparable fieldName, int value)
          Method setInteger sets the value in the given field or position.
 void setLong(Comparable fieldName, long value)
          Method setLong sets the value in the given field or position.
 void setObject(Comparable fieldName, Object value)
          Method set sets the value in the given field or position.
 void setRaw(Comparable fieldName, Object value)
          Method set sets the value in the given field or position.
 void setRaw(int pos, Object value)
          Method set sets the value in the given position.
 void setShort(Comparable fieldName, short value)
          Method setShort sets the value in the given field or position.
 void setString(Comparable fieldName, String value)
          Method setString sets the value in the given field or position.
 void setTuple(Fields selector, Tuple tuple)
          Method setTuple sets the values specified by the selector to the values given by the given tuple, the given values will always be copied into this TupleEntry.
 void setTuple(Tuple tuple)
          Method setTuple sets the tuple of this TupleEntry object, no copy will be performed.
 int size()
          Method size returns the number of values in this instance.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

NULL

public static final TupleEntry NULL
An EMPTY TupleEntry instance for use as a stand in instead of a null.

Constructor Detail

TupleEntry

public TupleEntry()
Constructor TupleEntry creates a new TupleEntry instance.


TupleEntry

@ConstructorProperties(value="isUnmodifiable")
public TupleEntry(boolean isUnmodifiable)
Constructor TupleEntry creates a new TupleEntry instance.

Parameters:
isUnmodifiable - of type boolean

TupleEntry

@ConstructorProperties(value="fields")
public TupleEntry(Fields fields)
Constructor TupleEntry creates a new TupleEntry instance.

Parameters:
fields - of type Fields

TupleEntry

@ConstructorProperties(value={"fields","isUnmodifiable"})
public TupleEntry(Fields fields,
                                             boolean isUnmodifiable)
Constructor TupleEntry creates a new TupleEntry instance.

Parameters:
fields - of type Fields
isUnmodifiable - of type boolean

TupleEntry

@ConstructorProperties(value={"fields","tuple","isUnmodifiable"})
public TupleEntry(Fields fields,
                                             Tuple tuple,
                                             boolean isUnmodifiable)
Constructor TupleEntry creates a new TupleEntry instance.

Parameters:
fields - of type Fields
tuple - of type Tuple
isUnmodifiable - of type boolean

TupleEntry

@ConstructorProperties(value={"fields","tuple"})
public TupleEntry(Fields fields,
                                             Tuple tuple)
Constructor TupleEntry creates a new TupleEntry instance.

Parameters:
fields - of type Fields
tuple - of type Tuple

TupleEntry

@ConstructorProperties(value="tupleEntry")
public TupleEntry(TupleEntry tupleEntry)
Constructor TupleEntry creates a new TupleEntry instance that is a safe copy of the given tupleEntry.

The new instance is safe to cache and will be modifiable regardless of the given tupleEntry state.

Parameters:
tupleEntry - of type TupleEntry

TupleEntry

@ConstructorProperties(value="tuple")
public TupleEntry(Tuple tuple)
Constructor TupleEntry creates a new TupleEntry instance.

Parameters:
tuple - of type Tuple
Method Detail

select

public static Tuple select(Fields selector,
                           TupleEntry... entries)
Method select will select a new Tuple instance from the given set of entries. Entries order is significant to the selector.

Parameters:
selector - of type Fields
entries - of type TupleEntry
Returns:
Tuple

isUnmodifiable

public boolean isUnmodifiable()
Method isUnmodifiable returns true if this TupleEntry is unmodifiable.

Returns:
boolean

getFields

public Fields getFields()
Method getFields returns the fields of this TupleEntry object.

Returns:
the fields (type Fields) of this TupleEntry object.

hasTypes

public boolean hasTypes()
Returns true if there are types associated with this instance.

Returns:
boolean

getTuple

public Tuple getTuple()
Method getTuple returns the tuple of this TupleEntry object.

Returns:
the tuple (type Tuple) of this TupleEntry object.

getTupleCopy

public Tuple getTupleCopy()
Method getTupleCopy returns a copy of the tuple of this TupleEntry object.

Returns:
a copy of the tuple (type Tuple) of this TupleEntry object.

getCoercedTuple

public Tuple getCoercedTuple(Type[] types)
Method getCoercedTuple is a helper method for copying the current tuple elements into a new Tuple, of the same size, as the requested coerced types.

Parameters:
types - of type Type[]
Returns:
returns the a new Tuple instance with coerced values

getCoercedTuple

public Tuple getCoercedTuple(Type[] types,
                             Tuple into)
Method getCoercedTuple is a helper method for copying the current tuple elements into the new Tuple, of the same size, as the requested coerced types.

Parameters:
types - of type Type[]
into - of type Tuple
Returns:
returns the given into Tuple instance with coerced values

setTuple

public void setTuple(Tuple tuple)
Method setTuple sets the tuple of this TupleEntry object, no copy will be performed.

If the given tuple is "unmodifiable" (Tuple.isUnmodifiable() == true) and this TupleEntry is not "unmodifiable", a warning will be issued.

Unmodifiable tuples are generally owned by the system and cannot be be changed and must not be cached.

Parameters:
tuple - the tuple of this TupleEntry object.

setCanonicalTuple

public void setCanonicalTuple(Tuple tuple)
Method setCanonicalTuple replaces each value of the current tuple with the given tuple elements after they are coerced.

This method will modify the existing Tuple wrapped by this TupleEntry instance even if it is marked as unmodifiable.

Parameters:
tuple - to replace the current wrapped Tuple instance

size

public int size()
Method size returns the number of values in this instance.

Returns:
int

get

@Deprecated
public Comparable get(int pos)
Deprecated. 

Method get returns the value in the given position pos.

This method is deprecated, use getObject(int) instead.

Parameters:
pos - position of the element to return.
Returns:
Comparable

getObject

public Object getObject(int pos)
Method getObject returns the value in the given position pos.

No coercion is performed if there is an associated coercible type.

Parameters:
pos - position of the element to return.
Returns:
Object

getObject

public Object getObject(int pos,
                        Type type)
Method getObject returns the value in the given field or position as the requested type.

Coercion is performed to the given type.

Parameters:
pos - position of the element to return.
Returns:
Object

get

@Deprecated
public Comparable get(Comparable fieldName)
Deprecated. 

Method get returns the value in the given field or position.
fieldName may optionally be a Fields instance. Only the first field name or position will be considered.

This method is deprecated, use getObject(Comparable) instead.

Parameters:
fieldName - field name or position to return
Returns:
Comparable

getObject

public Object getObject(Comparable fieldName)
Method getObject returns the value in the given field or position.
fieldName may optionally be a Fields instance. Only the first field name or position will be considered.

No coercion is performed if there is an associated coercible type.

Parameters:
fieldName - field name or position to return
Returns:
Comparable

getObject

public Object getObject(Comparable fieldName,
                        Type type)
Method getObject returns the value in the given field or position as the requested type.
fieldName may optionally be a Fields instance. Only the first field name or position will be considered.

Coercion is performed to the given type.

Parameters:
fieldName - field name or position to return
Returns:
Comparable

set

@Deprecated
public void set(Comparable fieldName,
                           Object value)
Deprecated. 

Method set sets the value in the given field or position.

This method is deprecated in favor of setRaw(Comparable, Object)

Parameters:
fieldName - field name or position to set
value - of type Comparable

setRaw

public void setRaw(int pos,
                   Object value)
Method set sets the value in the given position.

No coercion is performed if there is an associated coercible type.

Parameters:
pos - position to set
value - of type Comparable

setRaw

public void setRaw(Comparable fieldName,
                   Object value)
Method set sets the value in the given field or position.

No coercion is performed if there is an associated coercible type.

Parameters:
fieldName - field name or position to set
value - of type Comparable

setObject

public void setObject(Comparable fieldName,
                      Object value)
Method set sets the value in the given field or position.

Parameters:
fieldName - field name or position to set
value - of type Comparable

setBoolean

public void setBoolean(Comparable fieldName,
                       boolean value)
Method setBoolean sets the value in the given field or position.

Parameters:
fieldName - field name or position to set
value - of type boolean

setShort

public void setShort(Comparable fieldName,
                     short value)
Method setShort sets the value in the given field or position.

Parameters:
fieldName - field name or position to set
value - of type short

setInteger

public void setInteger(Comparable fieldName,
                       int value)
Method setInteger sets the value in the given field or position.

Parameters:
fieldName - field name or position to set
value - of type int

setLong

public void setLong(Comparable fieldName,
                    long value)
Method setLong sets the value in the given field or position.

Parameters:
fieldName - field name or position to set
value - of type long

setFloat

public void setFloat(Comparable fieldName,
                     float value)
Method setFloat sets the value in the given field or position.

Parameters:
fieldName - field name or position to set
value - of type float

setDouble

public void setDouble(Comparable fieldName,
                      double value)
Method setDouble sets the value in the given field or position.

Parameters:
fieldName - field name or position to set
value - of type double

setString

public void setString(Comparable fieldName,
                      String value)
Method setString sets the value in the given field or position.

Parameters:
fieldName - field name or position to set
value - of type String

getString

public String getString(Comparable fieldName)
Method getString returns the element for the given field name or position as a String.
fieldName may optionally be a Fields instance. Only the first field name or position will be considered.

Parameters:
fieldName - field name or position to return
Returns:
String

getFloat

public float getFloat(Comparable fieldName)
Method getFloat returns the element for the given field name or position as a float. Zero if null.
fieldName may optionally be a Fields instance. Only the first field name or position will be considered.

Parameters:
fieldName - field name or position to return
Returns:
float

getDouble

public double getDouble(Comparable fieldName)
Method getDouble returns the element for the given field name or position as a double. Zero if null.
fieldName may optionally be a Fields instance. Only the first field name or position will be considered.

Parameters:
fieldName - field name or position to return
Returns:
double

getInteger

public int getInteger(Comparable fieldName)
Method getInteger returns the element for the given field name or position as an int. Zero if null.
fieldName may optionally be a Fields instance. Only the first field name or position will be considered.

Parameters:
fieldName - field name or position to return
Returns:
int

getLong

public long getLong(Comparable fieldName)
Method getLong returns the element for the given field name or position as a long. Zero if null.
fieldName may optionally be a Fields instance. Only the first field name or position will be considered.

Parameters:
fieldName - field name or position to return
Returns:
long

getShort

public short getShort(Comparable fieldName)
Method getShort returns the element for the given field name or position as a short. Zero if null.
fieldName may optionally be a Fields instance. Only the first field name or position will be considered.

Parameters:
fieldName - field name or position to return
Returns:
short

getBoolean

public boolean getBoolean(Comparable fieldName)
Method getBoolean returns the element for the given field name or position as a boolean. If the value is (case ignored) the string 'true', a true value will be returned. false if null.
fieldName may optionally be a Fields instance. Only the first field name or position will be considered.

Parameters:
fieldName - field name or position to return
Returns:
boolean

selectEntry

public TupleEntry selectEntry(Fields selector)
Method selectEntry selects the fields specified in the selector from this instance. If Fields.ALL or the same fields as declared are given, this will be returned.

The returned TupleEntry will be either modifiable or unmodifiable, depending on the state of this TupleEntry instance.

See selectEntryCopy(Fields) to guarantee a copy suitable for modifying or caching/storing in a collection.

Note this is a bug fix and change from 2.0 and 2.1. In previous versions the modifiable state was dependent on the given selector.

Parameters:
selector - Fields selector that selects the values to return
Returns:
TupleEntry

selectEntryCopy

public TupleEntry selectEntryCopy(Fields selector)
Method selectEntry selects the fields specified in selector from this instance.

It is guaranteed to return a new modifiable TupleEntry instance at a cost of copying data.

The returned instance is safe to cache.

Parameters:
selector - Fields selector that selects the values to return
Returns:
TupleEntry

selectTuple

public Tuple selectTuple(Fields selector)
Method selectTuple selects the fields specified in the selector from this instance. If Fields.ALL or the same fields as declared are given, this.getTuple() will be returned.

The returned Tuple will be either modifiable or unmodifiable, depending on the state of this TupleEntry instance.

See selectTupleCopy(Fields) to guarantee a copy suitable for modifying or caching/storing in a collection.

Note this is a bug fix and change from 2.0 and 2.1. In previous versions the modifiable state was dependent on the given selector.

Parameters:
selector - Fields selector that selects the values to return
Returns:
Tuple

selectTupleCopy

public Tuple selectTupleCopy(Fields selector)
Method selectTupleCopy selects the fields specified in selector from this instance.

It is guaranteed to return a new modifiable Tuple instance at a cost of copying data.

The returned instance is safe to cache.

Parameters:
selector - Fields selector that selects the values to return
Returns:
Tuple

selectInto

public Tuple selectInto(Fields selector,
                        Tuple tuple)
Method selectInto selects the fields specified in the selector from this instance and copies them into the given tuple argument.

Parameters:
selector - of type Fields
tuple - of type Tuple
Returns:
returns the given tuple argument with new values added

setTuple

public void setTuple(Fields selector,
                     Tuple tuple)
Method setTuple sets the values specified by the selector to the values given by the given tuple, the given values will always be copied into this TupleEntry.

Parameters:
selector - of type Fields
tuple - of type Tuple

set

public void set(TupleEntry tupleEntry)
Method set sets the values from the given tupleEntry into this TupleEntry instance based on the given tupleEntry field names.

If type information is given, each incoming value will be coerced from its canonical type to the given types.

Parameters:
tupleEntry - of type TupleEntry

appendNew

public TupleEntry appendNew(TupleEntry entry)
Method appendNew appends the given TupleEntry instance to this instance.

Parameters:
entry - of type TupleEntry
Returns:
TupleEntry

equals

public boolean equals(Object object)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object

asIterableOf

public <T> Iterable<T> asIterableOf(Class<T> type)
Method asIterableOf returns an Iterable instance that will coerce all Tuple elements into the given type parameter.

This method honors any CoercibleType instances on the internal Fields instance for the specified Tuple element.

Parameters:
type - of type Class
Returns:
an Iterable


Copyright © 2007-2013 Concurrent, Inc. All Rights Reserved.