|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object | +--lights.Tuple
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. Tuple fields are accessed by
their index, with the first element conventionally set to index
0.
The interface, defined by ITuple 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());Matching is determined by the
matches method.
this.matches(t) returns true if:
this and t have the same number of fields;
this match the corresponding field of
t.
this has no fields.
Notably, the matching rules above do not depend on the type of the
tuple. Thus, for instance, if this is of class
Tuple, and t is of type MyTuple,
extending Tuple, as long as they comply with the two rules
above they still match, even though their types are different.
Different matching rules, e.g., taking into account subtyping, or
allowing matching between tuples with different arity, can be provided by
overriding the method matches.
| Constructor Summary | |
Tuple()
Creates an uninitialized tuple. |
|
| 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. |
java.lang.String |
toString()
Returns a string representation of the field. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
public Tuple()
| Method Detail |
public ITuple add(IField field)
add in interface ITuplepublic ITuple addActual(java.io.Serializable obj)
addActual in interface ITuplepublic ITuple addFormal(java.lang.Class classObj)
addFormal in interface ITuple
public ITuple set(IField field,
int index)
index with the given one.set in interface ITuplepublic IField get(int index)
index.get in interface ITuple
public ITuple insertAt(IField field,
int index)
index. All the fields
whose position is greater than index are shifted downwards,
i.e., their index is increased by one.insertAt in interface ITuplepublic ITuple removeAt(int index)
index. The fields whose
position is greater than index are shifted upwards, i.e.,
their index is decreased by one.removeAt in interface ITuplepublic IField[] getFields()
getFields in interface ITuplepublic int length()
length in interface ITuplepublic boolean matches(ITuple tuple)
this.matches(t) returns true if:
this and t have the same number of fields;
this match the corresponding field of
t.
this has no fields.matches in interface ITupletrue if the tuple passed as a parameter matches
this tuple, false otherwise.public java.lang.String toString()
toString in class java.lang.Object
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||