public void visitCtNamedElement(CtNamedElement namedElement, CtCompilationUnit sourceCompilationUnit) { writeAnnotations(namedElement); if (env.isPreserveLineNumbers()) { getPrinterHelper().adjustStartPosition(namedElement); } }
@Override public void visitCtAnonymousExecutable(CtAnonymousExecutable impl) { elementPrinterHelper.writeComment(impl); elementPrinterHelper.writeAnnotations(impl); elementPrinterHelper.writeModifiers(impl); scan(impl.getBody()); }
@Override public <A extends Annotation> void visitCtAnnotation(CtAnnotation<A> annotation) { elementPrinterHelper.writeAnnotations(annotation); printer.writeSeparator("@"); scan(annotation.getAnnotationType()); if (!annotation.getValues().isEmpty()) { elementPrinterHelper.printList(annotation.getValues().entrySet(), null, false, "(", false, false, ",", true, false, ")", e -> { if ((annotation.getValues().size() == 1 && "value".equals(e.getKey())) == false) { //it is not a default value attribute. We must print a attribute name too. printer.writeIdentifier(e.getKey()).writeSpace().writeOperator("=").writeSpace(); } elementPrinterHelper.writeAnnotationElement(annotation.getFactory(), e.getValue()); }); } }
@Override public void visitCtTypeParameterReference(CtTypeParameterReference ref) { if (ref.isImplicit()) { return; } elementPrinterHelper.writeAnnotations(ref); if (printQualified(ref)) { elementPrinterHelper.writeQualifiedName(ref.getQualifiedName()); } else { printer.writeIdentifier(ref.getSimpleName()); } }
@Override public void visitCtTypeParameter(CtTypeParameter typeParameter) { elementPrinterHelper.writeAnnotations(typeParameter); printer.writeIdentifier(typeParameter.getSimpleName()); if (typeParameter.getSuperclass() != null && typeParameter.getSuperclass().isImplicit() == false) { printer.writeSpace().writeKeyword("extends").writeSpace(); scan(typeParameter.getSuperclass()); } }
@Override public String printPackageInfo(CtPackage pack) { reset(); elementPrinterHelper.writeComment(pack); // we need to compute imports only for annotations // we don't want to get all imports coming from content of package for (CtAnnotation annotation : pack.getAnnotations()) { this.importsContext.computeImports(annotation); } elementPrinterHelper.writeAnnotations(pack); if (!pack.isUnnamedPackage()) { elementPrinterHelper.writePackageLine(pack.getQualifiedName()); } elementPrinterHelper.writeImports(this.importsContext.getAllImports()); return printer.getPrinterHelper().toString(); }
@Override public <T> void visitCtParameter(CtParameter<T> parameter) { elementPrinterHelper.writeComment(parameter); elementPrinterHelper.writeAnnotations(parameter); elementPrinterHelper.writeModifiers(parameter); if (parameter.isVarArgs()) { scan(((CtArrayTypeReference<T>) parameter.getType()).getComponentType()); printer.writeSeparator("..."); } else { scan(parameter.getType()); } printer.writeSpace(); printer.writeIdentifier(parameter.getSimpleName()); }
elementPrinterHelper.writeAnnotations(ref); printer.writeKeyword(ref.getSimpleName()); return; elementPrinterHelper.writeAnnotations(ref); if (ref.isLocalType()) { printer.writeIdentifier(ref.getSimpleName().replaceAll("^[0-9]*", "")); elementPrinterHelper.writeAnnotations(ref); printer.writeIdentifier(ref.getSimpleName());
/** * Enters a statement. */ protected void enterCtStatement(CtStatement s) { elementPrinterHelper.writeComment(s, CommentOffset.BEFORE); getPrinterHelper().mapLine(s, sourceCompilationUnit); if (!context.isNextForVariable()) { //TODO AnnotationLoopTest#testAnnotationDeclaredInForInit expects that annotations of next for variables are not printed //but may be correct is that the next variables are not annotated, because they might have different annotation then first param! elementPrinterHelper.writeAnnotations(s); } if (!context.isFirstForVariable() && !context.isNextForVariable()) { if (s.getLabel() != null) { printer.writeIdentifier(s.getLabel()).writeSpace().writeSeparator(":").writeSpace(); } } }
@Override public void visitCtWildcardReference(CtWildcardReference wildcardReference) { if (wildcardReference.isImplicit()) { return; } elementPrinterHelper.writeAnnotations(wildcardReference); printer.writeSeparator("?"); // we ignore printing "extends Object" except if it's explicit if (!wildcardReference.isDefaultBoundingType() || !wildcardReference.getBoundingType().isImplicit()) { if (wildcardReference.isUpper()) { printer.writeSpace().writeKeyword("extends").writeSpace(); } else { printer.writeSpace().writeKeyword("super").writeSpace(); } scan(wildcardReference.getBoundingType()); } }