if (hasAttribute(element, "function")) {
String functionStr = getStringValue(element, "function");
functionStr = ProcessorUtils.getValueAfterProcessingBundles(functionStr, request);
CallbackType callbackType = null;
try {
callbackType = CallbackType.valueOf(typeStr.toUpperCase().trim());
} catch (IllegalArgumentException e) {
StringBuilder sb = new StringBuilder();
sb.append("'");
sb.append(typeStr);
sb.append("' is not a valid callback type. Possible values are: ");
sb.append(EnumUtils.printPossibleValuesOf(CallbackType.class));
throw new ConfigurationProcessingException(sb.toString());
}
if (configs.get(tableId).containsKey(ConfType.CALLBACK)) {
List<Callback> callbacks = (List<Callback>) configs.get(tableId).get(ConfType.CALLBACK);
if (Callback.hasCallback(callbackType, callbacks)) {
Callback.findByType(callbackType, callbacks).appendCode(
(callbackType.hasReturn() ? "return " : "") + functionStr + "("
+ StringUtils.join(callbackType.getArgs(), ",") + ");");
} else {
callbacks.add(new Callback(callbackType, (callbackType.hasReturn() ? "return " : "")
+ functionStr + "(" + StringUtils.join(callbackType.getArgs(), ",") + ");"));
}
} else {
List<Callback> callbacks = new ArrayList<Callback>();
callbacks.add(new Callback(callbackType, (callbackType.hasReturn() ? "return " : "") + functionStr
+ "(" + StringUtils.join(callbackType.getArgs(), ",") + ");"));
configs.get(tableId).put(ConfType.CALLBACK, callbacks);
}
} else {
throw new ConfigurationProcessingException("The attribute '" + DataTablesDialect.DIALECT_PREFIX