@Override
public boolean getAllPossibleValues(List<Completion> completions, Class<?> targetType, String existingData,
String optionContext, MethodTarget target) {
String kind = determineKind(optionContext);
SpringXDOperations springXDOperations = xdShell.getSpringXDOperations();
DeployedCriteria criteria = DeployedCriteria.parse(optionContext);
boolean kindSupported = true;
try {
if ("stream".equals(kind)) {
populate(completions, springXDOperations.streamOperations().list(), criteria, "Streams");
}
else if ("job".equals(kind)) {
populate(completions, springXDOperations.jobOperations().list(), criteria, "Jobs");
}
else if ("counter".equals(kind)) {
populate(completions, springXDOperations.counterOperations().list(), criteria, "Counters");
}
else if ("fvc".equals(kind)) {
populate(completions, springXDOperations.fvcOperations().list(), criteria, "Field Value Counters");
}
else if ("gauge".equals(kind)) {
populate(completions, springXDOperations.gaugeOperations().list(), criteria, "Gauges");
}
else if ("rich-gauge".equals(kind)) {
populate(completions, springXDOperations.richGaugeOperations().list(), criteria, "Rich Gauges");
}
else if ("aggregate-counter".equals(kind)) {
populate(completions, springXDOperations.aggrCounterOperations().list(), criteria, "Aggregate Counters");
}
else {
kindSupported = false;
}
}