Class VariationLabel<L extends Label>

java.lang.Object
org.variantsync.diffdetective.variation.VariationLabel<L>
Type Parameters:
L - the label of the trees (the object language) over which variability is introduced
All Implemented Interfaces:
Label, HasNodeType

public class VariationLabel<L extends Label> extends Object implements Label, HasNodeType
Extends an inner Label, the object language, with variability, the meta language. This class allows encoding of multiple levels of variability in the sense of variation trees of variation trees. Such higher-order variation trees can be encoded in a single tree structure because the result of configuring a variation tree is still a tree. In other words: the object language of a VariationTree<L> is a tree with labels L. The trick is that a variation tree is just a tree with labels VariationLabel<L>.
See Also:
  • Field Details

    • type

      private NodeType type
    • innerLabel

      private L extends Label innerLabel
  • Constructor Details

    • VariationLabel

      public VariationLabel(NodeType type, L innerLabel)
  • Method Details