< prev index next >
src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java
Print this page
*** 321,383 ****
return this;
}
private void printDirective(ModuleElement.Directive directive) {
indent();
! switch (directive.getKind()) {
! case EXPORTS: // "exports package-name [to module-name-list]"
! {
! ExportsDirective exportsDirective = (ExportsDirective) directive;
writer.print("exports ");
! writer.print(exportsDirective.getPackage().getQualifiedName());
! printModuleList(exportsDirective.getTargetModules());
}
- break;
! case OPENS: // opens package-name [to module-name-list]
! {
! OpensDirective opensDirective = (OpensDirective) directive;
writer.print("opens ");
! writer.print(opensDirective.getPackage().getQualifiedName());
! printModuleList(opensDirective.getTargetModules());
}
- break;
! case PROVIDES: // provides service-name with implementation-name
! {
! ProvidesDirective providesDirective = (ProvidesDirective) directive;
writer.print("provides ");
! writer.print(providesDirective.getService().getQualifiedName());
writer.print(" with ");
! printNameableList(providesDirective.getImplementations());
}
- break;
! case REQUIRES: // requires (static|transitive)* module-name
! {
! RequiresDirective requiresDirective = (RequiresDirective) directive;
writer.print("requires ");
! if (requiresDirective.isStatic())
writer.print("static ");
! if (requiresDirective.isTransitive())
writer.print("transitive ");
! writer.print(requiresDirective.getDependency().getQualifiedName());
}
- break;
! case USES: // uses service-name
! {
! UsesDirective usesDirective = (UsesDirective) directive;
writer.print("uses ");
! writer.print(usesDirective.getService().getQualifiedName());
! }
! break;
!
! default:
! throw new UnsupportedOperationException("unknown directive " + directive);
! }
! writer.println(";");
}
private void printModuleList(List<? extends ModuleElement> modules) {
if (modules != null) {
writer.print(" to ");
--- 321,387 ----
return this;
}
private void printDirective(ModuleElement.Directive directive) {
indent();
! (new PrintDirective(writer)).visit(directive);
! writer.println(";");
! }
!
! private static class PrintDirective implements ModuleElement.DirectiveVisitor<Void, Void> {
! private final PrintWriter writer;
!
! PrintDirective(PrintWriter writer) {
! this.writer = writer;
! }
!
! @Override
! public Void visitExports(ExportsDirective d, Void p) {
! // "exports package-name [to module-name-list]"
writer.print("exports ");
! writer.print(d.getPackage().getQualifiedName());
! printModuleList(d.getTargetModules());
! return null;
}
! @Override
! public Void visitOpens(OpensDirective d, Void p) {
! // opens package-name [to module-name-list]
writer.print("opens ");
! writer.print(d.getPackage().getQualifiedName());
! printModuleList(d.getTargetModules());
! return null;
}
! @Override
! public Void visitProvides(ProvidesDirective d, Void p) {
! // provides service-name with implementation-name
writer.print("provides ");
! writer.print(d.getService().getQualifiedName());
writer.print(" with ");
! printNameableList(d.getImplementations());
! return null;
}
! @Override
! public Void visitRequires(RequiresDirective d, Void p) {
! // requires (static|transitive)* module-name
writer.print("requires ");
! if (d.isStatic())
writer.print("static ");
! if (d.isTransitive())
writer.print("transitive ");
! writer.print(d.getDependency().getQualifiedName());
! return null;
}
! @Override
! public Void visitUses(UsesDirective d, Void p) {
! // uses service-name
writer.print("uses ");
! writer.print(d.getService().getQualifiedName());
! return null;
}
private void printModuleList(List<? extends ModuleElement> modules) {
if (modules != null) {
writer.print(" to ");
*** 388,397 ****
--- 392,402 ----
private void printNameableList(List<? extends QualifiedNameable> nameables) {
writer.print(nameables.stream().
map(QualifiedNameable::getQualifiedName).
collect(Collectors.joining(", ")));
}
+ }
public void flush() {
writer.flush();
}
< prev index next >