Deduce name of the class to generate from the name of the HTML page
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 16 Oct 2012 13:23:04 +0200
changeset 1087e3f72897a83
parent 107 0195ef3415ba
child 109 b19d12a9e6d5
Deduce name of the class to generate from the name of the HTML page
htmlpage/pom.xml
htmlpage/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java
htmlpage/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/Page.java
htmlpage/src/test/java/org/apidesign/bck2brwsr/htmlpage/PageController.java
     1.1 --- a/htmlpage/pom.xml	Tue Oct 16 12:49:59 2012 +0200
     1.2 +++ b/htmlpage/pom.xml	Tue Oct 16 13:23:04 2012 +0200
     1.3 @@ -42,6 +42,7 @@
     1.4        <artifactId>emul</artifactId>
     1.5        <version>1.0-SNAPSHOT</version>
     1.6        <type>jar</type>
     1.7 +      <scope>runtime</scope>
     1.8      </dependency>
     1.9      <dependency>
    1.10        <groupId>org.apidesign.bck2brwsr</groupId>
     2.1 --- a/htmlpage/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java	Tue Oct 16 12:49:59 2012 +0200
     2.2 +++ b/htmlpage/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java	Tue Oct 16 13:23:04 2012 +0200
     2.3 @@ -68,13 +68,18 @@
     2.4                  return false;
     2.5              }
     2.6              Writer w;
     2.7 +            String className = p.className();
     2.8 +            if (className.isEmpty()) {
     2.9 +                int indx = p.xhtml().indexOf('.');
    2.10 +                className = p.xhtml().substring(0, indx);
    2.11 +            }
    2.12              try {
    2.13 -                FileObject java = processingEnv.getFiler().createSourceFile(pkg + '.' + p.name(), e);
    2.14 +                FileObject java = processingEnv.getFiler().createSourceFile(pkg + '.' + className, e);
    2.15                  w = new OutputStreamWriter(java.openOutputStream());
    2.16                  try {
    2.17                      w.append("package " + pkg + ";\n");
    2.18                      w.append("import org.apidesign.bck2brwsr.htmlpage.api.*;\n");
    2.19 -                    w.append("class ").append(p.name()).append(" {\n");
    2.20 +                    w.append("class ").append(className).append(" {\n");
    2.21                      for (String id : pp.ids()) {
    2.22                          String tag = pp.tagNameForId(id);
    2.23                          String type = type(tag);
    2.24 @@ -92,7 +97,7 @@
    2.25                      w.close();
    2.26                  }
    2.27              } catch (IOException ex) {
    2.28 -                processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Can't create " + p.name() + ".java", e);
    2.29 +                processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Can't create " + className + ".java", e);
    2.30                  return false;
    2.31              }
    2.32          }
     3.1 --- a/htmlpage/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/Page.java	Tue Oct 16 12:49:59 2012 +0200
     3.2 +++ b/htmlpage/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/Page.java	Tue Oct 16 13:23:04 2012 +0200
     3.3 @@ -35,5 +35,5 @@
     3.4      /** Name of a Java class to generate. It will contain constants for all
     3.5       * found elements with IDs.
     3.6       */
     3.7 -    String name();
     3.8 +    String className() default "";
     3.9  }
     4.1 --- a/htmlpage/src/test/java/org/apidesign/bck2brwsr/htmlpage/PageController.java	Tue Oct 16 12:49:59 2012 +0200
     4.2 +++ b/htmlpage/src/test/java/org/apidesign/bck2brwsr/htmlpage/PageController.java	Tue Oct 16 13:23:04 2012 +0200
     4.3 @@ -40,7 +40,7 @@
     4.4   *
     4.5   * @author Jaroslav Tulach <jtulach@netbeans.org>
     4.6   */
     4.7 -@Page(xhtml="TestPage.html", name="TestPage")
     4.8 +@Page(xhtml="TestPage.html")
     4.9  public class PageController {
    4.10      @OnClick(id="pg.button")
    4.11      static void updateTitle() {