boolean notGlobal = buffer.toString().endsWith(")");
if (notGlobal) {
buffer.append(".");
}
OnExceptionDefinition onException = (OnExceptionDefinition)processor;
buffer.append(processor.getShortName()).append("(");
List<Class> exceptions = onException.getExceptionClasses();
for (Class excep : exceptions) {
buffer.append(excep.getSimpleName()).append(".class");
if (excep != exceptions.get(exceptions.size() - 1)) {
buffer.append(", ");
}
}
buffer.append(")");
// render the redelivery policy
if (onException.getRedeliveryPolicy() != null) {
RedeliveryPolicyDefinition redelivery = onException.getRedeliveryPolicy();
if (redelivery.getMaximumRedeliveries() != null) {
int maxRedeliveries = redelivery.getMaximumRedeliveries();
if (maxRedeliveries != 0) {
buffer.append(".maximumRedeliveries(").append(maxRedeliveries).append(")");
}
}
if (redelivery.getRedeliveryDelay() != null) {
long redeliverDelay = redelivery.getRedeliveryDelay();
if (redeliverDelay != 1000) {
buffer.append(".redeliverDelay(").append(redeliverDelay).append(")");
}
}
if (redelivery.getLogStackTrace() != null) {
if (redelivery.getLogStackTrace()) {
buffer.append(".logStackTrace(true)");
}
}
}
// render the handled policy
if (onException.getHandledPolicy() != null) {
String handledPolicy = onException.getHandledPolicy().toString();
if (handledPolicy.equals("false")) {
buffer.append(".handled(").append(handledPolicy).append(")");
}
}
List<ProcessorDefinition> branches = onException.getOutputs();
for (ProcessorDefinition branch : branches) {
SendDefinitionRenderer.render(buffer, branch);
}
}