private static Object findInfluences(Object influences, Class aClass) { if (aClass!=null) { // This class is an influence influences=LazyList.add(influences,aClass); // So are the super classes influences=findInfluences(influences,aClass.getSuperclass()); // So are the interfaces Class[] ifs = aClass.getInterfaces(); for (int i=0;ifs!=null && i<ifs.length;i++) influences=findInfluences(influences,ifs[i]); } return influences; }
private static List<Class<?>> findInfluences(List<Class<?>> influences, Class<?> aClass) { if (aClass != null) { if (!influences.contains(aClass)) { // This class is a new influence influences.add(aClass); } // So are the super classes influences = findInfluences(influences, aClass.getSuperclass()); // So are the interfaces Class<?>[] ifs = aClass.getInterfaces(); for (int i = 0; ifs != null && i < ifs.length; i++) influences = findInfluences(influences, ifs[i]); } return influences; }
private static List<Class<?>> findInfluences(List<Class<?>> influences, Class<?> aClass) { if (aClass!=null) { // This class is an influence influences.add(aClass); String pName = aClass.getPackage().getName(); String cName = aClass.getName().substring(pName.length() + 1); String mName = pName + ".jmx." + cName + "MBean"; try { Class<?> mbeanClazz = Class.forName(mName); LOG.debug("MBean Influence found for " + aClass.getSimpleName()); influences.add(mbeanClazz); } catch (ClassNotFoundException cnfe) { LOG.debug("No MBean Influence for " + aClass.getSimpleName()); } // So are the super classes influences=findInfluences(influences,aClass.getSuperclass()); // So are the interfaces Class<?>[] ifs = aClass.getInterfaces(); for (int i=0;ifs!=null && i<ifs.length;i++) influences=findInfluences(influences,ifs[i]); } return influences; }
private static List<Class<?>> findInfluences(List<Class<?>> influences, Class<?> aClass) { if (aClass!=null) { // This class is an influence influences.add(aClass); String pName = aClass.getPackage().getName(); String cName = aClass.getName().substring(pName.length() + 1); String mName = pName + ".jmx." + cName + "MBean"; try { Class<?> mbeanClazz = Class.forName(mName); LOG.debug("MBean Influence found for " + aClass.getSimpleName()); influences.add(mbeanClazz); } catch (ClassNotFoundException cnfe) { LOG.debug("No MBean Influence for " + aClass.getSimpleName()); } // So are the super classes influences=findInfluences(influences,aClass.getSuperclass()); // So are the interfaces Class<?>[] ifs = aClass.getInterfaces(); for (int i=0;ifs!=null && i<ifs.length;i++) influences=findInfluences(influences,ifs[i]); } return influences; }
List<Class<?>> influences = findInfluences(new ArrayList<Class<?>>(), _managed.getClass());
List<Class<?>> influences = findInfluences(new ArrayList<Class<?>>(), _managed.getClass());
List<Class<?>> influences = new ArrayList<>(); influences.add(this.getClass()); // always add MBean itself influences = findInfluences(influences, _managed.getClass());
Object influences = findInfluences(null, _managed.getClass());