true or false value.
The following example shows how the BooleanFlag annotation can be
used to describe that a setting is a boolean value. This information can be
used by a graphical user interface to display the setting as a checkbox.
@BooleanFlag @Name("example.Rollback") @Label("Rollback") @Description("Include transactions that are rollbacked") public static class RollbackSetting extends SettingControl { private static final String DEFAULT_VALUE = "true"; private boolean value = true; @Override public String combine(Set<String> values) { if (values.contains("true")) { return "true"; } if (values.contains("false")) { return "false"; } return DEFAULT_VALUE; } @Override public void setValue(String value) { // Ignore invalid values if ("true".equals(value) || "false".equals(value)) { this.value = "true".equals(value); } } @Override public String getValue() { return Boolean.toString(value); } public boolean shouldEmit() { return value; } } @Name("example.Transaction") public static class TransactionEvent extends Event { @Label("Context") String context; @Label("Rollback") boolean rollback; @SettingDefinition @Name("rollback") public boolean rollback(RollbackSetting rollbackSetting) { return rollback && rollbackSetting.shouldEmit(); } }