List variables = new ArrayList();
variables.add(new VariableWrapper("ruleName", (IJavaValue) DebugUtil.getValueByExpression("return getRule().getName();", activation)));
String activationId = null;
IVariable[] activationVarArray = activation.getVariables();
for (int j = 0; j < activationVarArray.length; j++) {
IVariable activationVar = activationVarArray[j];
if ("activationNumber".equals(activationVar.getName())) {
activationId = activationVar.getValue().getValueString();
break;
}
}
if (activationId != null) {
IValue objects = DebugUtil.getValueByExpression("return getActivationParameters(" + activationId + ");", workingMemoryImpl);
if (objects instanceof IJavaArray) {
IJavaArray array = (IJavaArray) objects;
IJavaValue[] javaVals = array.getValues();
for ( int k = 0; k < javaVals.length; k++ ) {
IJavaValue mapEntry = javaVals[k];
String key = null;
IJavaValue value = null;
IVariable[] vars = mapEntry.getVariables();
for ( int j = 0; j < vars.length; j++ ) {
IVariable var = vars[j];
if ("key".equals(var.getName())) {
key = var.getValue().getValueString();
} else if ("value".equals(var.getName())) {
value = (IJavaValue) var.getValue();
}
}
variables.add(new VariableWrapper(key, value));
}
result = (IJavaVariable[]) variables.toArray(new IJavaVariable[variables.size()]);