package twitter4j.management;
import java.util.Iterator;
import javax.management.Attribute;
import javax.management.AttributeList;
import javax.management.AttributeNotFoundException;
import javax.management.DynamicMBean;
import javax.management.InvalidAttributeValueException;
import javax.management.MBeanException;
import javax.management.MBeanInfo;
import javax.management.MBeanNotificationInfo;
import javax.management.ReflectionException;
import javax.management.openmbean.CompositeDataSupport;
import javax.management.openmbean.CompositeType;
import javax.management.openmbean.OpenDataException;
import javax.management.openmbean.OpenMBeanAttributeInfoSupport;
import javax.management.openmbean.OpenMBeanConstructorInfoSupport;
import javax.management.openmbean.OpenMBeanInfoSupport;
import javax.management.openmbean.OpenMBeanOperationInfoSupport;
import javax.management.openmbean.OpenMBeanParameterInfoSupport;
import javax.management.openmbean.OpenType;
import javax.management.openmbean.SimpleType;
import javax.management.openmbean.TabularDataSupport;
import javax.management.openmbean.TabularType;
public class APIStatisticsOpenMBean
implements DynamicMBean
{
private static final String[] ITEM_DESCRIPTIONS;
private static final String[] ITEM_NAMES;
private static final OpenType[] ITEM_TYPES;
private final APIStatisticsMBean API_STATISTICS;
private final TabularType API_STATISTICS_TYPE;
private final CompositeType METHOD_STATS_TYPE;
static
{
String[] arrayOfString1 = new String[5];
arrayOfString1[0] = "methodName";
arrayOfString1[1] = "callCount";
arrayOfString1[2] = "errorCount";
arrayOfString1[3] = "totalTime";
arrayOfString1[4] = "avgTime";
ITEM_NAMES = arrayOfString1;
OpenType[] arrayOfOpenType = new OpenType[5];
arrayOfOpenType[0] = SimpleType.STRING;
arrayOfOpenType[1] = SimpleType.LONG;
arrayOfOpenType[2] = SimpleType.LONG;
arrayOfOpenType[3] = SimpleType.LONG;
arrayOfOpenType[4] = SimpleType.LONG;
ITEM_TYPES = arrayOfOpenType;
String[] arrayOfString2 = new String[5];
arrayOfString2[0] = "The method name";
arrayOfString2[1] = "The number of times this method has been called";
arrayOfString2[2] = "The number of calls that failed";
arrayOfString2[3] = "The total amount of time spent invoking this method in milliseconds";
arrayOfString2[4] = "The average amount of time spent invoking this method in milliseconds";
ITEM_DESCRIPTIONS = arrayOfString2;
}
public APIStatisticsOpenMBean(APIStatistics paramAPIStatistics)
{
this.API_STATISTICS = paramAPIStatistics;
try
{
this.METHOD_STATS_TYPE = new CompositeType("method statistics", "method statistics", ITEM_NAMES, ITEM_DESCRIPTIONS, ITEM_TYPES);
String[] arrayOfString = new String[1];
arrayOfString[0] = "methodName";
this.API_STATISTICS_TYPE = new TabularType("API statistics", "list of methods", this.METHOD_STATS_TYPE, arrayOfString);
return;
}
catch (OpenDataException localOpenDataException)
{
throw new RuntimeException(localOpenDataException);
}
}
public Object getAttribute(String paramString)
throws AttributeNotFoundException, MBeanException, ReflectionException
{
Object localObject;
if (paramString.equals("statisticsTable")) {
localObject = getStatistics();
}
for (;;)
{
return localObject;
if (paramString.equals("callCount"))
{
localObject = Long.valueOf(this.API_STATISTICS.getCallCount());
}
else if (paramString.equals("errorCount"))
{
localObject = Long.valueOf(this.API_STATISTICS.getErrorCount());
}
else if (paramString.equals("totalTime"))
{
localObject = Long.valueOf(this.API_STATISTICS.getTotalTime());
}
else
{
if (!paramString.equals("averageTime")) {
break;
}
localObject = Long.valueOf(this.API_STATISTICS.getAverageTime());
}
}
throw new AttributeNotFoundException("Cannot find " + paramString + " attribute ");
}
public AttributeList getAttributes(String[] paramArrayOfString)
{
AttributeList localAttributeList = new AttributeList();
if (paramArrayOfString.length == 0) {
return localAttributeList;
}
int i = 0;
while (i < paramArrayOfString.length) {
try
{
Object localObject = getAttribute(paramArrayOfString[i]);
localAttributeList.add(new Attribute(paramArrayOfString[i], localObject));
i++;
}
catch (Exception localException)
{
for (;;)
{
localException.printStackTrace();
}
}
}
}
public MBeanInfo getMBeanInfo()
{
OpenMBeanAttributeInfoSupport[] arrayOfOpenMBeanAttributeInfoSupport = new OpenMBeanAttributeInfoSupport[5];
OpenMBeanConstructorInfoSupport[] arrayOfOpenMBeanConstructorInfoSupport = new OpenMBeanConstructorInfoSupport[1];
OpenMBeanOperationInfoSupport[] arrayOfOpenMBeanOperationInfoSupport = new OpenMBeanOperationInfoSupport[1];
MBeanNotificationInfo[] arrayOfMBeanNotificationInfo = new MBeanNotificationInfo[0];
int i = 0 + 1;
arrayOfOpenMBeanAttributeInfoSupport[0] = new OpenMBeanAttributeInfoSupport("callCount", "Total number of API calls", SimpleType.LONG, true, false, false);
int j = i + 1;
arrayOfOpenMBeanAttributeInfoSupport[i] = new OpenMBeanAttributeInfoSupport("errorCount", "The number of failed API calls", SimpleType.LONG, true, false, false);
int k = j + 1;
arrayOfOpenMBeanAttributeInfoSupport[j] = new OpenMBeanAttributeInfoSupport("averageTime", "Average time spent invoking any API method", SimpleType.LONG, true, false, false);
int m = k + 1;
arrayOfOpenMBeanAttributeInfoSupport[k] = new OpenMBeanAttributeInfoSupport("totalTime", "Average time spent invoking any API method", SimpleType.LONG, true, false, false);
(m + 1);
arrayOfOpenMBeanAttributeInfoSupport[m] = new OpenMBeanAttributeInfoSupport("statisticsTable", "Table of statisics for all API methods", this.API_STATISTICS_TYPE, true, false, false);
arrayOfOpenMBeanConstructorInfoSupport[0] = new OpenMBeanConstructorInfoSupport("APIStatisticsOpenMBean", "Constructs an APIStatisticsOpenMBean instance", new OpenMBeanParameterInfoSupport[0]);
arrayOfOpenMBeanOperationInfoSupport[0] = new OpenMBeanOperationInfoSupport("reset", "reset the statistics", new OpenMBeanParameterInfoSupport[0], SimpleType.VOID, 0);
return new OpenMBeanInfoSupport(getClass().getName(), "API Statistics Open MBean", arrayOfOpenMBeanAttributeInfoSupport, arrayOfOpenMBeanConstructorInfoSupport, arrayOfOpenMBeanOperationInfoSupport, arrayOfMBeanNotificationInfo);
}
/**
* @deprecated
*/
public TabularDataSupport getStatistics()
{
TabularDataSupport localTabularDataSupport;
try
{
localTabularDataSupport = new TabularDataSupport(this.API_STATISTICS_TYPE);
Iterator localIterator = this.API_STATISTICS.getInvocationStatistics().iterator();
for (;;)
{
if (localIterator.hasNext())
{
InvocationStatistics localInvocationStatistics = (InvocationStatistics)localIterator.next();
Object[] arrayOfObject = new Object[5];
arrayOfObject[0] = localInvocationStatistics.getName();
arrayOfObject[1] = Long.valueOf(localInvocationStatistics.getCallCount());
arrayOfObject[2] = Long.valueOf(localInvocationStatistics.getErrorCount());
arrayOfObject[3] = Long.valueOf(localInvocationStatistics.getTotalTime());
arrayOfObject[4] = Long.valueOf(localInvocationStatistics.getAverageTime());
try
{
localTabularDataSupport.put(new CompositeDataSupport(this.METHOD_STATS_TYPE, ITEM_NAMES, arrayOfObject));
}
catch (OpenDataException localOpenDataException)
{
throw new RuntimeException(localOpenDataException);
}
}
}
}
finally {}
return localTabularDataSupport;
}
public Object invoke(String paramString, Object[] paramArrayOfObject, String[] paramArrayOfString)
throws MBeanException, ReflectionException
{
if (paramString.equals("reset"))
{
reset();
return "Statistics reset";
}
throw new ReflectionException(new NoSuchMethodException(paramString), "Cannot find the operation " + paramString);
}
public void reset()
{
this.API_STATISTICS.reset();
}
public void setAttribute(Attribute paramAttribute)
throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
{
throw new AttributeNotFoundException("No attributes can be set in this MBean");
}
public AttributeList setAttributes(AttributeList paramAttributeList)
{
return new AttributeList();
}
}
/* Location: F:\neembuu\Research\android_apps\output_jar.jar
* Qualified Name: twitter4j.management.APIStatisticsOpenMBean
* JD-Core Version: 0.7.0.1
*/