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:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description MultiselectDecisionTree()Empty constructor for pipeline configuration.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description List<MultiselectDecisionItem>getInitialValuesForColumn(int column)Get initial values for column when first displaying list of select boxes in "build with parameters" view.MultiselectDecisionItemgetItemByCoordinates(Integer... coordinates)Convenience method to get item by its position in tree, by stepping along the tree branches using indices.List<MultiselectDecisionItem>getItemList()Get item list of first column.List<MultiselectVariableDescriptor>getVariableDescriptions()Get meta information about build variables/columns.List<String>getVariableLabels()Get list of variable labels from list of variable descriptors.List<String>getVariableNames()Get list of variable names from list of variable descriptors.static MultiselectDecisionTreeparse(String csvInput)Convenience method for parameterized unit tests.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.voidserialize(ConfigSerialization serialization, OutputStream outputStream)Serialize the tree using a given serialization method.voidsetItemList(List<MultiselectDecisionItem> itemList)Set item list of first column.voidsetVariableDescriptions(List<MultiselectVariableDescriptor> variableDescriptions)Set meta information about build variables/columns.StringtoString()voidupdateInitialValues()Set up initial values for display in drop down boxes on web page.voidvisitSelectedItems(Queue<Integer> itemPath, MultiselectDecisionItemVisitor visitor)Use a visitor object/lambda to perform an action on one item per column.voidvisitSubTree(MultiselectDecisionItemVisitor visitor)Use a visitor object/lambda to iterate all items in tree.
-
-
-
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 useoutputStream- 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 columnvisitor- 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.
-
-