summaryrefslogtreecommitdiff
path: root/platform/script-debugger/protocol/protocol-model-generator/src/org/jetbrains/protocolReader/QualifiedTypeData.java
blob: a4ccd0b3c49f5a552b87e16ebf44fce2316c0edb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package org.jetbrains.protocolReader;

class QualifiedTypeData {
  private final BoxableType typeRef;
  private final boolean optional;
  private final boolean nullable;
  private final boolean asRawString;

  QualifiedTypeData(BoxableType typeRef, boolean optional, boolean nullable, boolean asRawString) {
    this.typeRef = typeRef;
    this.optional = optional;
    this.nullable = nullable;
    this.asRawString = asRawString;
  }

  boolean isNullable() {
    return nullable;
  }

  BoxableType getJavaType() {
    return typeRef;
  }

  void writeAnnotations(TextOutput out) {
    if (optional || asRawString) {
      out.append("@org.chromium.protocolReader.JsonField(");
      if (optional) {
        out.append("optional=true");
      }
      if (asRawString) {
        if (optional) {
          out.append(", ");
        }
        out.append("allowAnyPrimitiveValue=true");
      }
      out.append(")").newLine();
    }

    if (isNullable()) {
      out.append("@org.chromium.protocolReader.JsonNullable").newLine();
    }
  }
}