|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object | +--lights.Field
Represents a single typed field of a tuple. 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.
Formals and actuals are set by using two separate methods,
setToFormal and setToActual. null
is a legal value for the domain on which the type of the field is defined,
thus fields whose value is null are considered to be
actuals. Nevertheless, the null value must be specified by
using a special method setToNullActual. Had the
null value been set using setToActual(null), it
would have been impossible to determine the type of the actual. Hence,
null fields are not considered as formals.
this.matches(f) returns true if:
this and f are both actuals, they have the
same type, and they have the same value;
this or f is a formal, and both have
the same type.
this and f is the same when
their class object (as determined by invoking getClass() on
the field objects) is the same.
this and f have the same value when
this.equals(f) returns true.
this and f both
implement Serializable, they are not considered to match
according to the rule above.
Different matching rules, e.g., taking into account subtyping, can be
provided by overriding the method matches.
| Constructor Summary | |
Field()
Creates an uninitialized field. |
|
| Method Summary | |
java.lang.Class |
getType()
Returns the type of this field. |
java.io.Serializable |
getValue()
Returns the value of this field. |
boolean |
isFormal()
Returns true if the field is a formal, false
otherwise. |
boolean |
matches(IField field)
Determines the rule used for pattern matching between fields. |
IField |
set(IField field)
Substitutes this field with the one passed as a parameter. |
IField |
setToActual(java.io.Serializable obj)
Sets the value of this field to the object passed as a parameter. |
IField |
setToFormal(java.lang.Class classObj)
Sets this field to be a formal whose type becomes the class passed as a parameter. |
IField |
setToNullActual(java.lang.Class classObj)
Sets the value of this field to null. |
java.lang.String |
toString()
Returns a string representation of the tuple. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
public Field()
| Method Detail |
public IField set(IField field)
field is a formal, this field becomes a formal with
field's type. If field is an actual, this
fields becomes an actual with the type and value of field.set in interface IFieldfield - the field to be assigned.public java.io.Serializable getValue()
getValue in interface IFieldjava.lang.IllegalArgumentException - if this field is a
formal. isFormal() should be used to check whether this
field is an actual, before calling this method.public java.lang.Class getType()
getType in interface IFieldpublic IField setToActual(java.io.Serializable obj)
setToActual in interface IFieldobj - the new value of the field.java.lang.IllegalArgumentException - if obj is
null. setToNullActual should be used instead.public IField setToNullActual(java.lang.Class classObj)
null. The type of the field
is set to the class passed as a parameter.setToNullActual in interface IFieldclassObj - the class to be associated to the null
actual.public IField setToFormal(java.lang.Class classObj)
setToFormal in interface IFieldclassObj - the new type of this field.public boolean isFormal()
true if the field is a formal, false
otherwise.isFormal in interface IFieldpublic boolean matches(IField field)
this.matches(f) returns true if:
this and f are both actuals, they have the
same type, and they have the same value;
this or f is a formal, and both have
the same type.
this and f is the same when
their class object (as determined by invoking getClass() on
the field objects) is the same.
this and f have the same value when
this.equals(f) returns true.
matches in interface IFieldtrue if the field passed as a parameter matches
this field, 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 | |||||||||