@Override public IType getDeclaringType() { DotName enclosingClass = info.enclosingClass(); return enclosingClass == null ? this : index.findType(enclosingClass.toString()); }
/** * @param i * @return * @throws SerianalyzerException */ static String makeSignature ( MethodInfo i, boolean fix ) throws SerianalyzerException { StringBuilder sb = new StringBuilder(); sb.append('('); ClassInfo declaringImpl = i.declaringClass(); if ( fix && "<init>".equals(i.name()) && declaringImpl.nestingType() == NestingType.INNER ) { //$NON-NLS-1$ // there seems to be some sort of bug, missing the the outer instance parameter in the constructor if ( !Modifier.isStatic(declaringImpl.flags()) ) { org.jboss.jandex.Type enclosingClass = org.jboss.jandex.Type.create(declaringImpl.enclosingClass(), Kind.CLASS); org.jboss.jandex.Type firstArg = i.parameters().size() > 0 ? i.parameters().get(0) : null; if ( firstArg instanceof TypeVariable ) { firstArg = firstArg.asTypeVariable().bounds().get(0); } if ( firstArg == null || !firstArg.equals(enclosingClass) ) { sb.append(toString(enclosingClass)); } } } for ( org.jboss.jandex.Type p : i.parameters() ) { sb.append(toString(p)); } sb.append(')'); sb.append(toString(i.returnType())); return sb.toString(); }
private void addClass(ClassInfo clazz) { addClassName(clazz.name()); if (clazz.superName() != null) addClassName(clazz.superName()); addTypeList(clazz.typeParameterArray()); addTypeList(clazz.interfaceTypeArray()); addType(clazz.superClassType()); // Inner class data DotName enclosingClass = clazz.enclosingClass(); if (enclosingClass != null) { addClassName(enclosingClass); } String name = clazz.simpleName(); if (name != null) { addString(name); } addEnclosingMethod(clazz.enclosingMethod()); addMethodList(clazz.methodArray()); addFieldList(clazz.fieldArray()); for (Entry<DotName, List<AnnotationInstance>> entry : clazz.annotations().entrySet()) { addClassName(entry.getKey()); for (AnnotationInstance instance: entry.getValue()) { addAnnotation(instance); } } }
stream.writePackedU32(positionOf(clazz.interfaceTypeArray())); DotName enclosingClass = clazz.enclosingClass(); String simpleName = clazz.simpleName();