/** * <p> * Return the list of <code>Class</code> objects representing every types a * given class implements. * </p> * * @param type a <code>Class</code> value * @return a <code>Set</code> value */ public static Set<Class< ? >> findAllTypes(final Class< ? > type) { final Set<Class< ? >> superTypes = Misc.findAllSuperTypes(type); final Set<Class< ? >> result = new HashSet<Class< ? >>(superTypes); for (final Class< ? > i : superTypes) { result.addAll(Misc.findAllInterfaces(i)); } result.addAll(Misc.findAllInterfaces(type)); return result; }
/** * <p> * Return the list of <code>Class</code> objects representing all interfaces a given class implements. * </p> * * @param type * a <code>Class</code> value * @return a <code>List</code> value */ public static Set<Class<?>> findAllInterfaces(final Class<?> type) { final Set<Class<?>> classes = new HashSet<Class<?>>(); final Class<?>[] interfaces = type.getInterfaces(); for (final Class<?> i : interfaces) { classes.add(i); classes.addAll(Misc.findAllInterfaces(i)); } final Class<?> superClass = type.getSuperclass(); if (superClass != null) { classes.addAll(Misc.findAllInterfaces(superClass)); } return classes; }
/** * <p> * Return the list of <code>Class</code> objects representing every types a given class implements. * </p> * * @param type * a <code>Class</code> value * @return a <code>Set</code> value */ public static Set<Class<?>> findAllTypes(final Class<?> type) { final Set<Class<?>> superTypes = Misc.findAllSuperTypes(type); final Set<Class<?>> result = new HashSet<Class<?>>(superTypes); for (final Class<?> i : superTypes) { result.addAll(Misc.findAllInterfaces(i)); } result.addAll(Misc.findAllInterfaces(type)); return result; }
/** * <p> * Return the list of <code>Class</code> objects representing all interfaces a given class implements. * </p> * * @param type * a <code>Class</code> value * @return a <code>List</code> value */ public static Set<Class<?>> findAllInterfaces(final Class<?> type) { final Set<Class<?>> classes = new HashSet<Class<?>>(); final Class<?>[] interfaces = type.getInterfaces(); for (final Class<?> i : interfaces) { classes.add(i); classes.addAll(Misc.findAllInterfaces(i)); } final Class<?> superClass = type.getSuperclass(); if (superClass != null) { classes.addAll(Misc.findAllInterfaces(superClass)); } return classes; }
/** * <p> * Return the list of <code>Class</code> objects representing every types a given class implements. * </p> * * @param type * a <code>Class</code> value * @return a <code>Set</code> value */ public static Set<Class<?>> findAllTypes(final Class<?> type) { final Set<Class<?>> superTypes = Misc.findAllSuperTypes(type); final Set<Class<?>> result = new HashSet<Class<?>>(superTypes); for (final Class<?> i : superTypes) { result.addAll(Misc.findAllInterfaces(i)); } result.addAll(Misc.findAllInterfaces(type)); return result; }
/** * <p> * Return the list of <code>Class</code> objects representing all interfaces a * given class implements. * </p> * * @param type a <code>Class</code> value * @return a <code>List</code> value */ public static Set<Class< ? >> findAllInterfaces(final Class< ? > type) { final Set<Class< ? >> classes = new HashSet<Class< ? >>(); final Class< ? >[] interfaces = type.getInterfaces(); for (final Class< ? > i : interfaces) { classes.add(i); classes.addAll(Misc.findAllInterfaces(i)); } final Class< ? > superClass = type.getSuperclass(); if (superClass != null) { classes.addAll(Misc.findAllInterfaces(superClass)); } return classes; }
/** * Return a proxy that log method invocations through the provided logger. * * @param <T> the target object type * @param target the target object method invocations should be forwarded to * @param logger the logger to use for logging * @return a proxy that log method invocations through the provided logger. * @see LoggingInvocationHandler * @see InvocationHandler * @see Proxy */ @SuppressWarnings("unchecked") public static <T> T getLoggerProxyFor(final T target, final Logger logger) { final Set<Class< ? >> classes = Misc.findAllInterfaces(target.getClass()); return (T) Proxy.newProxyInstance(Misc.class.getClassLoader(), classes.toArray(new Class[classes.size()]), new LoggingInvocationHandler<T>(target, logger)); }
/** * Return a proxy that log method invocations through the provided logger. * * @param <T> * the target object type * @param target * the target object method invocations should be forwarded to * @param logger * the logger to use for logging * @return a proxy that log method invocations through the provided logger. * @see LoggingInvocationHandler * @see InvocationHandler * @see Proxy */ @SuppressWarnings("unchecked") public static <T> T getLoggerProxyFor(final T target, final Logger logger) { final Set<Class<?>> classes = Misc.findAllInterfaces(target.getClass()); return (T) Proxy.newProxyInstance(Misc.class.getClassLoader(), classes.toArray(new Class[classes.size()]), new LoggingInvocationHandler<T>(target, logger)); }
/** * Return a proxy that log method invocations through the provided logger. * * @param <T> * the target object type * @param target * the target object method invocations should be forwarded to * @param logger * the logger to use for logging * @return a proxy that log method invocations through the provided logger. * @see LoggingInvocationHandler * @see InvocationHandler * @see Proxy */ @SuppressWarnings("unchecked") public static <T> T getLoggerProxyFor(final T target, final Logger logger) { final Set<Class<?>> classes = Misc.findAllInterfaces(target.getClass()); return (T) Proxy.newProxyInstance(Misc.class.getClassLoader(), classes.toArray(new Class[classes.size()]), new LoggingInvocationHandler<T>(target, logger)); }
final Chainer<T> chain = new Chainer<T>(); final Set<Class< ? >> classes = new HashSet<Class< ? >>(); final Set<Class< ? >> initial = Misc.findAllInterfaces(elements.get(0).getClass()); classes.addAll(initial); for (final T element : elements) { final Set<Class< ? >> interfaces = Misc.findAllInterfaces(element.getClass()); classes.retainAll(interfaces);
final Chainer<T> chain = new Chainer<T>(); final Set<Class<?>> classes = new HashSet<Class<?>>(); final Set<Class<?>> initial = Misc.findAllInterfaces(elements.get(0).getClass()); classes.addAll(initial); for (final T element : elements) { final Set<Class<?>> interfaces = Misc.findAllInterfaces(element.getClass()); classes.retainAll(interfaces);
final Chainer<T> chain = new Chainer<T>(); final Set<Class<?>> classes = new HashSet<Class<?>>(); final Set<Class<?>> initial = Misc.findAllInterfaces(elements.get(0).getClass()); classes.addAll(initial); for (final T element : elements) { final Set<Class<?>> interfaces = Misc.findAllInterfaces(element.getClass()); classes.retainAll(interfaces);