org.bitbucket.inkytonik.kiama.relation

RelationLike

trait RelationLike[T, U, Repr[_, _]] extends AnyRef

A template trait for Relation-like types. T and U are the domain and range types of the relation, respectively. Repr is the type constructor for the concrete representation of a particular relation type.

Source
RelationLike.scala
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. RelationLike
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def companion: RelationFactory[Repr]

    A companion object that provides factory methods for this kind of relation.

  2. abstract def graph: Vector[(T, U)]

    The graph of this relation.

Concrete Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. def apply(t: T): Vector[U]

    Apply this relation (same as image).

  7. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  8. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  9. def collect[V, W](f: ==>[(T, U), (V, W)]): Repr[V, W]

    Build a new relation by collecting pairs produced by the partial function f wherever it is defined on pairs of this relation.

  10. def compose[S](st: RelationLike[S, T, Repr]): Repr[S, U]

    Compose this relation with st.

  11. def containsInDomain(t: T): Boolean

    Does the domain of this relation contain the value t?

  12. def containsInRange(u: U): Boolean

    Does the range of this relation contain the value u?

  13. lazy val domain: Vector[T]

    The domain of this relation.

  14. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  15. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  16. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  17. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  18. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  19. def image(t: T): Vector[U]

    The image of a value of the relation's domain is a set of the values in the range that are related to that domain value.

  20. lazy val index: Repr[U, Int]

    A relation that maps each element of the range to its position (starting counting at zero).

  21. lazy val inverse: Repr[U, T]

    Invert this relation.

    Invert this relation. In other words, if (t,u) is in the relation, then (u,t) is in the inverted relation.

  22. lazy val isEmpty: Boolean

    Is this relation empty (i.

    Is this relation empty (i.e., contains no pairs)?

  23. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  24. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  25. final def notify(): Unit

    Definition Classes
    AnyRef
  26. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  27. object pair

    An auxiliary extractor for this relation that matches pairs.

  28. def preImage(u: U): Vector[T]

    The preImage of a value of the relation's range is a set of the values in the domain that are related to that range value.

  29. lazy val preIndex: Repr[T, Int]

    A relation that maps each element of the domain to its position starting at zero.

  30. lazy val projDomain: Repr[T, Vector[U]]

    Domain projection, i.

    Domain projection, i.e., form a relation that relates each value in the domain to all of the related values in the range.

  31. lazy val projRange: Repr[U, Vector[T]]

    Range projection, i.

    Range projection, i.e., form a relation that relates each value in the range to all of the related values in the domain.

  32. lazy val range: Vector[U]

    The range of this relation.

  33. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  34. def toString(): String

    Definition Classes
    AnyRef → Any
  35. def unapply(t: T): Option[U]

    A relation can be used as an extractor that matches if and only if the matched value t has a unique image in the relation.

    A relation can be used as an extractor that matches if and only if the matched value t has a unique image in the relation. The unique image value is returned for a successful match.

  36. def unapplySeq(t: T): Option[Vector[U]]

    A relation can be used as an extractor that returns the image for a given domain value t.

    A relation can be used as an extractor that returns the image for a given domain value t. Fails if t is not in the domain.

  37. def union(r: RelationLike[T, U, Repr]): Repr[T, U]

    Union this relation with r.

  38. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  39. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  40. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  41. def withDomain(t: T): Repr[T, U]

    Return the sub-relation of this relation that contains just those pairs that have t as their domain element.

  42. def withRange(u: U): Repr[T, U]

    Return the sub-relation of this relation that contains just those pairs that have u as their range element.

Inherited from AnyRef

Inherited from Any

Ungrouped