private int compareArrayKey(ArrayContentsKey key1, Object key2) { if (key2 instanceof ArrayContentsKey) { ArrayClass k1 = (ArrayClass)key1.getInstanceKey().getConcreteType(); ArrayClass k2 = (ArrayClass)((ArrayContentsKey)key2).getInstanceKey().getConcreteType(); int d1 = k1.getDimensionality(); int d2 = k2.getDimensionality(); if (d1 != d2) { return d1-d2; } else if (k1.getInnermostElementClass() == null) { if (k2.getInnermostElementClass() == null) return comparePrimitives( k1.getReference().getInnermostElementType(), k2.getReference().getInnermostElementType()); else return -1; } else if (k2.getInnermostElementClass() == null) { return 1; } else { return compareConcreteTypes( k1.getInnermostElementClass(), k2.getInnermostElementClass()); } } else return -1; }
private int compareArrayKey(ArrayContentsKey key1, Object key2) { if (key2 instanceof ArrayContentsKey) { ArrayClass k1 = (ArrayClass)key1.getInstanceKey().getConcreteType(); ArrayClass k2 = (ArrayClass)((ArrayContentsKey)key2).getInstanceKey().getConcreteType(); int d1 = k1.getDimensionality(); int d2 = k2.getDimensionality(); if (d1 != d2) { return d1-d2; } else if (k1.getInnermostElementClass() == null) { if (k2.getInnermostElementClass() == null) return comparePrimitives( k1.getReference().getInnermostElementType(), k2.getReference().getInnermostElementType()); else return -1; } else if (k2.getInnermostElementClass() == null) { return 1; } else { return compareConcreteTypes( k1.getInnermostElementClass(), k2.getInnermostElementClass()); } } else return -1; }
ret.add(aCls.getReference()); } else { final IClass inner = aCls.getInnermostElementClass();
ret.add(aCls.getReference()); } else { final IClass inner = aCls.getInnermostElementClass();
ret.add(aCls.getReference()); } else { final IClass inner = aCls.getInnermostElementClass();
ret.add(aCls.getReference()); } else { final IClass inner = aCls.getInnermostElementClass();
/** * Record that we have a new instanceKey for a given declared type. */ private void registerInstanceOfClass(IClass klass, int index) { if (DEBUG) { System.err.println("registerInstanceOfClass " + klass + ' ' + index); } assert !klass.getReference().equals(TypeReference.JavaLangObject); IClass T = klass; registerInstanceWithAllSuperclasses(index, T); registerInstanceWithAllInterfaces(klass, index); if (klass.isArrayClass()) { ArrayClass aClass = (ArrayClass) klass; int dim = aClass.getDimensionality(); registerMultiDimArraysForArrayOfObjectTypes(dim, index, aClass); IClass elementClass = aClass.getInnermostElementClass(); if (elementClass != null) { registerArrayInstanceWithAllSuperclassesOfElement(index, elementClass, dim); registerArrayInstanceWithAllInterfacesOfElement(index, elementClass, dim); } } }
/** * Record that we have a new instanceKey for a given declared type. */ private void registerInstanceOfClass(IClass klass, int index) { if (DEBUG) { System.err.println("registerInstanceOfClass " + klass + ' ' + index); } assert !klass.getReference().equals(TypeReference.JavaLangObject); IClass T = klass; registerInstanceWithAllSuperclasses(index, T); registerInstanceWithAllInterfaces(klass, index); if (klass.isArrayClass()) { ArrayClass aClass = (ArrayClass) klass; int dim = aClass.getDimensionality(); registerMultiDimArraysForArrayOfObjectTypes(dim, index, aClass); IClass elementClass = aClass.getInnermostElementClass(); if (elementClass != null) { registerArrayInstanceWithAllSuperclassesOfElement(index, elementClass, dim); registerArrayInstanceWithAllInterfacesOfElement(index, elementClass, dim); } } }
} else if (klass.isArrayClass()) { ArrayClass arrayKlass = (ArrayClass) klass; IClass innermost = arrayKlass.getInnermostElementClass(); if (innermost != null && innermost.isInterface()) { TypeReference impl = chooseAnImplementor(innermost);
} else if (klass.isArrayClass()) { ArrayClass arrayKlass = (ArrayClass) klass; IClass innermost = arrayKlass.getInnermostElementClass(); if (innermost != null && innermost.isInterface()) { TypeReference impl = chooseAnImplementor(innermost);