de.fosd.typechef.typesystem.linker

EmptyInterface

object EmptyInterface extends CInterface

Linear Supertypes
CInterface, Serializable, Serializable, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. EmptyInterface
  2. CInterface
  3. Serializable
  4. Serializable
  5. Product
  6. Equals
  7. AnyRef
  8. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

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 and(f: FeatureExpr): CInterface

    Definition Classes
    CInterface
  7. def andFM(feature: FeatureExpr): CInterface

    Definition Classes
    CInterface
  8. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  9. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. def compatibleWithGlobalFeatureModel(globalFM: FeatureModel): Boolean

    Definition Classes
    CInterface
  11. def compatibleWithGlobalFeatureModel(globalFM: FeatureExpr): Boolean

    we can use a global feature model to ensure that composing modules reflects the intended dependencies.

    we can use a global feature model to ensure that composing modules reflects the intended dependencies. This way, we can detect that we do not accidentally restrict the product line more than intended by the domain expert who designed the global feature model. We simply compare the feature model of the linker result with a global model.

    Definition Classes
    CInterface
  12. def conditional(condition: FeatureExpr): CInterface

    turns the interface into a conditional interface (to emulate conditional linking/composition of interfaces).

    turns the interface into a conditional interface (to emulate conditional linking/composition of interfaces).

    a.conditional(f) link b.conditional(g)

    is conceptually equivalent to

    if (f and g) a link b else if (f and not g) a else if (not f and g) b else empty

    see text on conditional composition

    Definition Classes
    CInterface
  13. def debug_join(that: CInterface): CInterface

    links without proper checks and packing.

    links without proper checks and packing. only for debugging purposes *

    Definition Classes
    CInterface
  14. val declaredFeatures: Set[String]

    Definition Classes
    CInterface
  15. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  16. val exports: Seq[CSignature]

    Definition Classes
    CInterface
  17. lazy val exportsByName: Map[String, Seq[CSignature]]

    Definition Classes
    CInterface
  18. val featureModel: FeatureExpr

    Definition Classes
    CInterface
  19. def finalize(): Unit

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

    Definition Classes
    AnyRef → Any
  21. def getConflicts(that: CInterface): List[(String, FeatureExpr, Seq[CSignature])]

    determines conflicts and returns corresponding name, feature expression and involved signatures

    determines conflicts and returns corresponding name, feature expression and involved signatures

    conflicts are: (a) both modules export the same name in the same configuration (b) both modules import the same name with different types in the same configuration (c) one module imports a name the other modules exports in the same configuration but with a different type

    returns any conflict (does not call a sat solver), even if the conditions are mutually exclusive. the condition is true if there is NO conflict (it describes configurations without conflict)

    public only for debugging purposes

    Definition Classes
    CInterface
  22. lazy val getInterfaceFeatures: Set[String]

    Definition Classes
    CInterface
  23. val importedFeatures: Set[String]

    Definition Classes
    CInterface
  24. val imports: Seq[CSignature]

    Definition Classes
    CInterface
  25. lazy val importsByName: Map[String, Seq[CSignature]]

    Definition Classes
    CInterface
  26. def isCompatibleTo(thatSeq: Seq[CInterface]): Boolean

    Definition Classes
    CInterface
  27. def isCompatibleTo(that: CInterface): Boolean

    linking two well-formed models always yields a wellformed module, but it makes only sense if the resulting feature model is not void.

    linking two well-formed models always yields a wellformed module, but it makes only sense if the resulting feature model is not void. hence compatibility is checked by checking the resulting feature model

    Definition Classes
    CInterface
  28. def isComplete(strictness: Strictness = LINK_STRICT): Boolean

    A variability-aware module is complete if it has no remaining imports with satisfiable conditions and if the feature model is satisfiable (i.

    A variability-aware module is complete if it has no remaining imports with satisfiable conditions and if the feature model is satisfiable (i.e., it allows to derive at least one variant). A complete and fully-configured module is the desired end result when configuring a product line for a specific use case.

    Definition Classes
    CInterface
  29. def isFullyConfigured(strictness: Strictness = LINK_STRICT): Boolean

    Definition Classes
    CInterface
  30. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  31. def isWellformed: Boolean

    ensures a couple of invariants.

    ensures a couple of invariants.

    a module is illformed if (a) it exports the same signature twice in the same configuration (b) it imports the same signature twice in the same configuration (c) if it exports and imports a name in the same configuration

    by construction, this should not occur in inferred and linked interfaces

    Definition Classes
    CInterface
  32. def link(that: CInterface, strictness: Strictness = LINK_STRICT): CInterface

    Definition Classes
    CInterface
  33. def linkWithOutElimination(that: CInterface, strictness: Strictness = LINK_STRICT): CInterface

    Definition Classes
    CInterface
  34. def mapFM(f: (FeatureExpr) ⇒ FeatureExpr): CInterface

    Definition Classes
    CInterface
  35. final def ne(arg0: AnyRef): Boolean

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

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

    Definition Classes
    AnyRef
  38. def pack(strictness: Strictness = LINK_STRICT): CInterface

    removes duplicates by joining the corresponding conditions removes imports that are available as exports in the same file removes False imports

    removes duplicates by joining the corresponding conditions removes imports that are available as exports in the same file removes False imports

    how to determine whether two elements are duplicate depends on the strictness level (see above)

    exports are not packed beyond removing False exports. duplicate exports are used for error detection

    Definition Classes
    CInterface
  39. def packWithOutElimination(strictness: Strictness = LINK_STRICT): CInterface

    Definition Classes
    CInterface
  40. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  41. def toString(): String

    Definition Classes
    CInterface → AnyRef → Any
  42. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from CInterface

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped