public boolean isAssignableFrom(Class classToTransformFrom) { return classToTransformFrom == null || classToTransformFrom == STRING_CLASS || ReflectionCache.isAssignableFrom(GSTRING_CLASS,classToTransformFrom); }
@Override public boolean isAssignableFrom(Class argument) { return argument == null || Closure.class.isAssignableFrom(argument) || ReflectionCache.isAssignableFrom(getTheClass(), argument); }
public boolean isAssignableFrom(Class argument) { return argument == null || ReflectionCache.isAssignableFrom(getTheClass(), argument); }
public boolean isDirectlyAssignable(Object argument) { return ReflectionCache.isAssignableFrom(getTheClass(), argument.getClass()); }
public CachedClass(Class klazz, ClassInfo classInfo) { cachedClass = klazz; this.classInfo = classInfo; isArray = klazz.isArray(); isPrimitive = klazz.isPrimitive(); modifiers = klazz.getModifiers(); isInterface = klazz.isInterface(); isNumber = Number.class.isAssignableFrom(klazz); for (CachedClass inf : getInterfaces()) { ReflectionCache.isAssignableFrom(klazz, inf.cachedClass); } for (CachedClass cur = this; cur != null; cur = cur.getCachedSuperClass()) { ReflectionCache.setAssignableFrom(cur.cachedClass, klazz); } }
return ReflectionCache.isAssignableFrom(classToTransformTo, classToTransformFrom);
private void inheritInterfaceNewMetaMethods(Set<CachedClass> interfaces) { // add methods declared by DGM for interfaces for (CachedClass cls : interfaces) { MetaMethod methods[] = getNewMetaMethods(cls); for (MetaMethod method : methods) { boolean skip = false; // skip DGM methods on an interface if the class already has the method // but don't skip for GroovyObject-related methods as it breaks things :-( if (method instanceof GeneratedMetaMethod && !isAssignableFrom(GroovyObject.class, method.getDeclaringClass().getTheClass())) { for (Method m : theClass.getMethods()) { if (method.getName().equals(m.getName()) // below not true for DGM#push and also co-variant return scenarios //&& method.getReturnType().equals(m.getReturnType()) && MetaMethod.equal(method.getParameterTypes(), m.getParameterTypes())) { skip = true; break; } } } if (!skip) { newGroovyMethodsSet.add(method); addMetaMethodToIndex(method, mainClassMethodHeader); } } } }
public boolean isAssignableFrom(Class classToTransformFrom) { return classToTransformFrom == null || classToTransformFrom == STRING_CLASS || ReflectionCache.isAssignableFrom(GSTRING_CLASS,classToTransformFrom); }
public boolean isAssignableFrom(Class classToTransformFrom) { return classToTransformFrom == null || classToTransformFrom == STRING_CLASS || ReflectionCache.isAssignableFrom(GSTRING_CLASS,classToTransformFrom); }
public boolean isAssignableFrom(Class classToTransformFrom) { return classToTransformFrom == null || classToTransformFrom == STRING_CLASS || ReflectionCache.isAssignableFrom(GSTRING_CLASS,classToTransformFrom); }
public boolean isAssignableFrom(Class classToTransformFrom) { return classToTransformFrom == null || classToTransformFrom == STRING_CLASS || ReflectionCache.isAssignableFrom(GSTRING_CLASS,classToTransformFrom); }
public boolean isAssignableFrom(Class argument) { return argument == null || ReflectionCache.isAssignableFrom(getTheClass(), argument); }
public boolean isAssignableFrom(Class argument) { return argument == null || ReflectionCache.isAssignableFrom(getTheClass(), argument); }
public boolean isDirectlyAssignable(Object argument) { return ReflectionCache.isAssignableFrom(getTheClass(), argument.getClass()); }
public boolean isDirectlyAssignable(Object argument) { return ReflectionCache.isAssignableFrom(getTheClass(), argument.getClass()); }
boolean isDirectlyAssignable(Object argument) { return ReflectionCache.isAssignableFrom(getTheClass(), argument.getClass()); }
public boolean isAssignableFrom(Class argument) { return argument == null || ReflectionCache.isAssignableFrom(getTheClass(), argument); }
public boolean isAssignableFrom(Class argument) { return argument == null || ReflectionCache.isAssignableFrom(getTheClass(), argument); }
public boolean isDirectlyAssignable(Object argument) { return ReflectionCache.isAssignableFrom(getTheClass(), argument.getClass()); }
public CachedClass(Class klazz, ClassInfo classInfo) { cachedClass = klazz; this.classInfo = classInfo; isArray = klazz.isArray(); isPrimitive = klazz.isPrimitive(); modifiers = klazz.getModifiers(); isInterface = klazz.isInterface(); isNumber = Number.class.isAssignableFrom(klazz); for (CachedClass inf : getInterfaces()) { ReflectionCache.isAssignableFrom(klazz, inf.cachedClass); } for (CachedClass cur = this; cur != null; cur = cur.getCachedSuperClass()) { ReflectionCache.setAssignableFrom(cur.cachedClass, klazz); } }