< prev index next >

test/langtools/jdk/javadoc/tool/modules/ModuleTestBase.java

Print this page
rev 58344 : records implementation


  24 import java.io.IOException;
  25 import java.io.PrintWriter;
  26 import java.io.StringWriter;
  27 import java.nio.file.Path;
  28 import java.nio.file.Paths;
  29 import java.util.Arrays;
  30 import java.util.HashSet;
  31 import java.util.List;
  32 import java.util.Locale;
  33 import java.util.Set;
  34 import java.util.TreeSet;
  35 import java.util.stream.Collectors;
  36 
  37 import javax.lang.model.SourceVersion;
  38 import javax.lang.model.element.Element;
  39 import javax.lang.model.element.ElementKind;
  40 import javax.lang.model.element.ModuleElement;
  41 import javax.lang.model.element.PackageElement;
  42 import javax.lang.model.element.TypeElement;
  43 import javax.lang.model.util.ElementFilter;
  44 import javax.lang.model.util.SimpleElementVisitor9;
  45 
  46 import jdk.javadoc.doclet.Doclet;
  47 import jdk.javadoc.doclet.DocletEnvironment;
  48 import jdk.javadoc.doclet.Reporter;
  49 
  50 import toolbox.JavadocTask;
  51 import toolbox.Task;
  52 import toolbox.Task.Expect;
  53 import toolbox.TestRunner;
  54 import toolbox.ToolBox;
  55 
  56 import static toolbox.Task.OutputKind.*;
  57 
  58 /**
  59  * Base class for module tests.
  60  */
  61 public class ModuleTestBase extends TestRunner {
  62 
  63     // Field Separator
  64     private static final String FS = " ";


 284 
 285     public static class ModulesTesterDoclet implements Doclet {
 286         StringWriter sw = new StringWriter();
 287         PrintWriter ps = new PrintWriter(sw);
 288 
 289         DocletEnvironment docEnv = null;
 290 
 291         boolean hasDocComments = false;
 292 
 293         String hasDocComments(Element e) {
 294             String comment = docEnv.getElementUtils().getDocComment(e);
 295             return comment != null && !comment.isEmpty()
 296                     ? "hasDocComments"
 297                     : "noDocComments";
 298         }
 299 
 300         // csv style output, for simple regex verification
 301         void printDataSet(String header, Set<? extends Element> set) {
 302             for (Element e : set) {
 303                 ps.print(header);
 304                 new SimpleElementVisitor9<Void, Void>() {
 305                     @Override
 306                     public Void visitModule(ModuleElement e, Void p) {
 307                         ps.print(FS);
 308                         ps.print(e.getKind());
 309                         ps.print(FS);
 310                         ps.print(e.getQualifiedName());
 311                         if (hasDocComments) {
 312                             ps.print(FS);
 313                             ps.print(hasDocComments(e));
 314                         }
 315                         ps.println();
 316                         return null;
 317                     }
 318 
 319                     @Override
 320                     public Void visitPackage(PackageElement e, Void p) {
 321                         ps.print(FS);
 322                         ps.print(e.getKind());
 323                         ps.print(FS);
 324                         ps.print(e.getQualifiedName());


 330                         return null;
 331                     }
 332 
 333                     @Override
 334                     public Void visitType(TypeElement e, Void p) {
 335                         ps.print(FS);
 336                         ps.print(ElementKind.CLASS);
 337                         ps.print(FS);
 338                         ps.print(e.getQualifiedName());
 339                         if (hasDocComments) {
 340                             ps.print(FS);
 341                             ps.print(hasDocComments(e));
 342                         }
 343                         ps.println();
 344                         return null;
 345                     }
 346 
 347                     @Override
 348                     protected Void defaultAction(Element e, Void p) {
 349                         Element encl = e.getEnclosingElement();
 350                         CharSequence fqn = new SimpleElementVisitor9<CharSequence, Void>() {
 351                             @Override
 352                             public CharSequence visitModule(ModuleElement e, Void p) {
 353                                 return e.getQualifiedName();
 354                             }
 355 
 356                             @Override
 357                             public CharSequence visitType(TypeElement e, Void p) {
 358                                 return e.getQualifiedName();
 359                             }
 360 
 361                             @Override
 362                             public CharSequence visitPackage(PackageElement e, Void p) {
 363                                 return e.getQualifiedName();
 364                             }
 365 
 366                         }.visit(encl);
 367 
 368                         ps.print(FS);
 369                         ps.print(ElementKind.METHOD); // always METHOD
 370                         ps.print(FS);




  24 import java.io.IOException;
  25 import java.io.PrintWriter;
  26 import java.io.StringWriter;
  27 import java.nio.file.Path;
  28 import java.nio.file.Paths;
  29 import java.util.Arrays;
  30 import java.util.HashSet;
  31 import java.util.List;
  32 import java.util.Locale;
  33 import java.util.Set;
  34 import java.util.TreeSet;
  35 import java.util.stream.Collectors;
  36 
  37 import javax.lang.model.SourceVersion;
  38 import javax.lang.model.element.Element;
  39 import javax.lang.model.element.ElementKind;
  40 import javax.lang.model.element.ModuleElement;
  41 import javax.lang.model.element.PackageElement;
  42 import javax.lang.model.element.TypeElement;
  43 import javax.lang.model.util.ElementFilter;
  44 import javax.lang.model.util.SimpleElementVisitor14;
  45 
  46 import jdk.javadoc.doclet.Doclet;
  47 import jdk.javadoc.doclet.DocletEnvironment;
  48 import jdk.javadoc.doclet.Reporter;
  49 
  50 import toolbox.JavadocTask;
  51 import toolbox.Task;
  52 import toolbox.Task.Expect;
  53 import toolbox.TestRunner;
  54 import toolbox.ToolBox;
  55 
  56 import static toolbox.Task.OutputKind.*;
  57 
  58 /**
  59  * Base class for module tests.
  60  */
  61 public class ModuleTestBase extends TestRunner {
  62 
  63     // Field Separator
  64     private static final String FS = " ";


 284 
 285     public static class ModulesTesterDoclet implements Doclet {
 286         StringWriter sw = new StringWriter();
 287         PrintWriter ps = new PrintWriter(sw);
 288 
 289         DocletEnvironment docEnv = null;
 290 
 291         boolean hasDocComments = false;
 292 
 293         String hasDocComments(Element e) {
 294             String comment = docEnv.getElementUtils().getDocComment(e);
 295             return comment != null && !comment.isEmpty()
 296                     ? "hasDocComments"
 297                     : "noDocComments";
 298         }
 299 
 300         // csv style output, for simple regex verification
 301         void printDataSet(String header, Set<? extends Element> set) {
 302             for (Element e : set) {
 303                 ps.print(header);
 304                 new SimpleElementVisitor14<Void, Void>() {
 305                     @Override
 306                     public Void visitModule(ModuleElement e, Void p) {
 307                         ps.print(FS);
 308                         ps.print(e.getKind());
 309                         ps.print(FS);
 310                         ps.print(e.getQualifiedName());
 311                         if (hasDocComments) {
 312                             ps.print(FS);
 313                             ps.print(hasDocComments(e));
 314                         }
 315                         ps.println();
 316                         return null;
 317                     }
 318 
 319                     @Override
 320                     public Void visitPackage(PackageElement e, Void p) {
 321                         ps.print(FS);
 322                         ps.print(e.getKind());
 323                         ps.print(FS);
 324                         ps.print(e.getQualifiedName());


 330                         return null;
 331                     }
 332 
 333                     @Override
 334                     public Void visitType(TypeElement e, Void p) {
 335                         ps.print(FS);
 336                         ps.print(ElementKind.CLASS);
 337                         ps.print(FS);
 338                         ps.print(e.getQualifiedName());
 339                         if (hasDocComments) {
 340                             ps.print(FS);
 341                             ps.print(hasDocComments(e));
 342                         }
 343                         ps.println();
 344                         return null;
 345                     }
 346 
 347                     @Override
 348                     protected Void defaultAction(Element e, Void p) {
 349                         Element encl = e.getEnclosingElement();
 350                         CharSequence fqn = new SimpleElementVisitor14<CharSequence, Void>() {
 351                             @Override
 352                             public CharSequence visitModule(ModuleElement e, Void p) {
 353                                 return e.getQualifiedName();
 354                             }
 355 
 356                             @Override
 357                             public CharSequence visitType(TypeElement e, Void p) {
 358                                 return e.getQualifiedName();
 359                             }
 360 
 361                             @Override
 362                             public CharSequence visitPackage(PackageElement e, Void p) {
 363                                 return e.getQualifiedName();
 364                             }
 365 
 366                         }.visit(encl);
 367 
 368                         ps.print(FS);
 369                         ps.print(ElementKind.METHOD); // always METHOD
 370                         ps.print(FS);


< prev index next >