org.jmlspecs.models
Class JMLEqualsToEqualsRelation
java.lang.Object
org.jmlspecs.models.JMLEqualsToEqualsRelation
- All Implemented Interfaces:
- Cloneable, JMLCollection, JMLType, Serializable
- Direct Known Subclasses:
- JMLEqualsToEqualsMap
- public class JMLEqualsToEqualsRelation
- extends Object
- implements JMLCollection
Binary relations (or set-valued functions) from non-null elements
of Object to non-null elements of Object. The first type, Object, is called
the domain type of the relation; the second type,
Object, 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 JMLEqualsSet).
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.48 $
- Author:
- Gary T. Leavens, Clyde Ruby
- See Also:
JMLCollection,
JMLType,
JMLEqualsToEqualsMap,
JMLEqualsToEqualsRelationEnumerator,
JMLEqualsToEqualsRelationImageEnumerator,
JMLValueSet,
JMLObjectSet,
JMLObjectToObjectRelation,
JMLValueToObjectRelation,
JMLObjectToValueRelation,
JMLValueToValueRelation
|
Method Summary |
JMLEqualsToEqualsRelation |
add(Object dv,
Object rv)
Return a relation that is just like this relation, except that
it also associates the given domain element to the given range
element. |
JMLEqualsToEqualsRelationEnumerator |
associations()
Return a enumerator for the set of associations that
conceptually make up this relation. |
Object |
clone()
Return a clone of this object. |
JMLObjectToEqualsRelation |
compose(JMLObjectToEqualsRelation othRel)
Return a relation that is the composition of the given
relation and this relation. |
JMLValueToEqualsRelation |
compose(JMLValueToEqualsRelation othRel)
Return a relation that is the composition of the given
relation and this relation. |
JMLEqualsToEqualsRelation |
difference(JMLEqualsToEqualsRelation 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. |
JMLEqualsSet |
elementImage(Object dv)
Returns a set containing all the range elements that this
relation relates to the given domain element. |
JMLEqualsToEqualsRelationEnumerator |
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,
Object rv)
Tells whether this associates the given key to the given value. |
boolean |
has(JMLEqualsEqualsPair pair)
Tells whether this associates the given key to the given value. |
int |
hashCode()
Return a hash code for this object. |
JMLEqualsSet |
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. |
JMLEqualsToEqualsRelationImageEnumerator |
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. |
JMLEqualsToEqualsRelation |
insert(JMLEqualsEqualsPair 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. |
JMLEqualsToEqualsRelation |
intersection(JMLEqualsToEqualsRelation othRel)
Return a relation that is the intersection of this and the
given relation. |
JMLEqualsToEqualsRelation |
inverse()
Returns the inverse of this relation. |
JMLEqualsSet |
inverseElementImage(Object rv)
Return a set of all the domain elements that relate to the
given range element. |
JMLEqualsSet |
inverseImage(JMLEqualsSet 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.. |
JMLEqualsSet |
range()
Returns a set containing the range of this relation. |
JMLEqualsSetEnumerator |
rangeElements()
Return a enumerator for the set that is the range of this
relation. |
JMLEqualsToEqualsRelation |
remove(Object dv,
Object 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. |
JMLEqualsToEqualsRelation |
remove(JMLEqualsEqualsPair pair)
Return a relation that is just like this relation, except that
it does not contain association described by the given pair. |
JMLEqualsToEqualsRelation |
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. |
JMLEqualsToEqualsRelation |
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. |
JMLEqualsToEqualsRelation |
restrictRangeTo(JMLEqualsSet rng)
Return a relation that is like this relation except that its
range is limited to just the elements of the given set. |
static JMLEqualsToEqualsRelation |
singleton(Object dv,
Object rv)
Return the singleton relation containing the given association. |
static JMLEqualsToEqualsRelation |
singleton(JMLEqualsEqualsPair pair)
Return the singleton relation containing the association
described by the given pair. |
JMLValueBag |
toBag()
Return the bag of all associations in this relation. |
JMLEqualsToEqualsMap |
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. |
JMLEqualsToEqualsRelation |
union(JMLEqualsToEqualsRelation 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 JMLEqualsSet 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 JMLEqualsToEqualsRelation EMPTY
- The empty JMLEqualsToEqualsRelation.
- See Also:
JMLEqualsToEqualsRelation()
TOO_BIG_TO_INSERT
private static final String TOO_BIG_TO_INSERT
TOO_BIG_TO_UNION
protected static final String TOO_BIG_TO_UNION
JMLEqualsToEqualsRelation
public JMLEqualsToEqualsRelation()
- Initialize this to be an empty relation. That is, the value is
an empty set of pairs.
- See Also:
EMPTY
JMLEqualsToEqualsRelation
public JMLEqualsToEqualsRelation(Object dv,
Object rv)
- Initialize this to be a relation containing a single association
between the given domain and range elements.
- See Also:
singleton(Object, Object),
JMLEqualsToEqualsRelation(JMLEqualsEqualsPair)
JMLEqualsToEqualsRelation
public JMLEqualsToEqualsRelation(JMLEqualsEqualsPair pair)
- Initialize this to be a relation containing a single association
given by the pair.
- See Also:
singleton(JMLEqualsEqualsPair),
JMLEqualsToEqualsRelation(Object, Object)
JMLEqualsToEqualsRelation
protected JMLEqualsToEqualsRelation(JMLValueSet ipset,
JMLEqualsSet dom,
int sz)
- Initialize this using the given representation.
singleton
public static JMLEqualsToEqualsRelation singleton(Object dv,
Object rv)
- Return the singleton relation containing the given association.
- See Also:
singleton(JMLEqualsEqualsPair),
JMLEqualsToEqualsRelation(Object, Object)
singleton
public static JMLEqualsToEqualsRelation singleton(JMLEqualsEqualsPair pair)
- Return the singleton relation containing the association
described by the given pair.
- See Also:
singleton(Object, Object),
JMLEqualsToEqualsRelation(JMLEqualsEqualsPair)
isaFunction
public boolean isaFunction()
- Tells whether this relation is a function.
- See Also:
JMLEqualsToEqualsMap
elementImage
public JMLEqualsSet 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),
JMLEqualsToEqualsMap.apply(java.lang.Object)
image
public JMLEqualsSet 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.JMLEqualsSet),
JMLEqualsToEqualsMap.apply(java.lang.Object)
inverse
public JMLEqualsToEqualsRelation 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.JMLEqualsSet),
inverseElementImage(java.lang.Object)
inverseElementImage
public JMLEqualsSet inverseElementImage(Object rv)
- Return a set of all the domain elements that relate to the
given range element.
- See Also:
inverseImage(org.jmlspecs.models.JMLEqualsSet),
inverse(),
elementImage(java.lang.Object)
inverseImage
public JMLEqualsSet inverseImage(JMLEqualsSet rng)
- Return a set of all the domain elements that relate to some
element in the given set of range elements.
- See Also:
inverseElementImage(java.lang.Object),
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,
Object rv)
- Tells whether this associates the given key to the given value.
- See Also:
isDefinedAt(java.lang.Object),
has(JMLEqualsEqualsPair)
has
public boolean has(JMLEqualsEqualsPair pair)
- Tells whether this associates the given key to the given value.
- See Also:
isDefinedAt(java.lang.Object),
has(Object, Object)
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(JMLEqualsEqualsPair)
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 JMLEqualsSet range()
- Returns a set containing the range of this relation.
- See Also:
rangeElements(),
associations(),
inverseElementImage(java.lang.Object),
domain(),
inverse()
add
public JMLEqualsToEqualsRelation add(Object dv,
Object 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.JMLEqualsEqualsPair)
insert
public JMLEqualsToEqualsRelation insert(JMLEqualsEqualsPair 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, java.lang.Object)
removeFromDomain
public JMLEqualsToEqualsRelation 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(JMLEqualsEqualsPair),
removeFromDomain(java.lang.Object)
remove
public JMLEqualsToEqualsRelation remove(Object dv,
Object 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, Object),
remove(JMLEqualsEqualsPair)
remove
public JMLEqualsToEqualsRelation remove(JMLEqualsEqualsPair 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, Object),
removeFromDomain(java.lang.Object)
compose
public JMLValueToEqualsRelation 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 JMLObjectToEqualsRelation 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 JMLEqualsToEqualsRelation union(JMLEqualsToEqualsRelation 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.JMLEqualsToEqualsRelation),
intersection(org.jmlspecs.models.JMLEqualsToEqualsRelation)
intersection
public JMLEqualsToEqualsRelation intersection(JMLEqualsToEqualsRelation 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.JMLEqualsToEqualsRelation),
union(org.jmlspecs.models.JMLEqualsToEqualsRelation)
difference
public JMLEqualsToEqualsRelation difference(JMLEqualsToEqualsRelation 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.JMLEqualsToEqualsRelation),
intersection(org.jmlspecs.models.JMLEqualsToEqualsRelation)
restrictDomainTo
public JMLEqualsToEqualsRelation 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.JMLEqualsSet)
restrictRangeTo
public JMLEqualsToEqualsRelation restrictRangeTo(JMLEqualsSet 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 JMLEqualsToEqualsRelationEnumerator associations()
- Return a enumerator for the set of associations that
conceptually make up this relation.
- See Also:
elements(),
iterator(),
toSet(),
imagePairs()
elements
public JMLEqualsToEqualsRelationEnumerator 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 JMLEqualsToEqualsRelationImageEnumerator 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 JMLEqualsSetEnumerator 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 JMLEqualsToEqualsMap 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(),
JMLEqualsToEqualsMap
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.