Class 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:
    Serialized Form
    • Constructor Detail

      • MultiselectDecisionTree

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

      • 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.