485
486 switch (kind) {
487 case ANNOTATION_TYPE:
488 case INTERFACE:
489 modifiers.remove(Modifier.ABSTRACT);
490 break;
491
492 case ENUM:
493 modifiers.remove(Modifier.FINAL);
494 modifiers.remove(Modifier.ABSTRACT);
495 modifiers.remove(Modifier.SEALED);
496 break;
497
498 case RECORD:
499 modifiers.remove(Modifier.FINAL);
500 break;
501
502 case METHOD:
503 case FIELD:
504 Element enclosingElement = e.getEnclosingElement();
505 if (enclosingElement != null &&
506 enclosingElement.getKind().isInterface()) {
507 modifiers.remove(Modifier.PUBLIC);
508 modifiers.remove(Modifier.ABSTRACT); // only for methods
509 modifiers.remove(Modifier.STATIC); // only for fields
510 modifiers.remove(Modifier.FINAL); // only for fields
511 }
512 break;
513
514 }
515 if (!modifiers.isEmpty()) {
516 writer.print(modifiers.stream()
517 .map(Modifier::toString)
518 .collect(Collectors.joining(" ", "", " ")));
519 }
520 }
521
522 private void printFormalTypeParameters(Parameterizable e,
523 boolean pad) {
524 List<? extends TypeParameterElement> typeParams = e.getTypeParameters();
525 if (!typeParams.isEmpty()) {
526 writer.print(typeParams.stream()
527 .map(tpe -> annotationsToString(tpe) + tpe.toString())
528 .collect(Collectors.joining(", ", "<", ">")));
529 if (pad)
530 writer.print(" ");
|
485
486 switch (kind) {
487 case ANNOTATION_TYPE:
488 case INTERFACE:
489 modifiers.remove(Modifier.ABSTRACT);
490 break;
491
492 case ENUM:
493 modifiers.remove(Modifier.FINAL);
494 modifiers.remove(Modifier.ABSTRACT);
495 modifiers.remove(Modifier.SEALED);
496 break;
497
498 case RECORD:
499 modifiers.remove(Modifier.FINAL);
500 break;
501
502 case METHOD:
503 case FIELD:
504 Element enclosingElement = e.getEnclosingElement();
505 if (enclosingElement != null) {
506 if (enclosingElement.getKind().isInterface()) {
507 modifiers.remove(Modifier.PUBLIC);
508 modifiers.remove(Modifier.ABSTRACT); // only for methods
509 modifiers.remove(Modifier.STATIC); // only for fields
510 modifiers.remove(Modifier.FINAL); // only for fields
511 } else if (enclosingElement.getKind() == RECORD) {
512 modifiers.remove(Modifier.STRICTFP);
513 }
514 }
515 break;
516
517 }
518 if (!modifiers.isEmpty()) {
519 writer.print(modifiers.stream()
520 .map(Modifier::toString)
521 .collect(Collectors.joining(" ", "", " ")));
522 }
523 }
524
525 private void printFormalTypeParameters(Parameterizable e,
526 boolean pad) {
527 List<? extends TypeParameterElement> typeParams = e.getTypeParameters();
528 if (!typeParams.isEmpty()) {
529 writer.print(typeParams.stream()
530 .map(tpe -> annotationsToString(tpe) + tpe.toString())
531 .collect(Collectors.joining(", ", "<", ">")));
532 if (pad)
533 writer.print(" ");
|