|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.util.AbstractCollection<E>
java.util.AbstractSet<T>
edu.rice.cs.plt.collect.AbstractPredicateSet<Pair<T1,T2>>
edu.rice.cs.plt.collect.AbstractRelation<T1,T2>
edu.rice.cs.plt.collect.AbstractInjectiveRelation<T1,T2>
public abstract class AbstractInjectiveRelation<T1,T2>
An abstract parent class for implementations of InjectiveRelation. Subclasses must provide
isStatic(), injectionMap(), firstSet(), and matchFirst(T1).
To support mutation, they must also override AbstractRelation.add(Object, Object)
and AbstractRelation.remove(Object, Object). For best performance, they may also override
AbstractCollection.clear().
| Nested Class Summary | |
|---|---|
protected class |
AbstractInjectiveRelation.InverseInjectiveRelation
An inverse of the enclosing relation. |
| Nested classes/interfaces inherited from class edu.rice.cs.plt.collect.AbstractRelation |
|---|
AbstractRelation.InverseRelation |
| Constructor Summary | |
|---|---|
AbstractInjectiveRelation()
|
|
| Method Summary | |
|---|---|
T1 |
antecedent(T2 second)
Returns injectionMap().get(first). |
boolean |
contains(java.lang.Object obj)
Checks for the given entry in functionMap(). |
boolean |
contains(T1 first,
T2 second)
Checks for the given entry in functionMap(). |
boolean |
containsSecond(T2 second)
Returns injectionMap().containsKey(second). |
abstract PredicateSet<T1> |
firstSet()
The set of firsts. |
boolean |
hasFixedSize()
Returns injectionMap().keySet().hasFixedSize(). |
abstract LambdaMap<T2,T1> |
injectionMap()
A map view of the relation, mapping seconds to firsts. |
FunctionalRelation<T2,T1> |
inverse()
Returns an AbstractInjectiveRelation.InverseInjectiveRelation. |
boolean |
isEmpty()
Returns injectionMap().isEmpty(). |
boolean |
isInfinite()
Returns injectionMap().keySet().isInfinite(). |
abstract boolean |
isStatic()
true if this iterable is unchanging. |
java.util.Iterator<Pair<T1,T2>> |
iterator()
Produces an iterator based on injectionMap().entrySet(). |
abstract PredicateSet<T2> |
matchFirst(T1 first)
The set of seconds corresponding to a specific first. |
PredicateSet<T1> |
matchSecond(T2 second)
Returns a set that queries and manipulates the mapping from second in injectionMap(). |
PredicateSet<T2> |
secondSet()
Returns injectionMap().keySet(). |
int |
size()
Returns injectionMap().size(). |
int |
size(int bound)
Returns injectionMap().keySet().size(bound). |
| Methods inherited from class edu.rice.cs.plt.collect.AbstractRelation |
|---|
add, add, containsFirst, excludeFirsts, excludeSeconds, remove, remove |
| Methods inherited from class java.util.AbstractSet |
|---|
equals, hashCode, removeAll |
| Methods inherited from class java.util.AbstractCollection |
|---|
addAll, clear, containsAll, retainAll, toArray, toArray, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface edu.rice.cs.plt.collect.InjectiveRelation |
|---|
add, add |
| Methods inherited from interface edu.rice.cs.plt.collect.Relation |
|---|
containsFirst, excludeFirsts, excludeSeconds, remove, remove |
| Methods inherited from interface java.util.Set |
|---|
addAll, clear, containsAll, equals, hashCode, removeAll, retainAll, toArray, toArray |
| Constructor Detail |
|---|
public AbstractInjectiveRelation()
| Method Detail |
|---|
public abstract boolean isStatic()
SizedIterabletrue if this iterable is unchanging. This implies that hasFixedSize() is true, and that
iterator() will always return the same (either == or equal() and immutable) elements
in the same order. ("Immutable" here means that equals() invocations are consistent over time -- if
two objects are equal, they will never become inequal, and vice versa.)
isStatic in interface SizedIterable<Pair<T1,T2>>isStatic in class AbstractRelation<T1,T2>public abstract LambdaMap<T2,T1> injectionMap()
InjectiveRelation
injectionMap in interface InjectiveRelation<T1,T2>public abstract PredicateSet<T1> firstSet()
Relation
firstSet in interface Relation<T1,T2>firstSet in class AbstractRelation<T1,T2>public abstract PredicateSet<T2> matchFirst(T1 first)
Relation
matchFirst in interface Relation<T1,T2>matchFirst in class AbstractRelation<T1,T2>public boolean isEmpty()
injectionMap().isEmpty().
isEmpty in interface SizedIterable<Pair<T1,T2>>isEmpty in interface java.util.Collection<Pair<T1,T2>>isEmpty in interface java.util.Set<Pair<T1,T2>>isEmpty in class AbstractPredicateSet<Pair<T1,T2>>public int size()
injectionMap().size().
size in interface SizedIterable<Pair<T1,T2>>size in interface java.util.Collection<Pair<T1,T2>>size in interface java.util.Set<Pair<T1,T2>>size in class AbstractPredicateSet<Pair<T1,T2>>public int size(int bound)
injectionMap().keySet().size(bound).
size in interface SizedIterable<Pair<T1,T2>>size in class AbstractPredicateSet<Pair<T1,T2>>bound - Maximum result. Assumed to be nonnegative.public boolean isInfinite()
injectionMap().keySet().isInfinite().
isInfinite in interface SizedIterable<Pair<T1,T2>>isInfinite in class AbstractRelation<T1,T2>public boolean hasFixedSize()
injectionMap().keySet().hasFixedSize().
hasFixedSize in interface SizedIterable<Pair<T1,T2>>hasFixedSize in class AbstractRelation<T1,T2>
public boolean contains(T1 first,
T2 second)
functionMap().
contains in interface Relation<T1,T2>contains in interface Predicate2<T1,T2>contains in class AbstractRelation<T1,T2>public boolean contains(java.lang.Object obj)
functionMap().
contains in interface Relation<T1,T2>contains in interface Predicate<java.lang.Object>contains in interface java.util.Collection<Pair<T1,T2>>contains in interface java.util.Set<Pair<T1,T2>>contains in class AbstractRelation<T1,T2>public java.util.Iterator<Pair<T1,T2>> iterator()
injectionMap().entrySet().
iterator in interface java.lang.Iterable<Pair<T1,T2>>iterator in interface java.util.Collection<Pair<T1,T2>>iterator in interface java.util.Set<Pair<T1,T2>>iterator in class AbstractRelation<T1,T2>public PredicateSet<T2> secondSet()
injectionMap().keySet().
secondSet in interface Relation<T1,T2>secondSet in class AbstractRelation<T1,T2>public boolean containsSecond(T2 second)
injectionMap().containsKey(second).
containsSecond in interface Relation<T1,T2>containsSecond in class AbstractRelation<T1,T2>public PredicateSet<T1> matchSecond(T2 second)
second in injectionMap().
matchSecond in interface InjectiveRelation<T1,T2>matchSecond in interface Relation<T1,T2>matchSecond in class AbstractRelation<T1,T2>public T1 antecedent(T2 second)
injectionMap().get(first).
antecedent in interface InjectiveRelation<T1,T2>public FunctionalRelation<T2,T1> inverse()
AbstractInjectiveRelation.InverseInjectiveRelation.
inverse in interface InjectiveRelation<T1,T2>inverse in interface Relation<T1,T2>inverse in class AbstractRelation<T1,T2>
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||