void (GenericType type, StringBuilder sb, List<TypeAnnotationWriteHelper> typeAnnWriteHelpers) { List<GenericType> enclosingTypes = type.getEnclosingClasses(); typeAnnWriteHelpers = ExprProcessor.writeTypeAnnotationBeforeType(type, sb, typeAnnWriteHelpers); if (enclosingTypes.isEmpty()) { List<String> nestedTypes = Arrays.asList( DecompilerContext.getImportCollector().getNestedName(type.getValue().replace('/', '.')).split("\\.") ); ExprProcessor.writeNestedClass(sb, type, nestedTypes, typeAnnWriteHelpers); ExprProcessor.popNestedTypeAnnotation(typeAnnWriteHelpers); } else { for (GenericType tp : enclosingTypes) { List<String> nestedTypes = Arrays.asList( DecompilerContext.getImportCollector().getNestedName(tp.getValue().replace('/', '.')).split("\\.") ); typeAnnWriteHelpers = ExprProcessor.writeNestedClass(sb, type, nestedTypes, typeAnnWriteHelpers); typeAnnWriteHelpers = appendTypeArguments(tp, sb, typeAnnWriteHelpers); ExprProcessor.popNestedTypeAnnotation(typeAnnWriteHelpers); sb.append('.'); } typeAnnWriteHelpers = ExprProcessor.writeNestedTypeAnnotations(sb, typeAnnWriteHelpers); ExprProcessor.popNestedTypeAnnotation(typeAnnWriteHelpers); sb.append(type.getValue()); } appendTypeArguments(type, sb, typeAnnWriteHelpers); }