org.jmlspecs.models
Class JMLEqualsToValueRelation
java.lang.Object
org.jmlspecs.models.JMLEqualsToValueRelation
- All Implemented Interfaces:
- Cloneable, JMLCollection, JMLType, Serializable
- Direct Known Subclasses:
- JMLEqualsToValueMap
- public class JMLEqualsToValueRelation
- extends Object
- implements JMLCollection
Binary relations (or set-valued functions) from non-null elements
of Object to non-null elements of JMLType. The first type, Object, is called
the domain type of the relation; the second type,
JMLType, is called the range type of the relation.
A relation can be seen as a set of pairs, of form (dv,
rv), consisting of an element of the domain type,
dv, and an element of the range type, rv.
Alternatively, it can be seen as a set-valued function that
relates each element of the domain type to some set of elements of
the range type (a JMLValueSet).
This type considers elements val and dv
of the domain type, to be distinct just when
!val.equals(dv). It considers elements of
r and rv of the range type to be distinct
just when !r.equals(rv). Cloning takes place for
the domain or range elements if the corresponding domain or range
type is JMLType.
- Version:
- $Revision: 1.52 $
- Author:
- Gary T. Leavens, Clyde Ruby
- See Also:
JMLCollection,
JMLType,
JMLEqualsToValueMap,
JMLEqualsToValueRelationEnumerator,
JMLEqualsToValueRelationImageEnumerator,
JMLValueSet,
JMLObjectSet,
JMLObjectToObjectRelation,
JMLValueToObjectRelation,
JMLObjectToValueRelation,
JMLValueToValueRelation
|
Method Summary |
JMLEqualsToValueRelation |
add(Object dv,
JMLType rv)
Return a relation that is just like this relation, except that
it also associates the given domain element to the given range
element. |
JMLEqualsToValueRelationEnumerator |
associations()
Return a enumerator for the set of associations that
conceptually make up this relation. |
Object |
clone()
Return a clone of this object. |
JMLObjectToValueRelation |
compose(JMLObjectToEqualsRelation othRel)
Return a relation that is the composition of the given
relation and this relation. |
JMLValueToValueRelation |
compose(JMLValueToEqualsRelation othRel)
Return a relation that is the composition of the given
relation and this relation. |
JMLEqualsToValueRelation |
difference(JMLEqualsToValueRelation othRel)
Return a relation that is the difference between this and the given
relation. |
JMLEqualsSet |
domain()
Returns a set containing the domain of this relation. |
JMLEqualsSetEnumerator |
domainElements()
Return a enumerator for the set that is the domain of this
relation. |
JMLValueSet |
elementImage(Object dv)
Returns a set containing all the range elements that this
relation relates to the given domain element. |
JMLEqualsToValueRelationEnumerator |
elements()
Return a enumerator for the set of associations that
conceptually make up this relation. |
boolean |
equals(Object obj)
Test whether this object's value is equal to the given argument. |
boolean |
has(Object obj)
Tells whether this associates the given key to the given value. |
boolean |
has(Object dv,
JMLType rv)
Tells whether this associates the given key to the given value. |
boolean |
has(JMLEqualsValuePair pair)
Tells whether this associates the given key to the given value. |
int |
hashCode()
Return a hash code for this object. |
JMLValueSet |
image(JMLEqualsSet dom)
Returns a set containing all the range elements that this
relation relates to the elements of the given set of domain elements. |
JMLEqualsToValueRelationImageEnumerator |
imagePairs()
Return the set of domain image set pairs that make up this relation. |
JMLValueSet |
imagePairSet()
Return the set of image set pairs that make up this relation. |
JMLEqualsToValueRelation |
insert(JMLEqualsValuePair pair)
Return a relation that is just like this relation, except that
it also includes the association described by the given pair. |
int |
int_size()
Return the number of associations in this relation. |
JMLEqualsToValueRelation |
intersection(JMLEqualsToValueRelation othRel)
Return a relation that is the intersection of this and the
given relation. |
JMLValueToEqualsRelation |
inverse()
Returns the inverse of this relation. |
JMLEqualsSet |
inverseElementImage(JMLType rv)
Return a set of all the domain elements that relate to the
given range element. |
JMLEqualsSet |
inverseImage(JMLValueSet rng)
Return a set of all the domain elements that relate to some
element in the given set of range elements. |
boolean |
isaFunction()
Tells whether this relation is a function. |
boolean |
isDefinedAt(Object dv)
Tells whether this relation associates any range element to the
given domain element. |
boolean |
isEmpty()
Tells whether the relation is empty. |
JMLIterator |
iterator()
Returns an Iterator over the set of pairs conceptually
contained in this relation.. |
JMLValueSet |
range()
Returns a set containing the range of this relation. |
JMLValueSetEnumerator |
rangeElements()
Return a enumerator for the set that is the range of this
relation. |
JMLEqualsToValueRelation |
remove(Object dv,
JMLType rv)
Return a relation that is just like this relation, except that
it does not contain the association, if any, between the given
domain and range elements. |
JMLEqualsToValueRelation |
remove(JMLEqualsValuePair pair)
Return a relation that is just like this relation, except that
it does not contain association described by the given pair. |
JMLEqualsToValueRelation |
removeFromDomain(Object dv)
Return a relation that is just like this relation, except that
it does not contain any association with the given domain element. |
JMLEqualsToValueRelation |
restrictDomainTo(JMLEqualsSet dom)
Return a relation that is like this relation except that its
domain is limited to just the elements of the given set. |
JMLEqualsToValueRelation |
restrictRangeTo(JMLValueSet rng)
Return a relation that is like this relation except that its
range is limited to just the elements of the given set. |
static JMLEqualsToValueRelation |
singleton(Object dv,
JMLType rv)
Return the singleton relation containing the given association. |
static JMLEqualsToValueRelation |
singleton(JMLEqualsValuePair pair)
Return the singleton relation containing the association
described by the given pair. |
JMLValueBag |
toBag()
Return the bag of all associations in this relation. |
JMLEqualsToValueMap |
toFunction()
Return a map that is contained in this relation. |
JMLValueSequence |
toSequence()
Return a sequence containing all associations in this relation. |
JMLValueSet |
toSet()
Return the set of all associations in this relation. |
String |
toString()
Return a string representation of this object. |
JMLEqualsToValueRelation |
union(JMLEqualsToValueRelation othRel)
Return a relation that union of the this and the given relation. |
domain_
protected final JMLEqualsSet domain_
- The set of pairs of keys and values conceptually contained in
this object.
The set of elements in the domain of this relation.
imagePairSet_
protected final JMLValueSet imagePairSet_
- The set representing the image pairs in the relation. The
elements of this set are JMLEqualsValuePairs, which are all
non-null. Each such pair has a key which is an element in
domain_ and a value which is a JMLValueSet containing all of
the elements that the key of the pair is related to.
size_
protected final int size_
- The size (number of pairs) of this relation.
EMPTY
public static final JMLEqualsToValueRelation EMPTY
- The empty JMLEqualsToValueRelation.
- See Also:
JMLEqualsToValueRelation()
TOO_BIG_TO_INSERT
private static final String TOO_BIG_TO_INSERT
TOO_BIG_TO_UNION
protected static final String TOO_BIG_TO_UNION
JMLEqualsToValueRelation
public JMLEqualsToValueRelation()
- Initialize this to be an empty relation. That is, the value is
an empty set of pairs.
- See Also:
EMPTY
JMLEqualsToValueRelation
public JMLEqualsToValueRelation(Object dv,
JMLType rv)
- Initialize this to be a relation containing a single association
between the given domain and range elements.
- See Also:
singleton(Object, JMLType),
JMLEqualsToValueRelation(JMLEqualsValuePair)
JMLEqualsToValueRelation
public JMLEqualsToValueRelation(JMLEqualsValuePair pair)
- Initialize this to be a relation containing a single association
given by the pair.
- See Also:
singleton(JMLEqualsValuePair),
JMLEqualsToValueRelation(Object, JMLType)
JMLEqualsToValueRelation
protected JMLEqualsToValueRelation(JMLValueSet ipset,
JMLEqualsSet dom,
int sz)
- Initialize this using the given representation.
singleton
public static JMLEqualsToValueRelation singleton(Object dv,
JMLType rv)
- Return the singleton relation containing the given association.
- See Also:
singleton(JMLEqualsValuePair),
JMLEqualsToValueRelation(Object, JMLType)
singleton
public static JMLEqualsToValueRelation singleton(JMLEqualsValuePair pair)
- Return the singleton relation containing the association
described by the given pair.
- See Also:
singleton(Object, JMLType),
JMLEqualsToValueRelation(JMLEqualsValuePair)
isaFunction
public boolean isaFunction()
- Tells whether this relation is a function.
- See Also:
JMLEqualsToValueMap
elementImage
public JMLValueSet elementImage(Object dv)
- Returns a set containing all the range elements that this
relation relates to the given domain element.
- See Also:
image(org.jmlspecs.models.JMLEqualsSet),
JMLEqualsToValueMap.apply(java.lang.Object)
image
public JMLValueSet image(JMLEqualsSet dom)
- Returns a set containing all the range elements that this
relation relates to the elements of the given set of domain elements.
- See Also:
elementImage(java.lang.Object),
inverseImage(org.jmlspecs.models.JMLValueSet),
JMLEqualsToValueMap.apply(java.lang.Object)
inverse
public JMLValueToEqualsRelation inverse()
- Returns the inverse of this relation. The inverse is the
relation that relates each range element to the corresponding
domain element.
- See Also:
inverseImage(org.jmlspecs.models.JMLValueSet),
inverseElementImage(org.jmlspecs.models.JMLType)
inverseElementImage
public JMLEqualsSet inverseElementImage(JMLType rv)
- Return a set of all the domain elements that relate to the
given range element.
- See Also:
inverseImage(org.jmlspecs.models.JMLValueSet),
inverse(),
elementImage(java.lang.Object)
inverseImage
public JMLEqualsSet inverseImage(JMLValueSet rng)
- Return a set of all the domain elements that relate to some
element in the given set of range elements.
- See Also:
inverseElementImage(org.jmlspecs.models.JMLType),
inverse(),
image(org.jmlspecs.models.JMLEqualsSet)
isDefinedAt
public boolean isDefinedAt(Object dv)
- Tells whether this relation associates any range element to the
given domain element.
- See Also:
domain()
has
public boolean has(Object dv,
JMLType rv)
- Tells whether this associates the given key to the given value.
- See Also:
isDefinedAt(java.lang.Object),
has(JMLEqualsValuePair)
has
public boolean has(JMLEqualsValuePair pair)
- Tells whether this associates the given key to the given value.
- See Also:
isDefinedAt(java.lang.Object),
has(Object, JMLType)
has
public boolean has(Object obj)
- Tells whether this associates the given key to the given value.
- Specified by:
has in interface JMLCollection
- See Also:
isDefinedAt(java.lang.Object),
has(JMLEqualsValuePair)
isEmpty
public boolean isEmpty()
- Tells whether the relation is empty.
- See Also:
int_size()
clone
public Object clone()
- Return a clone of this object.
- Specified by:
clone in interface JMLType- Overrides:
clone in class Object
equals
public boolean equals(Object obj)
- Test whether this object's value is equal to the given argument.
- Specified by:
equals in interface JMLType- Overrides:
equals in class Object
hashCode
public int hashCode()
- Return a hash code for this object.
- Specified by:
hashCode in interface JMLType- Overrides:
hashCode in class Object
domain
public JMLEqualsSet domain()
- Returns a set containing the domain of this relation.
- See Also:
domainElements(),
associations(),
isDefinedAt(java.lang.Object),
image(org.jmlspecs.models.JMLEqualsSet),
range(),
inverse()
range
public JMLValueSet range()
- Returns a set containing the range of this relation.
- See Also:
rangeElements(),
associations(),
inverseElementImage(org.jmlspecs.models.JMLType),
domain(),
inverse()
add
public JMLEqualsToValueRelation add(Object dv,
JMLType rv)
throws NullPointerException,
IllegalStateException
- Return a relation that is just like this relation, except that
it also associates the given domain element to the given range
element.
- Throws:
NullPointerException
IllegalStateException- See Also:
insert(org.jmlspecs.models.JMLEqualsValuePair)
insert
public JMLEqualsToValueRelation insert(JMLEqualsValuePair pair)
throws IllegalStateException
- Return a relation that is just like this relation, except that
it also includes the association described by the given pair.
- Throws:
IllegalStateException- See Also:
add(java.lang.Object, org.jmlspecs.models.JMLType)
removeFromDomain
public JMLEqualsToValueRelation removeFromDomain(Object dv)
- Return a relation that is just like this relation, except that
it does not contain any association with the given domain element.
- See Also:
remove(JMLEqualsValuePair),
removeFromDomain(java.lang.Object)
remove
public JMLEqualsToValueRelation remove(Object dv,
JMLType rv)
- Return a relation that is just like this relation, except that
it does not contain the association, if any, between the given
domain and range elements.
- See Also:
removeFromDomain(java.lang.Object),
remove(Object, JMLType),
remove(JMLEqualsValuePair)
remove
public JMLEqualsToValueRelation remove(JMLEqualsValuePair pair)
- Return a relation that is just like this relation, except that
it does not contain association described by the given pair.
- See Also:
remove(Object, JMLType),
removeFromDomain(java.lang.Object)
compose
public JMLValueToValueRelation compose(JMLValueToEqualsRelation othRel)
- Return a relation that is the composition of the given
relation and this relation. The composition is done in the
"usual" order, so that if the given relation relates x to y,
and this relation relates y to z, then the result relates x to
z.
- See Also:
compose(JMLObjectToEqualsRelation)
compose
public JMLObjectToValueRelation compose(JMLObjectToEqualsRelation othRel)
- Return a relation that is the composition of the given
relation and this relation. The composition is done in the
"usual" order, so that if the given relation relates x to y,
and this relation relates y to z, then the result relates x to
z.
- See Also:
compose(JMLValueToEqualsRelation)
union
public JMLEqualsToValueRelation union(JMLEqualsToValueRelation othRel)
throws IllegalStateException
- Return a relation that union of the this and the given relation.
This is the union of the sets of associations.
- Throws:
IllegalStateException- See Also:
difference(org.jmlspecs.models.JMLEqualsToValueRelation),
intersection(org.jmlspecs.models.JMLEqualsToValueRelation)
intersection
public JMLEqualsToValueRelation intersection(JMLEqualsToValueRelation othRel)
- Return a relation that is the intersection of this and the
given relation. This is the intersection of the sets of
associations.
- See Also:
difference(org.jmlspecs.models.JMLEqualsToValueRelation),
union(org.jmlspecs.models.JMLEqualsToValueRelation)
difference
public JMLEqualsToValueRelation difference(JMLEqualsToValueRelation othRel)
- Return a relation that is the difference between this and the given
relation. This is the difference between the sets of
associations.
- See Also:
difference(org.jmlspecs.models.JMLEqualsToValueRelation),
intersection(org.jmlspecs.models.JMLEqualsToValueRelation)
restrictDomainTo
public JMLEqualsToValueRelation restrictDomainTo(JMLEqualsSet dom)
- Return a relation that is like this relation except that its
domain is limited to just the elements of the given set.
- See Also:
restrictRangeTo(org.jmlspecs.models.JMLValueSet)
restrictRangeTo
public JMLEqualsToValueRelation restrictRangeTo(JMLValueSet rng)
- Return a relation that is like this relation except that its
range is limited to just the elements of the given set.
- See Also:
restrictDomainTo(org.jmlspecs.models.JMLEqualsSet)
toString
public String toString()
- Return a string representation of this object.
- Overrides:
toString in class Object
associations
public JMLEqualsToValueRelationEnumerator associations()
- Return a enumerator for the set of associations that
conceptually make up this relation.
- See Also:
elements(),
iterator(),
toSet(),
imagePairs()
elements
public JMLEqualsToValueRelationEnumerator elements()
- Return a enumerator for the set of associations that
conceptually make up this relation. This is a synonym for associations.
- See Also:
associations(),
iterator()
iterator
public JMLIterator iterator()
- Returns an Iterator over the set of pairs conceptually
contained in this relation..
- Specified by:
iterator in interface JMLCollection
- See Also:
associations(),
elements()
toSet
public JMLValueSet toSet()
- Return the set of all associations in this relation.
- See Also:
associations(),
toBag(),
toSequence()
toBag
public JMLValueBag toBag()
- Return the bag of all associations in this relation.
- See Also:
toSet(),
toSequence()
toSequence
public JMLValueSequence toSequence()
- Return a sequence containing all associations in this relation.
- See Also:
toSet(),
toBag()
imagePairSet
public JMLValueSet imagePairSet()
- Return the set of image set pairs that make up this relation.
- See Also:
imagePairs(),
toSet()
imagePairs
public JMLEqualsToValueRelationImageEnumerator imagePairs()
- Return the set of domain image set pairs that make up this relation.
- See Also:
imagePairSet(),
associations(),
toSet()
domainElements
public JMLEqualsSetEnumerator domainElements()
- Return a enumerator for the set that is the domain of this
relation.
- See Also:
domain(),
rangeElements()
rangeElements
public JMLValueSetEnumerator rangeElements()
- Return a enumerator for the set that is the range of this
relation. (This was formerly called "elements").
- See Also:
range(),
domainElements()
int_size
public int int_size()
- Return the number of associations in this relation.
- Specified by:
int_size in interface JMLCollection
toFunction
public JMLEqualsToValueMap toFunction()
- Return a map that is contained in this relation. If this
relation is a function, then this method can be seen as a type
conversion which does not make a change to the abstract value.
However, if this relation is not a function, then this method
chooses a function contained in this relation from among the
possibilities available.
- See Also:
isaFunction(),
JMLEqualsToValueMap
JML is Copyright (C) 1998-2002 by Iowa State University and is distributed under the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This release depends on code from the MultiJava project and is based in part on the Kopi project Copyright (C) 1990-99 DMS Decision Management Systems Ges.m.b.H.