public ClosureStaticMetaMethod(String name, Class declaringClass, Closure c, Class[] paramTypes) { super(paramTypes); this.callable = c; this.declaringClass = ReflectionCache.getCachedClass(declaringClass); this.name = name; }
public CachedMethod searchMethods(String name, CachedClass[] parameterTypes) { CachedMethod[] methods = getMethods(); CachedMethod res = null; for (CachedMethod m : methods) { if (m.getName().equals(name) && ReflectionCache.arrayContentsEq(parameterTypes, m.getParameterTypes()) && (res == null || res.getReturnType().isAssignableFrom(m.getReturnType()))) res = m; } return res; }
classToTransformTo = ReflectionCache.autoboxType(classToTransformTo); classToTransformFrom = ReflectionCache.autoboxType(classToTransformFrom); if (classToTransformTo == classToTransformFrom) return true; return ReflectionCache.isAssignableFrom(classToTransformTo, classToTransformFrom);
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); } }
public boolean isAssignableFrom(Class classToTransformFrom) { return classToTransformFrom == null || classToTransformFrom == STRING_CLASS || ReflectionCache.isAssignableFrom(GSTRING_CLASS,classToTransformFrom); }
if (ReflectionCache.isArray(type)) { return asArray(object, type); if (ReflectionCache.isAssignableFrom(type, aClass)) { return object;
public static Object[] primitiveArrayBox(Object array) { int size = Array.getLength(array); Object[] ret = (Object[]) Array.newInstance(ReflectionCache.autoboxType(array.getClass().getComponentType()), size); for (int i = 0; i < size; i++) { ret[i] = Array.get(array, i); } return ret; }
public static Object castToType(Object object, Class type) { if (object == null) return null; if (type == Object.class) return object; final Class aClass = object.getClass(); if (type == aClass) return object; if (type.isAssignableFrom(aClass)) return object; if (ReflectionCache.isArray(type)) return asArray(object, type); if (type.isEnum()) { return ShortTypeHandling.castToEnum(object, type); } else if (Collection.class.isAssignableFrom(type)) { return continueCastOnCollection(object, type); } else if (type == String.class) { return InvokerHelper.toString(object); } else if (type == Character.class) { return ShortTypeHandling.castToChar(object); } else if (type == Boolean.class) { return castToBoolean(object); } else if (type == Class.class) { return ShortTypeHandling.castToClass(object); } else if (type.isPrimitive()) { return castToPrimitive(object, type); } return continueCastOnNumber(object, type); }
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); } }
@Override public boolean isAssignableFrom(Class argument) { return argument == null || Closure.class.isAssignableFrom(argument) || ReflectionCache.isAssignableFrom(getTheClass(), argument); }
if (ReflectionCache.isArray(type)) { return asArray(object, type); if (ReflectionCache.isAssignableFrom(type, aClass)) { return object;
Class vargsClass = ReflectionCache.autoboxType(vargsClassOrig); Object[] argumentArray = argumentArrayOrig.clone(); MetaClassHelper.unwrap(argumentArray);
if (clazz!=String[].class && ReflectionCache.isArray(clazz)) { try { return (T) asArrayType(col, clazz);
public CachedClass getDeclaringClass() { return ReflectionCache.getCachedClass(declaringClass); }
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 (Iterator it = getInterfaces().iterator(); it.hasNext(); ) { CachedClass inf = (CachedClass) it.next(); ReflectionCache.isAssignableFrom(klazz, inf.cachedClass); } for (CachedClass cur = this; cur != null; cur = cur.getCachedSuperClass()) { ReflectionCache.setAssignableFrom(cur.cachedClass, klazz); } }
if (classToTransformTo == Object.class) return true; classToTransformTo = ReflectionCache.autoboxType(classToTransformTo); classToTransformFrom = ReflectionCache.autoboxType(classToTransformFrom); if (classToTransformTo == classToTransformFrom) return true; return ReflectionCache.isAssignableFrom(classToTransformTo, classToTransformFrom);
public boolean isAssignableFrom(Class argument) { return argument == null || ReflectionCache.isAssignableFrom(getTheClass(), argument); }
if (ReflectionCache.isArray(type)) { return asArray(object, type); if (ReflectionCache.isAssignableFrom(type, aClass)) { return object;
objectDistance+=4; Class clazz = ReflectionCache.autoboxType(argument); while (clazz != null) { if (clazz == parameter.getTheClass()) break;
public CachedMethod searchMethods(String name, CachedClass[] parameterTypes) { CachedMethod[] methods = getMethods(); CachedMethod res = null; for (int i = 0; i < methods.length; i++) { CachedMethod m = methods[i]; if (m.getName().equals(name) && ReflectionCache.arrayContentsEq(parameterTypes, m.getParameterTypes()) && (res == null || res.getReturnType().isAssignableFrom(m.getReturnType()))) res = m; } return res; }