/** * Find the declaring class that implements or extends an interface. * * @param concrete the concrete class than directly or indirectly * implements or extends an interface class. * @param iface the interface class. * @return the tuple of the declaring class and the generic interface * type. */ public static DeclaringClassInterfacePair getClass(final Class<?> concrete, final Class<?> iface) { return getClass(concrete, iface, concrete); }
/** * Find the declaring class that implements or extends an interface. * * @param concrete the concrete class than directly or indirectly * implements or extends an interface class. * @param iface the interface class. * @return the tuple of the declaring class and the generic interface * type. */ public static DeclaringClassInterfacePair getClass(final Class<?> concrete, final Class<?> iface) { return getClass(concrete, iface, concrete); }
private static DeclaringClassInterfacePair getClass(final Class<?> concrete, final Class<?> iface, Class<?> c) { final Type[] gis = c.getGenericInterfaces(); final DeclaringClassInterfacePair p = getType(concrete, iface, c, gis); if (p != null) { return p; } c = c.getSuperclass(); if (c == null || c == Object.class) { return null; } return getClass(concrete, iface, c); }
private static Class<?> getProviderClassParam(Object provider, Class<?> providerType) { final ReflectionHelper.DeclaringClassInterfacePair pair = ReflectionHelper.getClass(provider.getClass(), providerType); final Class[] classArgs = ReflectionHelper.getParameterizedClassArguments(pair); return classArgs != null ? classArgs[0] : Object.class; } }
private Type getParameterizedType(final Class<?> c) { final DeclaringClassInterfacePair p = ReflectionHelper.getClass( c, ContextResolver.class); final Type[] as = ReflectionHelper.getParameterizedTypeArguments(p); return (as != null) ? as[0] : Object.class; }
private Type getParameterizedType(final Class<?> c) { final DeclaringClassInterfacePair p = ReflectionHelper.getClass( c, ContextResolver.class); final Type[] as = ReflectionHelper.getParameterizedTypeArguments(p); return (as != null) ? as[0] : Object.class; }
private static DeclaringClassInterfacePair getClass(final Class<?> concrete, final Class<?> iface, Class<?> c) { final Type[] gis = c.getGenericInterfaces(); final DeclaringClassInterfacePair p = getType(concrete, iface, c, gis); if (p != null) { return p; } c = c.getSuperclass(); if (c == null || c == Object.class) { return null; } return getClass(concrete, iface, c); }
private static Class<?> getProviderClassParam(Object provider, Class<?> providerType) { final ReflectionHelper.DeclaringClassInterfacePair pair = ReflectionHelper.getClass(provider.getClass(), providerType); final Class[] classArgs = ReflectionHelper.getParameterizedClassArguments(pair); return classArgs != null ? classArgs[0] : Object.class; } }
private int getDistance(final T t) { Integer distance = distanceMap.get(t.getClass()); if (distance != null) { return distance; } final DeclaringClassInterfacePair p = ReflectionHelper.getClass( t.getClass(), declared); final Class[] as = ReflectionHelper.getParameterizedClassArguments(p); Class a = (as != null) ? as[0] : null; distance = 0; while (a != null && a != Object.class) { distance++; a = a.getSuperclass(); } distanceMap.put(t.getClass(), distance); return distance; } }
private int getDistance(final T t) { Integer distance = distanceMap.get(t.getClass()); if (distance != null) { return distance; } final DeclaringClassInterfacePair p = ReflectionHelper.getClass( t.getClass(), declared); final Class[] as = ReflectionHelper.getParameterizedClassArguments(p); Class a = (as != null) ? as[0] : null; distance = 0; while (a != null && a != Object.class) { distance++; a = a.getSuperclass(); } distanceMap.put(t.getClass(), distance); return distance; } }
private static DeclaringClassInterfacePair getType(final Class<?> concrete, final Class<?> iface, final Class<?> c, final Type t) { if (t instanceof Class) { if (t == iface) { return new DeclaringClassInterfacePair(concrete, c, t); } else { return getClass(concrete, iface, (Class<?>) t); } } else if (t instanceof ParameterizedType) { final ParameterizedType pt = (ParameterizedType) t; if (pt.getRawType() == iface) { return new DeclaringClassInterfacePair(concrete, c, t); } else { return getClass(concrete, iface, (Class<?>) pt.getRawType()); } } return null; }
private static DeclaringClassInterfacePair getType(final Class<?> concrete, final Class<?> iface, final Class<?> c, final Type t) { if (t instanceof Class) { if (t == iface) { return new DeclaringClassInterfacePair(concrete, c, t); } else { return getClass(concrete, iface, (Class<?>) t); } } else if (t instanceof ParameterizedType) { final ParameterizedType pt = (ParameterizedType) t; if (pt.getRawType() == iface) { return new DeclaringClassInterfacePair(concrete, c, t); } else { return getClass(concrete, iface, (Class<?>) pt.getRawType()); } } return null; }
ReflectionHelper.getClass(callback.getClass(), InvocationCallback.class);
ReflectionHelper.getClass(callback.getClass(), InvocationCallback.class);
ReflectionHelper.getClass(callback.getClass(), InvocationCallback.class);
/** * Find the declaring class that implements or extends an interface. * * @param concrete the concrete class than directly or indirectly * implements or extends an interface class. * @param iface the interface class. * @return the tuple of the declaring class and the generic interface * type. */ public static DeclaringClassInterfacePair getClass(final Class<?> concrete, final Class<?> iface) { return getClass(concrete, iface, concrete); }
private static Class<?> getProviderClassParam(Object provider, Class<?> providerType) { final ReflectionHelper.DeclaringClassInterfacePair pair = ReflectionHelper.getClass(provider.getClass(), providerType); final Class[] classArgs = ReflectionHelper.getParameterizedClassArguments(pair); return classArgs != null ? classArgs[0] : Object.class; } }
private static DeclaringClassInterfacePair getClass(final Class<?> concrete, final Class<?> iface, Class<?> c) { final Type[] gis = c.getGenericInterfaces(); final DeclaringClassInterfacePair p = getType(concrete, iface, c, gis); if (p != null) { return p; } c = c.getSuperclass(); if (c == null || c == Object.class) { return null; } return getClass(concrete, iface, c); }
private static DeclaringClassInterfacePair getClass(final Class<?> concrete, final Class<?> iface, Class<?> c) { final Type[] gis = c.getGenericInterfaces(); final DeclaringClassInterfacePair p = getType(concrete, iface, c, gis); if (p != null) { return p; } c = c.getSuperclass(); if (c == null || c == Object.class) { return null; } return getClass(concrete, iface, c); }
private static Class<?> getProviderClassParam(Object provider, Class<?> providerType) { final ReflectionHelper.DeclaringClassInterfacePair pair = ReflectionHelper.getClass(provider.getClass(), providerType); final Class[] classArgs = ReflectionHelper.getParameterizedClassArguments(pair); return classArgs != null ? classArgs[0] : Object.class; } }