Java Command Annotations – @Group
Java command annotations are used for the developing Java commands in PAK.
This chapter describes the functionality of the @Group
annotation.
It also gives an example of how you can use this annotation in your implementation.
1. Basics
The @Group
annotation marks several optional persistent variables that should belong to one group.
Variables of the same group behave like one variable with respect to the mandatory
property of the @Persistent
annotation.
In case none of the variables is assigned to a value the user will not be able to execute the command.
One group needs at least two variables assigned to it and the group name should be user-friendly.
Since the user can specify values for all variables of one group at the same time, the code must implement the handling of this case, see line 34 of Listing 1. |
This annotation does only makes sense in combination with the @Persistent annotation and the variable has to be optional.
|
2. Properties
There is a String property value
defined for the @Group
annotation.
This specifies the group name under which the variable will be placed and should be short and human-readable.
3. Usage
Listing 1 demonstrates how the @Group
annotation has to be used in your command.
@Group
annotation/**
* @workflowDocu This command gets an element by its id or key.
*/
@JavaCommand
@CommandGroup("Element")
public class GetElement {
private static final String IDENTIFIER_GROUP = "Identifier";
[...]
/**
* @workflowDocu Id of the issue element to fetch
*/
@Group(IDENTIFIER_GROUP) (1)
@Persistent(mandatory = false) (2)
private String id;
/**
* @workflowDocu Key of the issue element to fetch
*/
@Group(IDENTIFIER_GROUP) (3)
@Persistent(mandatory = false) (4)
private String key;
[...]
/**
* Fetch the element with a given id or key.
*/
@Run
public void fetchElement() {
[...]
// Check whether both variables of group "Identifier" have a value assigned
if (StringUtils.isNotBlank(id) && StringUtils.isNotBlank(key)) {
// Add handling of this case
}
[...]
}
}
1 | Use of the @Group annotation for the 1st variable |
2 | 1st variable is set to optional |
3 | Use of the @Group annotation for the 2nd variable |
4 | 2nd variable is set to optional |
The result of the example of Listing 1 is shown in the following images.
Figure 1 displays the grouping of the two variables id
and key
.
As you can see, both variables are bordered red. As soon as one of the variables get a value assigned, the command can be executed.
In figure Figure 2 a value for id
is set and in Figure 3 for key
.
Id
assigned to valueKey
assigned to value