Node firstN;
firstN = DomUtil.getChild(mbeanNode, "operation");
for (Node descN = firstN; descN != null; descN = DomUtil.getNext(descN)) {
// Create new operation info
OperationInfo oi = new OperationInfo();
DomUtil.setAttributes(oi, descN);
// Process descriptor subnode
Node firstDescriptorN = DomUtil.getChild(descN, "descriptor");
if (firstDescriptorN != null) {
Node firstFieldN = DomUtil.getChild(firstDescriptorN, "field");
for (Node fieldN = firstFieldN; fieldN != null; fieldN = DomUtil.getNext(fieldN)) {
FieldInfo fi = new FieldInfo();
DomUtil.setAttributes(fi, fieldN);
oi.addField(fi);
}
}
// Process parameter subnodes
Node firstParamN = DomUtil.getChild(descN, "parameter");
for (Node paramN = firstParamN; paramN != null; paramN = DomUtil.getNext(paramN)) {
ParameterInfo pi = new ParameterInfo();
DomUtil.setAttributes(pi, paramN);
oi.addParameter(pi);
}
// Add this info to our managed bean info
managed.addOperation(oi);