Class MultiselectDecisionTree

java.lang.Object
de.westemeyer.plugins.multiselect.MultiselectDecisionTree
All Implemented Interfaces:
Serializable

public class MultiselectDecisionTree extends Object implements Serializable
Tree object accumulating all meta information entered in configuration of the build parameter configuration form.
See Also:
  • Constructor Details

    • MultiselectDecisionTree

      @DataBoundConstructor public MultiselectDecisionTree()
      Empty constructor for pipeline configuration.
  • Method Details

    • getInitialValuesForColumn

      public List<MultiselectDecisionItem> getInitialValuesForColumn(int column)
      Get initial values for column when first displaying list of select boxes in "build with parameters" view.
      Parameters:
      column - column number
      Returns:
      list of items to display in given column
    • getItemByCoordinates

      public MultiselectDecisionItem getItemByCoordinates(Integer... coordinates)
      Convenience method to get item by its position in tree, by stepping along the tree branches using indices.
      Parameters:
      coordinates - list of indices
      Returns:
      item from tree
    • serialize

      public void serialize(ConfigSerialization serialization, OutputStream outputStream) throws Exception
      Serialize the tree using a given serialization method.
      Parameters:
      serialization - serialization method to use
      outputStream - output stream to write to
      Throws:
      Exception - in case an error occurs writing to output stream
    • visitSubTree

      public void visitSubTree(MultiselectDecisionItemVisitor visitor) throws Exception
      Use a visitor object/lambda to iterate all items in tree.
      Parameters:
      visitor - lambda to execute for each item in tree
      Throws:
      Exception - in case an error occurs in lambda
    • visitSelectedItems

      public void visitSelectedItems(Queue<Integer> itemPath, MultiselectDecisionItemVisitor visitor)
      Use a visitor object/lambda to perform an action on one item per column.
      Parameters:
      itemPath - the item indices to select from each column
      visitor - lambda to execute for select items in tree
    • parse

      public static MultiselectDecisionTree parse(String csvInput)
      Convenience method for parameterized unit tests.
      Parameters:
      csvInput - csv input
      Returns:
      new parsed instance
    • resolveValues

      public Map<String,String> resolveValues(Map<String,Integer> selectedValues)
      Create key value pairs of variable name and its value from its name and its selected column index. For example: COLUMN1=3 resolves to COLUMN1=ValueInRow3.
      Parameters:
      selectedValues - map of variable names and column indices (row numbers)
      Returns:
      property list of table cell values with variable name as key
    • getItemList

      @NonNull public List<MultiselectDecisionItem> getItemList()
      Get item list of first column.
      Returns:
      item list of first column
    • setItemList

      @DataBoundSetter public void setItemList(@NonNull List<MultiselectDecisionItem> itemList)
      Set item list of first column.
      Parameters:
      itemList - item list of first column
    • getVariableDescriptions

      @NonNull public List<MultiselectVariableDescriptor> getVariableDescriptions()
      Get meta information about build variables/columns.
      Returns:
      meta information about build variables/columns.
    • getVariableLabels

      public List<String> getVariableLabels()
      Get list of variable labels from list of variable descriptors.
      Returns:
      list of variable labels
    • getVariableNames

      public List<String> getVariableNames()
      Get list of variable names from list of variable descriptors.
      Returns:
      list of variable names
    • setVariableDescriptions

      @DataBoundSetter public void setVariableDescriptions(@NonNull List<MultiselectVariableDescriptor> variableDescriptions)
      Set meta information about build variables/columns.
      Parameters:
      variableDescriptions - meta information about build variables/columns
    • updateInitialValues

      public void updateInitialValues()
      Set up initial values for display in drop down boxes on web page.
    • toString

      public String toString()
      Overrides:
      toString in class Object