|
|||||||||
| 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 ObjectRelation 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 | ||||||||