The type of an union is its associated enum constant union
authorJaroslav Tulach <jaroslav.tulach@netbeans.org>
Fri, 24 Jan 2014 14:48:36 +0100
branchunion
changeset 492990ac3152ee6
parent 491 e24032333156
child 493 f109a08d4109
The type of an union is its associated enum constant
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	Fri Jan 24 14:44:02 2014 +0100
     1.2 +++ b/json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java	Fri Jan 24 14:48:36 2014 +0100
     1.3 @@ -842,7 +842,15 @@
     1.4                  w.write("    return h;\n");
     1.5                  w.write("  }\n");
     1.6                  // enum
     1.7 -                w.write("  public " + inPckName(e) + " get" + e.getSimpleName() + "() { return null; }\n");
     1.8 +                w.write("  public " + inPckName(e) + " get" + e.getSimpleName() + "() {\n");
     1.9 +                for (Element ec : e.getEnclosedElements()) {
    1.10 +                    if (ec.getKind() != ElementKind.ENUM_CONSTANT) {
    1.11 +                        continue;
    1.12 +                    }
    1.13 +                    w.write("    if (union instanceof " + ec.getSimpleName() + ") return " + inPckName(e) + "." + ec.getSimpleName() + ";\n");
    1.14 +                }
    1.15 +                w.write("    return null;\n");
    1.16 +                w.write("  }\n");
    1.17                  for (Element ec : e.getEnclosedElements()) {
    1.18                      if (ec.getKind() != ElementKind.ENUM_CONSTANT) {
    1.19                          continue;