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.MultiselectDecisionItem
getItemByCoordinates(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 MultiselectDecisionTree
parse(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.void
serialize(ConfigSerialization serialization, OutputStream outputStream)
Serialize the tree using a given serialization method.void
setItemList(List<MultiselectDecisionItem> itemList)
Set item list of first column.void
setVariableDescriptions(List<MultiselectVariableDescriptor> variableDescriptions)
Set meta information about build variables/columns.String
toString()
void
updateInitialValues()
Set up initial values for display in drop down boxes on web page.void
visitSelectedItems(Queue<Integer> itemPath, MultiselectDecisionItemVisitor visitor)
Use a visitor object/lambda to perform an action on one item per column.void
visitSubTree(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.
-
-