1 23 package com.sun.appserv.management.util.jmx.stringifier; 24 25 import java.lang.reflect.Array ; 26 import javax.management.MBeanInfo ; 27 import javax.management.MBeanOperationInfo ; 28 import javax.management.MBeanAttributeInfo ; 29 import javax.management.MBeanConstructorInfo ; 30 import javax.management.MBeanNotificationInfo ; 31 32 import com.sun.appserv.management.util.stringifier.Stringifier; 33 import com.sun.appserv.management.util.stringifier.ArrayStringifier; 34 35 public class MBeanInfoStringifier extends MBeanFeatureInfoStringifier implements Stringifier 36 { 37 public static final MBeanInfoStringifier DEFAULT = new MBeanInfoStringifier(); 38 39 public 40 MBeanInfoStringifier() 41 { 42 super(); 43 } 44 45 public 46 MBeanInfoStringifier( MBeanFeatureInfoStringifierOptions options ) 47 { 48 super( options ); 49 } 50 51 private String 52 stringifyArray( Object [] a, Stringifier stringifier) 53 { 54 String temp = ""; 55 56 if ( a.length != 0 ) 57 { 58 temp = "\n" + ArrayStringifier.stringify( a, "\n", stringifier); 59 } 60 return( temp ); 61 } 62 63 MBeanAttributeInfoStringifier 65 getMBeanAttributeInfoStringifier( MBeanFeatureInfoStringifierOptions options ) 66 { 67 return( new MBeanAttributeInfoStringifier(options) ); 68 } 69 70 MBeanOperationInfoStringifier 72 getMBeanOperationInfoStringifier( MBeanFeatureInfoStringifierOptions options ) 73 { 74 return( new MBeanOperationInfoStringifier(options) ); 75 } 76 77 MBeanConstructorInfoStringifier 79 getMBeanConstructorInfoStringifier( MBeanFeatureInfoStringifierOptions options ) 80 { 81 return( new MBeanConstructorInfoStringifier(options) ); 82 } 83 84 MBeanNotificationInfoStringifier 86 getMBeanNotificationInfoStringifier( MBeanFeatureInfoStringifierOptions options ) 87 { 88 return( new MBeanNotificationInfoStringifier(options) ); 89 } 90 91 public String 92 stringify( Object o) 93 { 94 String result = ""; 95 final MBeanInfo info = (MBeanInfo )o; 96 97 final MBeanOperationInfo [] operations = info.getOperations(); 98 final MBeanAttributeInfo [] attributes = info.getAttributes(); 99 final MBeanConstructorInfo [] constructors = info.getConstructors(); 100 final MBeanNotificationInfo [] notifications = info.getNotifications(); 101 final String description = info.getDescription(); 102 103 result = "Summary: " + 104 operations.length + " operations, " + 105 attributes.length + " attributes, " + 106 constructors.length + " constructors, " + 107 notifications.length + " notifications" + 108 (description == null ? "" : ", \"" + description + "\"" ); 109 110 final MBeanFeatureInfoStringifierOptions options = 111 new MBeanFeatureInfoStringifierOptions( true, "," ); 112 113 result = result + "\n\n- Attributes -" + 116 stringifyArray( attributes, getMBeanAttributeInfoStringifier( options ) ); 117 118 result = result + "\n\n- Operations -" + 119 stringifyArray( operations, getMBeanOperationInfoStringifier(options) ); 120 121 result = result + "\n\n- Constructors -" + 122 stringifyArray( constructors, getMBeanConstructorInfoStringifier(options) ); 123 124 result = result + "\n\n- Notifications -" + 125 stringifyArray( notifications, getMBeanNotificationInfoStringifier(options) ); 126 127 return( result ); 128 129 } 130 } 131 132 133 134 135 136 | Popular Tags |