|
||||||||||
| PREV NEXT | FRAMES NO FRAMES | |||||||||
| Packages that use Relation | |
|---|---|
| edu.rice.cs.plt.collect | Contains general-purpose extensions to and variations on the java.util collections
framework. |
| Uses of Relation in edu.rice.cs.plt.collect |
|---|
| Subinterfaces of Relation in edu.rice.cs.plt.collect | |
|---|---|
interface |
FunctionalRelation<T1,T2>
A functional relation: each first (of type T1) corresponds to at most one second
(of type T2). |
interface |
InjectiveRelation<T1,T2>
An injective relation: each second (of type T2) corresponds to at most one first
(of type T1). |
interface |
OneToOneRelation<T1,T2>
A injective functional relation: each first (of type T1) corresponds to at most one
second (of type T2), and vice versa. |
| Classes in edu.rice.cs.plt.collect that implement Relation | |
|---|---|
class |
AbstractFunctionalRelation<T1,T2>
An abstract parent class for implementations of FunctionalRelation. |
protected class |
AbstractFunctionalRelation.InverseFunctionalRelation
An inverse of the enclosing relation. |
class |
AbstractInjectiveRelation<T1,T2>
An abstract parent class for implementations of InjectiveRelation. |
protected class |
AbstractInjectiveRelation.InverseInjectiveRelation
An inverse of the enclosing relation. |
class |
AbstractOneToOneRelation<T1,T2>
An abstract parent class for implementations of OneToOneRelation. |
protected class |
AbstractOneToOneRelation.InverseOneToOneRelation
An inverse of the enclosing relation. |
class |
AbstractRelation<T1,T2>
An abstract parent class for implementations of Relation. |
protected class |
AbstractRelation.InverseRelation
An inverse of the enclosing relation, defined in terms of Pair.inverse(). |
class |
CartesianRelation<T1,T2>
A Relation representing the cartesian (or cross) product of two sets. |
class |
ComplementRelation<T1,T2>
The complement of a relation excluded in a domain domain (alternatively,
domain - excluded), constructed lazily and updated dynamically. |
class |
ComposedRelation<T1,T2,T3>
The transitive composition of two relations, lazily constructed and dynamically-updated. |
class |
DelegatingRelation<T1,T2>
A relation that delegates all operations to a wrapped relation. |
class |
EmptyRelation<T1,T2>
An immutable, empty, one-to-one relation. |
class |
FilteredRelation<T1,T2>
A relation that contains only those pairs contained by both the given relation and the given predicate. |
class |
ImmutableRelation<T1,T2>
Wraps a relation in an immutable interface. |
class |
IndexedFunctionalRelation<T1,T2>
An implementation of the FunctionalRelation interface based on indexing maps. |
class |
IndexedInjectiveRelation<T1,T2>
A hash code-based implementation of the InjectiveRelation interface. |
class |
IndexedOneToOneRelation<T1,T2>
A implementation of OneToOneRelation based on indexing maps. |
class |
IndexedRelation<T1,T2>
An implementation of the Relation interface based on indexing maps. |
class |
IntersectionRelation<T1,T2>
The intersection of two relations, lazily constructed and updated dynamically. |
class |
SingletonRelation<T1,T2>
An immutable Relation containing a single pair. |
class |
UnindexedRelation<T1,T2>
A mutable relation implemented by wrapping a set of pairs. |
class |
UnionRelation<T1,T2>
The union of two relations, lazily constructed and updated dynamically. |
| Fields in edu.rice.cs.plt.collect declared as Relation | |
|---|---|
protected Relation<T1,T2> |
DelegatingRelation._delegate
|
protected Relation<T1,T2> |
FilteredRelation._rel
|
| Methods in edu.rice.cs.plt.collect that return Relation | ||
|---|---|---|
static
|
CollectUtil.complement(Relation<T1,T2> domain,
Relation<? super T1,? super T2> excluded)
Produce the complement of a relation in a domain, or, equivalently, the difference of two relations. |
|
static
|
CollectUtil.complement(Relation<T1,T2> domain,
T1 first,
T2 second)
Produce the complement of a singleton in a domain relation, or, equivalently, a relation with a certain entry removed. |
|
static
|
CollectUtil.compose(Relation<T1,T2> left,
Relation<T2,T3> right)
Produce a lazy transitive composition of two relations. |
|
static
|
CollectUtil.conditionalSnapshot(Relation<T1,T2> rel,
int threshold)
Produce a snapshot of set if its composite size is greater than the given threshold. |
|
static
|
CollectUtil.cross(Set<? extends T1> left,
Set<? extends T2> right)
Produce the lazy cartesian (or cross) product of two sets. |
|
Relation<T2,T3> |
Relation3.excludeFirsts()
The set of (second, third) pairs for which there exists a (first, second, third) triple in the relation. |
|
Relation<T1,T3> |
Relation3.excludeSeconds()
The set of (first, third) pairs for which there exists a (first, second, third) triple in the relation. |
|
Relation<T1,T2> |
Relation3.excludeThirds()
The set of (first, second) pairs for which there exists a (first, second, third) triple in the relation. |
|
static
|
CollectUtil.filter(Relation<T1,T2> relation,
Predicate2<? super T1,? super T2> pred)
Lazily filter the given relation. |
|
static
|
CollectUtil.intersection(Relation<T1,T2> r1,
Relation<T1,T2> r2)
Produce a lazy intersection of two relations. |
|
Relation<T2,T1> |
AbstractFunctionalRelation.inverse()
Returns an AbstractFunctionalRelation.InverseFunctionalRelation. |
|
Relation<T1,T2> |
AbstractInjectiveRelation.InverseInjectiveRelation.inverse()
|
|
Relation<T2,T1> |
AbstractRelation.inverse()
Returns an AbstractRelation.InverseRelation. |
|
Relation<T1,T2> |
AbstractRelation.InverseRelation.inverse()
|
|
Relation<T2,T1> |
ImmutableRelation.inverse()
|
|
Relation<T2,T1> |
Relation.inverse()
Produce the inverse of the relation, derived by swapping the elements of each pair. |
|
Relation<T2,T1> |
FunctionalRelation.inverse()
Produce the inverse of the relation, derived by swapping the elements of each pair. |
|
Relation<T2,T1> |
DelegatingRelation.inverse()
|
|
static
|
CollectUtil.makeRelation(Iterable<? extends Pair<? extends T1,? extends T2>> pairs)
Create an immutable Relation based on the given elements. |
|
Relation<T2,T3> |
Relation3.matchFirst(T1 first)
The set of (second, third) pairs corresponding to a specific first. |
|
Relation<T1,T3> |
Relation3.matchSecond(T2 second)
The set of (first, third) pairs corresponding to a specific second. |
|
Relation<T1,T2> |
Relation3.matchThird(T3 third)
The set of (first, second) pairs corresponding to a specific third. |
|
static
|
CollectUtil.snapshot(Relation<? extends T1,? extends T2> relation)
Alias for CollectUtil.makeRelation(java.lang.Iterable extends edu.rice.cs.plt.tuple.Pair extends T1, ? extends T2>>). |
|
static
|
CollectUtil.union(Relation<T1,T2> r1,
Relation<T1,T2> r2)
Produce a lazy union of two relations. |
|
static
|
CollectUtil.union(Relation<T1,T2> rel,
T1 first,
T2 second)
Produce a lazy union of a relation with an additional singleton entry. |
|
| Methods in edu.rice.cs.plt.collect that return types with arguments of type Relation | |
|---|---|
LambdaMap<T1,Relation<T2,T3>> |
Relation3.firstMap()
A map view of the relation, mapping firsts to sets of (second, third) pairs. |
LambdaMap<T2,Relation<T1,T3>> |
Relation3.secondMap()
A map view of the relation, mapping seconds to sets of (first, third) pairs. |
LambdaMap<T3,Relation<T1,T2>> |
Relation3.thirdMap()
A map view of the relation, mapping thirds to sets of (first, second) pairs. |
| Methods in edu.rice.cs.plt.collect with parameters of type Relation | ||
|---|---|---|
static
|
CollectUtil.complement(Relation<T1,T2> domain,
Relation<? super T1,? super T2> excluded)
Produce the complement of a relation in a domain, or, equivalently, the difference of two relations. |
|
static
|
CollectUtil.complement(Relation<T1,T2> domain,
Relation<? super T1,? super T2> excluded)
Produce the complement of a relation in a domain, or, equivalently, the difference of two relations. |
|
static
|
CollectUtil.complement(Relation<T1,T2> domain,
T1 first,
T2 second)
Produce the complement of a singleton in a domain relation, or, equivalently, a relation with a certain entry removed. |
|
static
|
CollectUtil.compose(Relation<T1,T2> left,
Relation<T2,T3> right)
Produce a lazy transitive composition of two relations. |
|
static
|
CollectUtil.compose(Relation<T1,T2> left,
Relation<T2,T3> right)
Produce a lazy transitive composition of two relations. |
|
static
|
CollectUtil.conditionalSnapshot(Relation<T1,T2> rel,
int threshold)
Produce a snapshot of set if its composite size is greater than the given threshold. |
|
static
|
CollectUtil.filter(Relation<T1,T2> relation,
Predicate2<? super T1,? super T2> pred)
Lazily filter the given relation. |
|
static
|
CollectUtil.immutable(Relation<T1,T2> r)
Wrap a relation in an immutable wrapper. |
|
static
|
CollectUtil.intersection(Relation<T1,T2> r1,
Relation<T1,T2> r2)
Produce a lazy intersection of two relations. |
|
static
|
CollectUtil.intersection(Relation<T1,T2> r1,
Relation<T1,T2> r2)
Produce a lazy intersection of two relations. |
|
static
|
ImmutableRelation.make(Relation<T1,T2> relation)
Call the constructor (allows T1 and T2 to be inferred). |
|
static
|
CollectUtil.snapshot(Relation<? extends T1,? extends T2> relation)
Alias for CollectUtil.makeRelation(java.lang.Iterable extends edu.rice.cs.plt.tuple.Pair extends T1, ? extends T2>>). |
|
static
|
CollectUtil.union(Relation<T1,T2> r1,
Relation<T1,T2> r2)
Produce a lazy union of two relations. |
|
static
|
CollectUtil.union(Relation<T1,T2> r1,
Relation<T1,T2> r2)
Produce a lazy union of two relations. |
|
static
|
CollectUtil.union(Relation<T1,T2> rel,
T1 first,
T2 second)
Produce a lazy union of a relation with an additional singleton entry. |
|
| Constructors in edu.rice.cs.plt.collect with parameters of type Relation | |
|---|---|
ComplementRelation(Relation<T1,T2> domain,
Relation<? super T1,? super T2> excluded)
|
|
ComplementRelation(Relation<T1,T2> domain,
Relation<? super T1,? super T2> excluded)
|
|
ComposedRelation(Relation<T1,T2> rel1,
Relation<T2,T3> rel2)
|
|
ComposedRelation(Relation<T1,T2> rel1,
Relation<T2,T3> rel2)
|
|
DelegatingRelation(Relation<T1,T2> delegate)
|
|
FilteredRelation(Relation<T1,T2> relation,
Predicate2<? super T1,? super T2> predicate)
|
|
ImmutableRelation(Relation<T1,T2> relation)
|
|
IntersectionRelation(Relation<? super T1,? super T2> rel1,
Relation<T1,T2> rel2)
For best performance of FilteredRelation.iterator(), AbstractPredicateSet.size(), and IntersectionRelation.isEmpty(), set2
should be the smaller of the two sets (this is not handled automatically because calculating
sizes may be expensive). |
|
IntersectionRelation(Relation<? super T1,? super T2> rel1,
Relation<T1,T2> rel2)
For best performance of FilteredRelation.iterator(), AbstractPredicateSet.size(), and IntersectionRelation.isEmpty(), set2
should be the smaller of the two sets (this is not handled automatically because calculating
sizes may be expensive). |
|
UnionRelation(Relation<T1,T2> rel1,
Relation<T1,T2> rel2)
For best performance of UnionRelation.size(), rel2 should be the smaller of the two
relations (this is not handled automatically because calculating sizes may be expensive). |
|
UnionRelation(Relation<T1,T2> rel1,
Relation<T1,T2> rel2)
For best performance of UnionRelation.size(), rel2 should be the smaller of the two
relations (this is not handled automatically because calculating sizes may be expensive). |
|
|
||||||||||
| PREV NEXT | FRAMES NO FRAMES | |||||||||