lights.interfaces
Interface ITuple

All Known Implementing Classes:
Tuple, Tuple

public interface ITuple

The definition of a tuple, i.e., an ordered sequence of typed fields. The type of a field can be any class implementing the Serializable interface. A field can either contain a value, or be characterized just by its type. In Linda jargon, the former is called an actual field, while the latter is called a formal field. Tuples with formals are typically used as a template to query the tuple space by pattern matching. Different matching rules can be implemented by redefining the matches method in ITuple or IField. Tuple fields are accessed by their index, with the first element conventionally set to index 0.

The interface provides methods to manipulate the fields of a tuple in various ways. All methods return the tuple resulting from the manipulation, so that cascaded operations are possible, e.g.,

System.out.println(t.add(obj1).add(obj2).add(obj3).toString());

Version:
1.0
Author:
Gian Pietro Picco

Method Summary
 ITuple add(IField field)
          Adds a field at the end of the tuple.
 ITuple addActual(java.io.Serializable obj)
          Adds an actual field, whose value is the given object, at the end of the tuple.
 ITuple addFormal(java.lang.Class classObj)
          Adds a formal field, whose type is the given class, at the end of the tuple.
 IField get(int index)
          Returns the field at position index.
 IField[] getFields()
          Returns all the fields in this tuple.
 ITuple insertAt(IField field, int index)
          Inserts the given field at position index.
 int length()
          Returns the number of fields in the tuple.
 boolean matches(ITuple tuple)
          Determines the rule used for pattern matching between tuples.
 ITuple removeAt(int index)
          Removes the field at position index.
 ITuple set(IField field, int index)
          Replaces the field at position index with the given one.
 

Method Detail

add

public ITuple add(IField field)
Adds a field at the end of the tuple.
Returns:
the resulting tuple.

addActual

public ITuple addActual(java.io.Serializable obj)
Adds an actual field, whose value is the given object, at the end of the tuple. The type of the field is automatically set to the object's class.
Returns:
the resulting tuple.

addFormal

public ITuple addFormal(java.lang.Class classObj)
Adds a formal field, whose type is the given class, at the end of the tuple.
Returns:
the resulting tuple.

set

public ITuple set(IField field,
                  int index)
Replaces the field at position index with the given one.
Returns:
the resulting tuple.

get

public IField get(int index)
Returns the field at position index.

insertAt

public ITuple insertAt(IField field,
                       int index)
Inserts the given field at position index. All the fields whose position is greater than index are shifted downwards, i.e., their index is increased by one.
Returns:
the resulting tuple.

removeAt

public ITuple removeAt(int index)
Removes the field at position index. The fields whose position is greater than index are shifted upwards, i.e., their index is decreased by one.
Returns:
the resulting tuple.

getFields

public IField[] getFields()
Returns all the fields in this tuple.
Returns:
an array containing the fields of this tuple.

length

public int length()
Returns the number of fields in the tuple.

matches

public boolean matches(ITuple tuple)
Determines the rule used for pattern matching between tuples. Classes implementing this interface may specify different policies for matching.
Returns:
true if the tuple passed as a parameter matches this tuple, false otherwise.