|
JML | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jmlspecs.models.JMLValueToValueRelation org.jmlspecs.models.JMLValueToValueMap
Maps (i.e., binary relations that are functional) from non-null
elements of JMLType
to non-null elements of JMLType
. The first type, JMLType, is called
the domain type of the map; the second type,
JMLType, is called the range type of the map. A
map 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 partial function that maps each element of the domain to
an element of the range type.
This type is a subtype of JMLValueToValueRelation
, and as such as can be treated as a
binary relation or a set valued function also. See the
documentation for JMLValueToValueRelation
and for the
methods inherited from this supertype for more information.
This type considers elements val and dv
of the domain type, to be distinct just when
_val_not_equal_to_dv_. It considers elements of
r and rv of the range type to be distinct
just when _r_not_equal_to_rv_. Cloning takes place for
the domain or range elements if the corresponding domain or range
type is JMLType
.
JMLCollection
,
JMLType
,
JMLValueToValueRelation
,
JMLValueToValueRelationEnumerator
,
JMLValueToValueRelationImageEnumerator
,
JMLValueSet
,
JMLObjectSet
,
JMLObjectToObjectMap
,
JMLValueToObjectMap
,
JMLObjectToValueMap
,
JMLValueToValueMap
,
JMLValueToValueRelation.toFunction()
Class Specifications |
public invariant this.isaFunction(); public invariant_redundantly ( \forall org.jmlspecs.models.JMLType dv; this.isDefinedAt(dv); this.elementImage(dv).int_size() == 1); |
Specifications inherited from class JMLValueToValueRelation |
public invariant ( \forall java.lang.Object obj; this.theRelation.has((org.jmlspecs.models.JMLType)obj); obj != null&&obj instanceof org.jmlspecs.models.JMLValueValuePair&&((org.jmlspecs.models.JMLValueValuePair)obj).key != null&&((org.jmlspecs.models.JMLValueValuePair)obj).value != null); public invariant_redundantly (* Every element of 'theRelation'is a JMLValueValuePair whose key and value are not null *); public invariant this.elementType == \type(org.jmlspecs.models.JMLValueValuePair); public invariant !this.containsNull; protected invariant this.imagePairSet_.int_size() == this.domain_.int_size()&&( \forall org.jmlspecs.models.JMLType dv; dv != null&&this.domain_.has(dv); this.imagePairSet_.has(new org.jmlspecs.models.JMLValueValuePair(dv, this.elementImage(dv)))); protected invariant_redundantly this.imagePairSet_ == this.imagePairSet(); protected invariant this.size_ == this.theRelation.int_size(); protected invariant this.size_ >= 0; public invariant this.owner == null; protected represents theRelation <- this.toSet(); |
Specifications inherited from class Object |
represents objectState <- org.jmlspecs.lang.JMLDataGroup.IT; public represents _getClass <- \typeof(this); |
Specifications inherited from interface JMLCollection |
instance public constraint this.elementType == \old(this.elementType); instance public constraint this.containsNull == \old(this.containsNull); |
Model Field Summary |
Model fields inherited from class org.jmlspecs.models.JMLValueToValueRelation |
theRelation |
Model fields inherited from class java.lang.Object |
_getClass, objectState, theString |
Model fields inherited from interface org.jmlspecs.models.JMLCollection |
elementState |
Ghost Field Summary |
Ghost fields inherited from class java.lang.Object |
objectTimesFinalized, owner |
Ghost fields inherited from interface org.jmlspecs.models.JMLCollection |
containsNull, elementType |
Field Summary | |
static JMLValueToValueMap |
EMPTY
The empty JMLValueToValueMap. |
Fields inherited from class org.jmlspecs.models.JMLValueToValueRelation |
domain_, imagePairSet_, size_, TOO_BIG_TO_UNION |
Constructor Summary | |
|
JMLValueToValueMap()
Initialize this map to be the empty mapping. |
|
JMLValueToValueMap(non_null JMLType dv,
non_null JMLType rv)
Initialize this map to be a mapping that maps the given domain element to the given range element. |
protected |
JMLValueToValueMap(JMLValueSet ipset,
JMLValueSet dom,
int sz)
Initialize this map based on the representation values given. |
|
JMLValueToValueMap(non_null JMLValueValuePair pair)
Initialize this map to be a mapping that maps the key in the given pair to the value in that pair. |
Model Method Summary |
Model methods inherited from class java.lang.Object |
hashValue |
Model methods inherited from interface org.jmlspecs.models.JMLCollection |
size |
Method Summary | |
JMLType |
apply(JMLType dv)
Return the range element corresponding to dv, if there is one. |
JMLValueToValueMap |
clashReplaceUnion(JMLValueToValueMap othMap,
JMLType errval)
Return a new map that is like the union of the given map and this map, except that if both define a mapping for a given domain element, then each of these clashes is replaced by a mapping from the domain element in question to the given range element. |
Object |
clone()
Return a clone of this object. |
JMLObjectToValueMap |
compose(non_null JMLObjectToValueMap othMap)
Return a new map that is the composition of this and the given map. |
JMLValueToValueMap |
compose(non_null JMLValueToValueMap othMap)
Return a new map that is the composition of this and the given map. |
JMLValueToValueMap |
disjointUnion(non_null JMLValueToValueMap othMap)
Return a map that is the disjoint union of this and othMap. |
JMLValueToValueMap |
extend(non_null JMLType dv,
non_null JMLType rv)
Return a new map that is like this but maps the given domain element to the given range element. |
JMLValueToValueMap |
extendUnion(non_null JMLValueToValueMap othMap)
Return a new map that is like the union of the given map and this map, except that if both define a mapping for a given domain element, then only the mapping in the given map is retained. |
boolean |
isaFunction()
Tells whether this relation is a function. |
JMLValueToValueMap |
rangeRestrictedTo(non_null JMLValueSet rng)
Return a new map that is like this map but only contains associations that map to range elements in the given set. |
JMLValueToValueMap |
removeDomainElement(JMLType dv)
Return a new map that is like this but has no association for the given domain element. |
JMLValueToValueMap |
restrictedTo(non_null JMLValueSet dom)
Return a new map that only maps elements in the given domain to the corresponding range elements in this map. |
static JMLValueToValueMap |
singletonMap(non_null JMLType dv,
non_null JMLType rv)
Return the singleton map containing the given association. |
static JMLValueToValueMap |
singletonMap(non_null JMLValueValuePair pair)
Return the singleton map containing the association described by the given pair. |
Methods inherited from class org.jmlspecs.models.JMLValueToValueRelation |
add, associations, compose, compose, difference, domain, domainElements, elementImage, elements, equals, has, has, has, hashCode, image, imagePairs, imagePairSet, insert, int_size, intersection, inverse, inverseElementImage, inverseImage, isDefinedAt, isEmpty, iterator, range, rangeElements, remove, remove, removeFromDomain, restrictDomainTo, restrictRangeTo, singleton, singleton, toBag, toFunction, toSequence, toSet, toString, union |
Methods inherited from class java.lang.Object |
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
public static final JMLValueToValueMap EMPTY
JMLValueToValueMap()
Constructor Detail |
public JMLValueToValueMap()
EMPTY
public JMLValueToValueMap(non_null JMLType dv, non_null JMLType rv)
singletonMap(JMLType, JMLType)
,
JMLValueToValueMap(JMLValueValuePair)
public JMLValueToValueMap(non_null JMLValueValuePair pair)
singletonMap(JMLValueValuePair)
,
JMLValueToValueMap(JMLType, JMLType)
protected JMLValueToValueMap(JMLValueSet ipset, JMLValueSet dom, int sz)
Method Detail |
public static JMLValueToValueMap singletonMap(non_null JMLType dv, non_null JMLType rv)
JMLValueToValueMap(JMLType, JMLType)
,
singletonMap(JMLValueValuePair)
public static JMLValueToValueMap singletonMap(non_null JMLValueValuePair pair)
JMLValueToValueMap(JMLValueValuePair)
,
singletonMap(JMLType, JMLType)
public boolean isaFunction()
isaFunction
in class JMLValueToValueRelation
public JMLType apply(JMLType dv) throws JMLNoSuchElementException
dv
- the domain element for which an association is
sought (the key to the table).
JMLNoSuchElementException
- when dv is not associated
to any range element by this.JMLValueToValueRelation.isDefinedAt(org.jmlspecs.models.JMLType)
,
JMLValueToValueRelation.elementImage(org.jmlspecs.models.JMLType)
,
JMLValueToValueRelation.image(org.jmlspecs.models.JMLValueSet)
public Object clone()
JMLValueToValueRelation
clone
in interface JMLType
clone
in class JMLValueToValueRelation
public JMLValueToValueMap extend(non_null JMLType dv, non_null JMLType rv)
JMLValueToValueRelation#insert(JMLType, JMLType)
public JMLValueToValueMap removeDomainElement(JMLType dv)
JMLValueToValueRelation.removeFromDomain(org.jmlspecs.models.JMLType)
public JMLValueToValueMap compose(non_null JMLValueToValueMap othMap)
compose(JMLObjectToValueMap)
public JMLObjectToValueMap compose(non_null JMLObjectToValueMap othMap)
compose(JMLValueToValueMap)
public JMLValueToValueMap restrictedTo(non_null JMLValueSet dom)
rangeRestrictedTo(org.jmlspecs.models.JMLValueSet)
,
JMLValueToValueRelation.restrictDomainTo(org.jmlspecs.models.JMLValueSet)
public JMLValueToValueMap rangeRestrictedTo(non_null JMLValueSet rng)
restrictedTo(org.jmlspecs.models.JMLValueSet)
,
JMLValueToValueRelation.restrictRangeTo(org.jmlspecs.models.JMLValueSet)
public JMLValueToValueMap extendUnion(non_null JMLValueToValueMap othMap) throws IllegalStateException
IllegalStateException
clashReplaceUnion(org.jmlspecs.models.JMLValueToValueMap, org.jmlspecs.models.JMLType)
,
disjointUnion(org.jmlspecs.models.JMLValueToValueMap)
,
JMLValueToValueRelation.union(org.jmlspecs.models.JMLValueToValueRelation)
public JMLValueToValueMap clashReplaceUnion(JMLValueToValueMap othMap, JMLType errval) throws IllegalStateException
othMap
- the other map.errval
- the range element to use when clashes occur.
IllegalStateException
extendUnion(org.jmlspecs.models.JMLValueToValueMap)
,
disjointUnion(org.jmlspecs.models.JMLValueToValueMap)
,
JMLValueToValueRelation.union(org.jmlspecs.models.JMLValueToValueRelation)
public JMLValueToValueMap disjointUnion(non_null JMLValueToValueMap othMap) throws JMLMapException, IllegalStateException
othMap
- the other mapping
JMLMapException
- the ranges of this and othMap have elements
in common (i.e., when they interesect).
IllegalStateException
extendUnion(org.jmlspecs.models.JMLValueToValueMap)
,
clashReplaceUnion(org.jmlspecs.models.JMLValueToValueMap, org.jmlspecs.models.JMLType)
,
JMLValueToValueRelation.union(org.jmlspecs.models.JMLValueToValueRelation)
|
JML | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |