|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Relation
Relation
is a mathematical relation, accepting one to many
and many to one mappings.
It is similar to harpoon.Util.Collections.MultiMap but it is intended to be simpler and better tailored for the implementation of the Pointer Analysis algorithm.
Method Summary | |
---|---|
boolean |
add(Object key,
Object value)
Adds the pair <key, value> to the relation. |
boolean |
addAll(Object key,
Collection values)
Adds a relation from key to each element of the set
values . |
Object |
clone()
Clones this relation. |
boolean |
contains(Object key,
Object value)
Checks the existence of the relation <key,value> . |
boolean |
containsKey(Object key)
Checks the existence of the key key in this relation. |
Relation |
convert(Map map,
Relation result)
Convert this relation through the mapping
map . |
boolean |
equals(Object o)
Checks the equality of two relations |
void |
forAllEntries(RelationEntryVisitor visitor)
Visits all the entries <key,value> of
this relation and calls visitor.visit
on each of them. |
Set |
getValues(Object key)
Returns the image of key through this relation. |
boolean |
isEmpty()
Tests if this relation is empty or not. |
Set |
keys()
Returns all the keys appearing in this relation. |
void |
remove(Object key,
Object value)
Removes the relation between key and
value . |
void |
removeAll(Object key,
Collection values)
Removes the relation between key and
any element from values . |
void |
removeKey(Object key)
Removes all the relations attached to key . |
void |
removeKeys(PredicateWrapper predicate)
Removes all the keys that satisfy predicate.check() . |
void |
removeObjects(PredicateWrapper predicate)
Removes all the relations involving at least one object that satisfy predicate.check() . |
void |
removeValues(PredicateWrapper predicate)
Removes all the values that satisfy predicate.check() . |
Relation |
revert(Relation result)
Revert this relation and store the result into
the relation result . |
Relation |
select(Collection selected_keys)
Returns the subrelation of this relation that contains only the keys that appear in selected_keys . |
boolean |
union(Relation rel)
Combines this relation with relation
rel . |
Set |
values()
Returns all the values appearing in this relation. |
Method Detail |
---|
boolean add(Object key, Object value)
<key, value>
to the relation.
Returns true
if the new relation is bigger.
boolean addAll(Object key, Collection values)
key
to each element of the set
values
. values
should not contain
duplicated elements.
Returns true
if the new relation is bigger.
void remove(Object key, Object value)
key
and
value
.
void removeAll(Object key, Collection values)
key
and
any element from values
.
void removeKey(Object key)
key
.
void removeKeys(PredicateWrapper predicate)
predicate.check()
.
void removeValues(PredicateWrapper predicate)
predicate.check()
.
void removeObjects(PredicateWrapper predicate)
predicate.check()
.
boolean contains(Object key, Object value)
<key,value>
.
boolean containsKey(Object key)
key
key in this relation.
boolean isEmpty()
Set getValues(Object key)
key
through this relation.
The returned collection is guarranted not to contain duplicates.
Can return null
if no value is attached to key.
If the result is non-null, additions and removals on the returned
collection take effect on the relation.
Set keys()
Set values()
boolean union(Relation rel)
this
relation with relation
rel
. A null
parameter is considered
to be an empty relation.
true
iff this
relation has
changed.boolean equals(Object o)
equals
in class Object
Relation select(Collection selected_keys)
selected_keys
.
void forAllEntries(RelationEntryVisitor visitor)
<key,value>
of
this
relation and calls visitor.visit
on each of them.
Object clone()
Relation revert(Relation result)
this
relation and store the result into
the relation result
. <a,b> appears in the
reverse relation iff <b,a> appears in this
relation. Returns the new relation (ie,
result
).
Relation convert(Map map, Relation result)
this
relation through the mapping
map
. The converted mapping contains all pairs
(a,b)
such that there exists c,d
such that (c,d)
appears in this
mapping, and map maps c to a and d to b. If an object is not
mapped to anything by map
, it will be mapped to
itself by default. The result is stored in
result
. Returns the converted mapping (ie,
result).
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |