Object

de.fosd.typechef.conditional

ConditionalLib

Related Doc: package conditional

Permalink

object ConditionalLib

maintains a map a name may be mapped to alternative entries with different feature expressions

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. ConditionalLib
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

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. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def combine[T](r: Conditional[Conditional[T]]): Conditional[T]

    Permalink

    helper function to collapse double conditionals Cond[Cond[T]] to Cond[T]

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

    Permalink
    Definition Classes
    AnyRef
  8. def equals[T](a: Conditional[T], b: Conditional[T]): Boolean

    Permalink

    determines if two conditional values have equal value in all configurations

  9. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  10. def equalsOp[T](a: Conditional[T], b: Conditional[T]): Boolean

    Permalink

    alternative implementation with more satisifiability checks and potentially fewer comparisons

  11. def explode[A, B](a: Conditional[A], b: Conditional[B]): Conditional[(A, B)]

    Permalink

    combines entries from two conditional values to a conditional pair of values

    combines entries from two conditional values to a conditional pair of values

    this explodes variability and may repeat values as needed

  12. def explodeOptList[T](l: List[Opt[T]]): Conditional[List[T]]

    Permalink

    explodes a list of optional entries to choice of lists.

    explodes a list of optional entries to choice of lists.

    use carefully, can be very expensive and can explode to huge choices

  13. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. def flatten[T](optList: List[Opt[Conditional[T]]]): List[Opt[T]]

    Permalink

    helper function to flatten optlists of conditionals into optlists without conditionals

  15. final def getClass(): Class[_]

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

    Permalink
    Definition Classes
    AnyRef → Any
  17. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  18. def lastEntry[T](list: List[Opt[T]]): Conditional[Option[T]]

    Permalink

    returns the last element (which may differ in different contexts) or None if the list is empty

  19. def mapCombination[A, B, C](a: Conditional[A], b: Conditional[B], f: (A, B) ⇒ C): Conditional[C]

    Permalink

    convenience function to map a function over all possible combinations of two conditional values

    convenience function to map a function over all possible combinations of two conditional values

    uses a common flatmap-map combination

  20. def mapCombinationOp[A, B, C](a: Conditional[A], b: Conditional[B], f: (A, B) ⇒ C): Conditional[C]

    Permalink

    same as mapCombination, but additionally avoids (some) infeasible computations.

    same as mapCombination, but additionally avoids (some) infeasible computations.

    since this involves satisifability checks, it may be more expensive than mapCombination but fewer computations may be performed, since infeasible combinations are skipped

  21. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  22. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  24. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  25. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  26. def vexplode[A, B](ctx: FeatureExpr, a: Conditional[A], b: Conditional[B]): Conditional[(A, B)]

    Permalink
  27. def vfoldLeft[A, B](list: List[Opt[A]], init: Conditional[B], featureExpr: FeatureExpr, op: (FeatureExpr, B, A) ⇒ Conditional[B]): Conditional[B]

    Permalink

    conditional fold, see vfoldRight

  28. def vfoldRight[A, B](list: List[Opt[A]], init: Conditional[B], ctx: FeatureExpr, op: (FeatureExpr, A, B) ⇒ Conditional[B]): Conditional[B]

    Permalink

    conditional implementation of a fold operation on lists with optional entries.

    conditional implementation of a fold operation on lists with optional entries.

    on optional elements in the list the computation is split (if necessary) and the result is computed separately under all possible contexts

    in contrast to foldRight, this version may introduce variation in a single implementation and propagates a variability context

    list

    a list of conditional values

    init

    an initial result value (conditional)

    op

    a function performing the operation

    returns

    the result of the fold

  29. def vfoldRightR[A, B](list: List[Opt[A]], init: Conditional[B], op: (A, B) ⇒ Conditional[B]): Conditional[B]

    Permalink

    conditional implementation of a fold operation on lists with optional entries.

    conditional implementation of a fold operation on lists with optional entries.

    on optional elements in the list the computation is split (if necessary) and the result is computed separately under all possible contexts

    in contrast to foldRight, this version may introduce variation in a single implementation

    list

    a list of conditional values

    init

    an initial result value (conditional)

    op

    a function performing the operation

    returns

    the result of the fold

  30. def vfoldRightS[A, B](list: List[Opt[A]], init: Conditional[B], op: (A, B) ⇒ B): Conditional[B]

    Permalink

    conditional implementation of a fold operation on lists with optional entries.

    conditional implementation of a fold operation on lists with optional entries.

    on optional elements in the list the computation is split (if necessary) and the result is computed separately under all possible contexts

    list

    a list of conditional values

    init

    an initial result value (conditional)

    op

    a function performing the operation

    returns

    the result of the fold

  31. def vmapCombination[A, B, C](a: Conditional[A], b: Conditional[B], ctx: FeatureExpr, f: (FeatureExpr, A, B) ⇒ C): Conditional[C]

    Permalink

    same as mapCombination, but additionally preserves a context during the computation

  32. def vmapCombinationOp[A, B, C](a: Conditional[A], b: Conditional[B], ctx: FeatureExpr, f: (FeatureExpr, A, B) ⇒ C): Conditional[C]

    Permalink

    same as vmapCombination, but additionally avoids (some) infeasible computations.

    same as vmapCombination, but additionally avoids (some) infeasible computations.

    since this involves satisifability checks, it may be more expensive than vmapCombination but fewer computations may be performed, since infeasible combinations are skipped

  33. final def wait(): Unit

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

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

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

Deprecated Value Members

  1. def compare[T, R](a: Conditional[T], b: Conditional[T], f: (T, T) ⇒ R): Conditional[R]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 0.4.0) misnamed, use mapCombinedOp instead

  2. def conditionalFoldLeftFR: (List[Opt[Nothing]], Conditional[Nothing], FeatureExpr, (FeatureExpr, Nothing, Nothing) ⇒ Conditional[Nothing]) ⇒ Conditional[Nothing]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 0.4.0) renamed to vfoldRight for consistency

  3. def conditionalFoldRight: (List[Opt[Nothing]], Conditional[Nothing], (Nothing, Nothing) ⇒ Nothing) ⇒ Conditional[Nothing]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 0.4.0) renamed to vfoldRightS for consistency

  4. def conditionalFoldRightFR: (List[Opt[Nothing]], Conditional[Nothing], FeatureExpr, (FeatureExpr, Nothing, Nothing) ⇒ Conditional[Nothing]) ⇒ Conditional[Nothing]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 0.4.0) renamed to vfoldRight for consistency

  5. def conditionalFoldRightR: (List[Opt[Nothing]], Conditional[Nothing], (Nothing, Nothing) ⇒ Conditional[Nothing]) ⇒ Conditional[Nothing]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 0.4.0) renamed to vfoldRightR for consistency

  6. def findSubtree[T](ctx: FeatureExpr, value: Conditional[T]): Conditional[T]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 0.4.0) use value.simplify(ctx) instead

  7. def insert[T](t: Conditional[T], ctx: FeatureExpr, f: FeatureExpr, e: T): Conditional[T]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 0.4.0) removed due to unclear specification

  8. def isTrue(t: Conditional[Boolean]): FeatureExpr

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 0.4.0) misnamed, use value.when(identity) instead

  9. def items[T](t: Conditional[T], ctx: FeatureExpr = FeatureExprFactory.True): List[(FeatureExpr, T)]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 0.4.0) use value.toList instead

  10. def leaves[T](t: Conditional[T]): List[T]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 0.4.0) use value.toList().map(_._1) instead

  11. def mapCombinationF: (Conditional[Nothing], Conditional[Nothing], FeatureExpr, (FeatureExpr, Nothing, Nothing) ⇒ Nothing) ⇒ Conditional[Nothing]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 0.4.0) renamed to vmapCombination for consistency

  12. def toList[T](c: Conditional[T]): List[(FeatureExpr, T)]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 0.4.0) only for backward compatibility

  13. def toOptList[T](c: Conditional[T]): List[Opt[T]]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 0.4.0) only for backward compatibility

Inherited from AnyRef

Inherited from Any

Ungrouped