Adding javadoc and generating an error if the enum has not constants union
authorJaroslav Tulach <jaroslav.tulach@netbeans.org>
Tue, 28 Jan 2014 09:03:10 +0100
branchunion
changeset 49907c20dc62794
parent 498 3e7700d27b99
child 500 643d88ddac2a
Adding javadoc and generating an error if the enum has not constants
json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java
     1.1 --- a/json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java	Tue Jan 28 08:52:29 2014 +0100
     1.2 +++ b/json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java	Tue Jan 28 09:03:10 2014 +0100
     1.3 @@ -613,25 +613,31 @@
     1.4                  Prprt firstArray = null;
     1.5                  w.write("  private final Object union;\n");
     1.6  
     1.7 -                w.append("  public ").append(className).append("() {\n");
     1.8 -                boolean defaultGenerated = false;
     1.9 -                for (Element ec : e.getEnclosedElements()) {
    1.10 -                    if (ec.getKind() != ElementKind.ENUM_CONSTANT) {
    1.11 -                        continue;
    1.12 +                {
    1.13 +                    Model defaultGenerated = null;
    1.14 +                    for (Element ec : e.getEnclosedElements()) {
    1.15 +                        if (ec.getKind() != ElementKind.ENUM_CONSTANT) {
    1.16 +                            continue;
    1.17 +                        }
    1.18 +                        Model em = ec.getAnnotation(Model.class);
    1.19 +                        if (em == null) {
    1.20 +                            continue;
    1.21 +                        }
    1.22 +                        defaultGenerated = em;
    1.23 +                        break;
    1.24                      }
    1.25 -                    Model em = ec.getAnnotation(Model.class);
    1.26 -                    if (em == null) {
    1.27 -                        continue;
    1.28 +                    w.append("  /** New instance with ").append(defaultGenerated.className()).append(" union */");
    1.29 +                    w.append("  public ").append(className).append("() {\n");
    1.30 +                    if (defaultGenerated != null) {
    1.31 +                        w.append("    this(net.java.html.BrwsrCtx.findDefault(").append(className).append(".class),");
    1.32 +                        w.append(" new ").append(defaultGenerated.className()).append("());\n");
    1.33 +                    } else {
    1.34 +                        w.append("    throw new IllegalStateException();\n");
    1.35 +                        error("There needs to be at least one enum constant!", e);
    1.36 +                        ok = false;
    1.37                      }
    1.38 -                    defaultGenerated = true;
    1.39 -                    w.append("    this(net.java.html.BrwsrCtx.findDefault(").append(className).append(".class),");
    1.40 -                    w.append(" new ").append(em.className()).append("());\n");
    1.41 -                    break;
    1.42 +                    w.append("  }\n");  
    1.43                  }
    1.44 -                if (!defaultGenerated) {
    1.45 -                    w.append("    throw new IllegalStateException();\n");
    1.46 -                }
    1.47 -                w.append("  }\n");
    1.48                  for (Element ec : e.getEnclosedElements()) {
    1.49                      if (ec.getKind() != ElementKind.ENUM_CONSTANT) {
    1.50                          continue;