Class VarSpecNode

java.lang.Object
org.proforma.variability.transfer.VarSpecNode
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
VarSpecInnerNode, VarSpecLeaf

public abstract class VarSpecNode extends Object implements Serializable
See Also:
  • Constructor Details

    • VarSpecNode

      public VarSpecNode()
    • VarSpecNode

      public VarSpecNode(VarSpecNode other)
  • Method Details

    • clone

      public abstract VarSpecNode clone()
      Overrides:
      clone in class Object
    • getDebugId

      protected String getDebugId()
    • getChildren

      public abstract List<VarSpecNode> getChildren()
    • setChildren

      public abstract void setChildren(List<VarSpecNode> children)
    • getCVp

      public abstract CVp getCVp()
    • setCVp

      public abstract void setCVp(CVp cvp)
    • collectDefRefs

      protected org.proforma.variability.transfer.VarSpecNode.DefRefCollector collectDefRefs()
      Can be called only when all children are present.
    • findDef

      protected VarSpecNodeDef findDef(String id)
    • afterUnmarshal

      public void afterUnmarshal(javax.xml.bind.Unmarshaller unmarshaller, Object parent)
      Postprocessing sets parent relationships
    • collectAndValidateAllDefsAndRefs

      protected void collectAndValidateAllDefsAndRefs()
      This method is called once by the root node.
    • pushInheritedCVpToChildren

      protected abstract void pushInheritedCVpToChildren(CVp inheritedCVp)
    • sizeLowerBound

      public abstract long sizeLowerBound()
      Returns:
      the number of tuples in this set.
    • dim

      public abstract int dim()
    • getEffectiveCVp

      public abstract CVp getEffectiveCVp()
    • getRoot

      public VarSpecRoot getRoot()
    • getParent

      public VarSpecNode getParent()
      Returns:
      parent node (null for the root)
    • setParent

      public void setParent(VarSpecNode parent)
      Parameters:
      parent - parent node (or null for the root)
    • getEffectiveVpIndex

      public int getEffectiveVpIndex(String key)
    • getEffectiveVp

      public Vp getEffectiveVp(String key)
    • getLastChild

      public VarSpecNode getLastChild()
      Returns the last child node.
    • getNonDefineChildren

      public ArrayList<VarSpecNode> getNonDefineChildren()
    • numNonDefineChildren

      protected int numNonDefineChildren()
    • endBuild

      public VarSpecRoot endBuild()
    • endBuildTable

      public VarSpecNodeTable endBuildTable()
    • define

      public VarSpecNodeDef define(String id, String... keys)
    • endDefine

      public VarSpecNode endDefine()
    • collectGroup

      public VarSpecNodeCollectGroup collectGroup(String... keys)
    • endCollectGroup

      public VarSpecNode endCollectGroup()
    • combineGroup

      public VarSpecNodeCombineGroup combineGroup(String... keys)
    • endCombineGroup

      public VarSpecNode endCombineGroup()
    • combine

      public VarSpecNode combine(Object... values)
    • ref

      public VarSpecNode ref(String id)
    • collect

      public VarSpecNode collect(Object... choices)
    • range

      public VarSpecNode range(Object first, Object last)
    • range

      public VarSpecNode range(Object first, Object last, int steps)
    • range

      public VarSpecNode range(Object first, Object last, Long steps)
    • val

      public VarSpecNode val(Object item)
    • deriveVal

      public VarSpecNode deriveVal(String jsSource)
    • deriveCollect

      public VarSpecNode deriveCollect(String jsSource)
    • validateNewChild

      protected abstract void validateNewChild(VarSpecNode child) throws IllegalArgumentException
      Throws:
      IllegalArgumentException
    • prettyPrint

      public void prettyPrint()
    • prettyPrint

      public void prettyPrint(PrintStream out)
    • prettyPrint

      protected abstract void prettyPrint(PrintStream out, String prefix)
    • toString

      public String toString()
      Overrides:
      toString in class Object