Class

mimir.algebra

Conditional

Related Doc: package algebra

Permalink

case class Conditional(condition: Expression, thenClause: Expression, elseClause: Expression) extends Expression with Product with Serializable

Representation of an If-Then-Else block. Note that this differs from SQL's use of CASE blocks. If-Then-Else is substantially easier to work with for recursive analyses.

For conversion between If-Then-Else and CASE semantics, see the methods

Annotations
@SerialVersionUID()
Linear Supertypes
Serializable, Serializable, Product, Equals, Expression, ExpressionConstructors, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Conditional
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. Expression
  7. ExpressionConstructors
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Conditional(condition: Expression, thenClause: Expression, elseClause: Expression)

    Permalink

Value Members

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

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

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

    Permalink
    Definition Classes
    AnyRef → Any
  4. def add(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  5. def and(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. def bitAnd(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  8. def bitOr(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  9. def children: List[Expression]

    Permalink

    Return all of the children of the current tree node

    Return all of the children of the current tree node

    Definition Classes
    ConditionalExpression
  10. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  11. val condition: Expression

    Permalink
  12. def div(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  13. val elseClause: Expression

    Permalink
  14. def eq(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  15. def eq(other: Double): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  16. def eq(other: Int): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  17. def eq(other: String): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  18. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  19. def finalize(): Unit

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

    Permalink
    Definition Classes
    AnyRef → Any
  21. def gt(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  22. def gt(other: Double): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  23. def gt(other: Long): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  24. def gte(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  25. def gte(other: Double): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  26. def gte(other: Long): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  27. def in(other: Seq[Expression]): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  28. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  29. def isNull: Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  30. def lt(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  31. def lt(other: Double): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  32. def lt(other: Long): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  33. def lte(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  34. def lte(other: Double): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  35. def lte(other: Long): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  36. def mult(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  37. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  38. def neq(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  39. def neq(other: Double): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  40. def neq(other: Int): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  41. def neq(other: String): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  42. def not: Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  43. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  44. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  45. def or(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  46. def rebuild(c: Seq[Expression]): Conditional

    Permalink

    Return a new instance of the same object, but with the children replaced with the provided list.

    Return a new instance of the same object, but with the children replaced with the provided list. The list must be of the same size returned by children. This is mostly to facilitate recur, below

    Definition Classes
    ConditionalExpression
  47. def recur(f: (Expression) ⇒ Expression): Expression

    Permalink

    Perform a recursive rewrite.

    Perform a recursive rewrite. The following pattern is pretty common throughout Mimir: def replaceFooWithBar(e:Expression): Expression = e match { case Foo(a, b, c, ...) => Bar(a, b, c, ...) case _ => e.recur(replaceFooWithBar(_)) } Note how specific rewrites are applied to specific patterns in the tree, and recur is used to ignore/descend through every other class of object

    Definition Classes
    Expression
  48. def shiftLeft(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  49. def shiftRight(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  50. def sub(other: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  51. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  52. val thenClause: Expression

    Permalink
  53. def thenElse(thenClause: Expression)(elseClause: Expression): Expression

    Permalink
    Definition Classes
    ExpressionConstructors
  54. def toExpression: Expression

    Permalink

    Return this

    Return this

    Definition Classes
    ExpressionExpressionConstructors
  55. def toString(): String

    Permalink
    Definition Classes
    Conditional → AnyRef → Any
  56. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from Expression

Inherited from ExpressionConstructors

Inherited from AnyRef

Inherited from Any

Ungrouped