// Attributes
TableElement attributes = new TableElement().
overflow(Overflow.HIDDEN).
rightCellPadding(1).
add(new RowElement().style(Decoration.bold.fg(Color.black).bg(Color.white)).add("NAME", "TYPE", "DESCRIPTION"));
for (MBeanAttributeInfo attributeInfo : info.getAttributes()) {
attributes.row(attributeInfo.getName(), attributeInfo.getType(), attributeInfo.getDescription());
}
// Operations
TreeElement operations = new TreeElement("Operations");
for (MBeanOperationInfo operationInfo : info.getOperations()) {
TableElement signature = new TableElement().
overflow(Overflow.HIDDEN).
rightCellPadding(1);
MBeanParameterInfo[] parameterInfos = operationInfo.getSignature();
for (MBeanParameterInfo parameterInfo : parameterInfos) {
signature.row(parameterInfo.getName(), parameterInfo.getType(), parameterInfo.getDescription());
}
TreeElement operation = new TreeElement(operationInfo.getName());
String impact;
switch (operationInfo.getImpact()) {
case MBeanOperationInfo.ACTION:
impact = "ACTION";
break;
case MBeanOperationInfo.INFO:
impact = "INFO";
break;
case MBeanOperationInfo.ACTION_INFO:
impact = "ACTION_INFO";
break;
default:
impact = "UNKNOWN";
}
operation.addChild(new TableElement().
add(
new RowElement().add("Type: ", operationInfo.getReturnType()),
new RowElement().add("Description: ", operationInfo.getDescription()),
new RowElement().add("Impact: ", impact),
new RowElement().add(new LabelElement("Signature: "), signature)
)
);
operations.addChild(operation);
}