Uses of Interface
edu.rice.cs.plt.collect.Relation

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
<T1,T2> Relation<T1,T2>
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
<T1,T2> Relation<T1,T2>
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
<T1,T2,T3> Relation<T1,T3>
CollectUtil.compose(Relation<T1,T2> left, Relation<T2,T3> right)
          Produce a lazy transitive composition of two relations.
static
<T1,T2> Relation<T1,T2>
CollectUtil.conditionalSnapshot(Relation<T1,T2> rel, int threshold)
          Produce a snapshot of set if its composite size is greater than the given threshold.
static
<T1,T2> Relation<T1,T2>
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
<T1,T2> Relation<T1,T2>
CollectUtil.filter(Relation<T1,T2> relation, Predicate2<? super T1,? super T2> pred)
          Lazily filter the given relation.
static
<T1,T2> Relation<T1,T2>
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
<T1,T2> Relation<T1,T2>
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
<T1,T2> Relation<T1,T2>
CollectUtil.snapshot(Relation<? extends T1,? extends T2> relation)
          Alias for CollectUtil.makeRelation(java.lang.Iterable>).
static
<T1,T2> Relation<T1,T2>
CollectUtil.union(Relation<T1,T2> r1, Relation<T1,T2> r2)
          Produce a lazy union of two relations.
static
<T1,T2> Relation<T1,T2>
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
<T1,T2> Relation<T1,T2>
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
<T1,T2> Relation<T1,T2>
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
<T1,T2> Relation<T1,T2>
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
<T1,T2,T3> Relation<T1,T3>
CollectUtil.compose(Relation<T1,T2> left, Relation<T2,T3> right)
          Produce a lazy transitive composition of two relations.
static
<T1,T2,T3> Relation<T1,T3>
CollectUtil.compose(Relation<T1,T2> left, Relation<T2,T3> right)
          Produce a lazy transitive composition of two relations.
static
<T1,T2> Relation<T1,T2>
CollectUtil.conditionalSnapshot(Relation<T1,T2> rel, int threshold)
          Produce a snapshot of set if its composite size is greater than the given threshold.
static
<T1,T2> Relation<T1,T2>
CollectUtil.filter(Relation<T1,T2> relation, Predicate2<? super T1,? super T2> pred)
          Lazily filter the given relation.
static
<T1,T2> ImmutableRelation<T1,T2>
CollectUtil.immutable(Relation<T1,T2> r)
          Wrap a relation in an immutable wrapper.
static
<T1,T2> Relation<T1,T2>
CollectUtil.intersection(Relation<T1,T2> r1, Relation<T1,T2> r2)
          Produce a lazy intersection of two relations.
static
<T1,T2> Relation<T1,T2>
CollectUtil.intersection(Relation<T1,T2> r1, Relation<T1,T2> r2)
          Produce a lazy intersection of two relations.
static
<T1,T2> ImmutableRelation<T1,T2>
ImmutableRelation.make(Relation<T1,T2> relation)
          Call the constructor (allows T1 and T2 to be inferred).
static
<T1,T2> Relation<T1,T2>
CollectUtil.snapshot(Relation<? extends T1,? extends T2> relation)
          Alias for CollectUtil.makeRelation(java.lang.Iterable>).
static
<T1,T2> Relation<T1,T2>
CollectUtil.union(Relation<T1,T2> r1, Relation<T1,T2> r2)
          Produce a lazy union of two relations.
static
<T1,T2> Relation<T1,T2>
CollectUtil.union(Relation<T1,T2> r1, Relation<T1,T2> r2)
          Produce a lazy union of two relations.
static
<T1,T2> Relation<T1,T2>
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).