public Set<CachedClass> initValue() { Set<CachedClass> res = new HashSet<CachedClass> (0); if (getTheClass().isInterface()) res.add(CachedClass.this); Class[] classes = getTheClass().getInterfaces(); for (Class cls : classes) { final CachedClass aClass = ReflectionCache.getCachedClass(cls); if (!res.contains(aClass)) res.addAll(aClass.getInterfaces()); } final CachedClass superClass = getCachedSuperClass(); if (superClass != null) res.addAll(superClass.getInterfaces()); return res; } };
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 MetaMethod[] getNewMetaMethods() { List<MetaMethod> arr = new ArrayList<MetaMethod>(Arrays.asList(classInfo.newMetaMethods)); final MetaClass metaClass = classInfo.getStrongMetaClass(); if (metaClass instanceof ExpandoMetaClass) { arr.addAll(((ExpandoMetaClass)metaClass).getExpandoMethods()); } if (isInterface) { MetaClass mc = ReflectionCache.OBJECT_CLASS.classInfo.getStrongMetaClass(); addSubclassExpandos(arr, mc); } else { for (CachedClass cls = this; cls != null; cls = cls.getCachedSuperClass()) { MetaClass mc = cls.classInfo.getStrongMetaClass(); addSubclassExpandos(arr, mc); } } for (CachedClass inf : getInterfaces()) { MetaClass mc = inf.classInfo.getStrongMetaClass(); addSubclassExpandos(arr, mc); } return arr.toArray(MetaMethod.EMPTY_ARRAY); }
LinkedList<CachedClass> superClasses = new LinkedList<CachedClass>(); superClasses.add(ReflectionCache.OBJECT_CLASS); Set interfaces = theCachedClass.getInterfaces(); } else { LinkedList<CachedClass> superClasses = getSuperClasses(); LinkedList<CachedClass> interfaces = new LinkedList<CachedClass>(theCachedClass.getInterfaces());
/** * Fills the method index */ private void fillMethodIndex() { mainClassMethodHeader = metaMethodIndex.getHeader(theClass); LinkedList<CachedClass> superClasses = getSuperClasses(); CachedClass firstGroovySuper = calcFirstGroovySuperClass(superClasses); Set<CachedClass> interfaces = theCachedClass.getInterfaces(); addInterfaceMethods(interfaces); populateMethods(superClasses, firstGroovySuper); inheritInterfaceNewMetaMethods(interfaces); if (isGroovyObject) { metaMethodIndex.copyMethodsToSuper(); connectMultimethods(superClasses, firstGroovySuper); removeMultimethodsOverloadedWithPrivateMethods(); replaceWithMOPCalls(theCachedClass.mopMethods); } }
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); } }
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 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); } }
public Set<CachedClass> initValue() { Set<CachedClass> res = new HashSet<CachedClass> (0); if (getTheClass().isInterface()) res.add(CachedClass.this); Class[] classes = getTheClass().getInterfaces(); for (Class cls : classes) { final CachedClass aClass = ReflectionCache.getCachedClass(cls); if (!res.contains(aClass)) res.addAll(aClass.getInterfaces()); } final CachedClass superClass = getCachedSuperClass(); if (superClass != null) res.addAll(superClass.getInterfaces()); return res; } };
public Set<CachedClass> initValue() { HashSet<CachedClass> res = new HashSet<CachedClass> (0); if (getTheClass().isInterface()) res.add(CachedClass.this); Class[] classes = getTheClass().getInterfaces(); for (int i = 0; i < classes.length; i++) { final CachedClass aClass = ReflectionCache.getCachedClass(classes[i]); if (!res.contains(aClass)) res.addAll(aClass.getInterfaces()); } final CachedClass superClass = getCachedSuperClass(); if (superClass != null) res.addAll(superClass.getInterfaces()); return res; } };
public Set<CachedClass> initValue() { HashSet<CachedClass> res = new HashSet<CachedClass> (0); if (getTheClass().isInterface()) res.add(CachedClass.this); Class[] classes = getTheClass().getInterfaces(); for (int i = 0; i < classes.length; i++) { final CachedClass aClass = ReflectionCache.getCachedClass(classes[i]); if (!res.contains(aClass)) res.addAll(aClass.getInterfaces()); } final CachedClass superClass = getCachedSuperClass(); if (superClass != null) res.addAll(superClass.getInterfaces()); return res; } };
public Set getOwnInterfaces() { if (ownInterfaces == null) { ownInterfaces = new HashSet (0); if (getTheClass().isInterface()) ownInterfaces.add(this); Class[] classes = getTheClass().getInterfaces(); for (int i = 0; i < classes.length; i++) { final CachedClass aClass = ReflectionCache.getCachedClass(classes[i]); if (!ownInterfaces.contains(aClass)) ownInterfaces.addAll(aClass.getInterfaces()); } final CachedClass superClass = getCachedSuperClass(); if (superClass != null) ownInterfaces.addAll(superClass.getInterfaces()); } return ownInterfaces; }
public Set getInterfaces() { if (interfaces == null) { interfaces = new HashSet (0); if (getTheClass().isInterface()) interfaces.add(this); Class[] classes = getTheClass().getInterfaces(); for (int i = 0; i < classes.length; i++) { final CachedClass aClass = ReflectionCache.getCachedClass(classes[i]); if (!interfaces.contains(aClass)) interfaces.addAll(aClass.getInterfaces()); } final CachedClass superClass = getCachedSuperClass(); if (superClass != null) interfaces.addAll(superClass.getInterfaces()); } return interfaces; }
public MetaMethod[] getNewMetaMethods() { List<MetaMethod> arr = new ArrayList<MetaMethod>(); arr.addAll(Arrays.asList(classInfo.newMetaMethods)); final MetaClass metaClass = classInfo.getStrongMetaClass(); if (metaClass != null && metaClass instanceof ExpandoMetaClass) { arr.addAll(((ExpandoMetaClass)metaClass).getExpandoMethods()); } if (isInterface) { MetaClass mc = ReflectionCache.OBJECT_CLASS.classInfo.getStrongMetaClass(); addSubclassExpandos(arr, mc); } else { for (CachedClass cls = this; cls != null; cls = cls.getCachedSuperClass()) { MetaClass mc = cls.classInfo.getStrongMetaClass(); addSubclassExpandos(arr, mc); } } for (CachedClass inf : getInterfaces()) { MetaClass mc = inf.classInfo.getStrongMetaClass(); addSubclassExpandos(arr, mc); } return arr.toArray(new MetaMethod[arr.size()]); }
public MetaMethod[] getNewMetaMethods() { ArrayList<MetaMethod> arr = new ArrayList<MetaMethod>(); arr.addAll(Arrays.asList(classInfo.newMetaMethods)); final MetaClass metaClass = classInfo.getStrongMetaClass(); if (metaClass != null && metaClass instanceof ExpandoMetaClass) { arr.addAll(((ExpandoMetaClass)metaClass).getExpandoMethods()); } if (isInterface) { MetaClass mc = ReflectionCache.OBJECT_CLASS.classInfo.getStrongMetaClass(); addSubclassExpandos(arr, mc); } else { for (CachedClass cls = this; cls != null; cls = cls.getCachedSuperClass()) { MetaClass mc = cls.classInfo.getStrongMetaClass(); addSubclassExpandos(arr, mc); } } for (CachedClass inf : getInterfaces()) { MetaClass mc = inf.classInfo.getStrongMetaClass(); addSubclassExpandos(arr, mc); } return arr.toArray(new MetaMethod[arr.size()]); }
public MetaMethod[] getNewMetaMethods() { ArrayList<MetaMethod> arr = new ArrayList<MetaMethod>(); arr.addAll(Arrays.asList(classInfo.newMetaMethods)); final MetaClass metaClass = classInfo.getStrongMetaClass(); if (metaClass != null && metaClass instanceof ExpandoMetaClass) { arr.addAll(((ExpandoMetaClass)metaClass).getExpandoMethods()); } if (isInterface) { MetaClass mc = ReflectionCache.OBJECT_CLASS.classInfo.getStrongMetaClass(); addSubclassExpandos(arr, mc); } else { for (CachedClass cls = this; cls != null; cls = cls.getCachedSuperClass()) { MetaClass mc = cls.classInfo.getStrongMetaClass(); addSubclassExpandos(arr, mc); } } for (CachedClass inf : getInterfaces()) { MetaClass mc = inf.classInfo.getStrongMetaClass(); addSubclassExpandos(arr, mc); } return arr.toArray(new MetaMethod[arr.size()]); }
private void fillMethodIndex() { mainClassMethodHeader = metaMethodIndex.getHeader(theClass); LinkedList superClasses = getSuperClasses(); CachedClass firstGroovySuper = calcFirstGroovySuperClass(superClasses); Set interfaces = theCachedClass.getInterfaces(); addInterfaceMethods(interfaces); populateMethods(superClasses, firstGroovySuper); inheritInterfaceNewMetaMethods(interfaces); if (isGroovyObject) { metaMethodIndex.copyMethodsToSuper(); connectMultimethods(superClasses, firstGroovySuper); removeMultimethodsOverloadedWithPrivateMethods(); replaceWithMOPCalls(theCachedClass.mopMethods); } }
private void fillMethodIndex() { mainClassMethodHeader = metaMethodIndex.getHeader(theClass); LinkedList superClasses = getSuperClasses(); CachedClass firstGroovySuper = calcFirstGroovySuperClass(superClasses); Set<CachedClass> interfaces = theCachedClass.getInterfaces(); addInterfaceMethods(interfaces); populateMethods(superClasses, firstGroovySuper); inheritInterfaceNewMetaMethods(interfaces); if (isGroovyObject) { metaMethodIndex.copyMethodsToSuper(); connectMultimethods(superClasses, firstGroovySuper); removeMultimethodsOverloadedWithPrivateMethods(); replaceWithMOPCalls(theCachedClass.mopMethods); } }
private void fillMethodIndex() { mainClassMethodHeader = metaMethodIndex.getHeader(theClass); LinkedList superClasses = getSuperClasses(); CachedClass firstGroovySuper = calcFirstGroovySuperClass(superClasses); Set<CachedClass> interfaces = theCachedClass.getInterfaces(); addInterfaceMethods(interfaces); populateMethods(superClasses, firstGroovySuper); inheritInterfaceNewMetaMethods(interfaces); if (isGroovyObject) { metaMethodIndex.copyMethodsToSuper(); connectMultimethods(superClasses, firstGroovySuper); removeMultimethodsOverloadedWithPrivateMethods(); replaceWithMOPCalls(theCachedClass.mopMethods); } }
private void fillMethodIndex() { mainClassMethodHeader = metaMethodIndex.getHeader(theClass); LinkedList superClasses = getSuperClasses(); CachedClass firstGroovySuper = calcFirstGroovySuperClass(superClasses); Set interfaces = theCachedClass.getInterfaces(); addInterfaceMethods(interfaces); populateMethods(superClasses, firstGroovySuper); inheritInterfaceNewMetaMethods(interfaces); if (isGroovyObject) { metaMethodIndex.copyMethodsToSuper(); connectMultimethods(superClasses, firstGroovySuper); removeMultimethodsOverloadedWithPrivateMethods(); replaceWithMOPCalls(theCachedClass.mopMethods); } }