checkAllStats( final ObjectName objectName )
throws InvocationTargetException, IllegalAccessException, NoSuchMethodException
{
trace( "checkAllStats: " + objectName );
final MonitoringStats mon =
getProxyFactory().getProxy( objectName, MonitoringStats.class);
final Method[] methods = mon.getClass().getMethods();
final Method specificStatsMethod = getSpecificStatsGetterMethod( mon );
// the type of Stats returned from getStats() should be the same as the type
// returned from the (only) specific getAbcStats()
final Stats plainStats = mon.getStats();
assert( specificStatsMethod.getReturnType().isAssignableFrom( plainStats.getClass() ) ) :
"Stats returned from " + objectName + " getStats() should be assignable to " +
specificStatsMethod.getReturnType().getName();
checkStats( mon, plainStats );