|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--lights.adapters.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()
|
Method Summary | |
ITuple |
add(IField field)
Creates an uninitialized 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)
Replaces the field at position index with the given one. |
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 ITuple
lights.interfaces.ITuple
public ITuple addActual(java.io.Serializable obj)
addActual
in interface ITuple
public 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 ITuple
public IField get(int index)
index
with the given one.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 ITuple
public 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 ITuple
public IField[] getFields()
getFields
in interface ITuple
public int length()
length
in interface ITuple
public 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 ITuple
true
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 |