protected OMElement serializeSpecificMediator(Mediator m) {
if (!(m instanceof ThrottleMediator)) {
handleException("Invalid Mediator has passed to serializer");
}
ThrottleMediator throttleMediator = (ThrottleMediator) m;
OMElement throttle = fac.createOMElement("throttle", synNS);
OMElement policy = fac.createOMElement("policy", synNS);
String key = throttleMediator.getPolicyKey();
if (key != null) {
policy.addAttribute(fac.createOMAttribute(
"key", nullNS, key));
throttle.addChild(policy);
} else {
OMNode inlinePolicy = throttleMediator.getInLinePolicy();
if (inlinePolicy != null) {
policy.addChild(inlinePolicy);
throttle.addChild(policy);
}
}
saveTracingState(throttle, throttleMediator);
String id = throttleMediator.getId();
if (id != null) {
throttle.addAttribute(fac.createOMAttribute(
"id", nullNS, id));
}
String onReject = throttleMediator.getOnRejectSeqKey();
if (onReject != null) {
throttle.addAttribute(fac.createOMAttribute(XMLConfigConstants.ONREJECT, nullNS,
onReject));
} else {
Mediator mediator = throttleMediator.getOnRejectMediator();
SequenceMediatorSerializer serializer = new SequenceMediatorSerializer();
if (mediator != null && mediator instanceof SequenceMediator) {
OMElement element = serializer.serializeAnonymousSequence(null,
(SequenceMediator) mediator);
element.setLocalName(XMLConfigConstants.ONREJECT);
throttle.addChild(element);
}
}
String onAccept = throttleMediator.getOnAcceptSeqKey();
if (onAccept != null) {
throttle.addAttribute(fac.createOMAttribute(XMLConfigConstants.ONACCEPT, nullNS,
onAccept));
} else {
Mediator mediator = throttleMediator.getOnAcceptMediator();
SequenceMediatorSerializer serializer = new SequenceMediatorSerializer();
if (mediator != null && mediator instanceof SequenceMediator) {
OMElement element = serializer.serializeAnonymousSequence(null,
(SequenceMediator) mediator);
element.setLocalName(XMLConfigConstants.ONACCEPT);
throttle.addChild(element);
}
}
return throttle;