summaryrefslogtreecommitdiff
path: root/platform/script-debugger/protocol/protocol-model-generator/src/org/jetbrains/protocolReader/Generator.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/script-debugger/protocol/protocol-model-generator/src/org/jetbrains/protocolReader/Generator.java')
-rw-r--r--platform/script-debugger/protocol/protocol-model-generator/src/org/jetbrains/protocolReader/Generator.java83
1 files changed, 26 insertions, 57 deletions
diff --git a/platform/script-debugger/protocol/protocol-model-generator/src/org/jetbrains/protocolReader/Generator.java b/platform/script-debugger/protocol/protocol-model-generator/src/org/jetbrains/protocolReader/Generator.java
index e545f0280f81..b02905ad51ad 100644
--- a/platform/script-debugger/protocol/protocol-model-generator/src/org/jetbrains/protocolReader/Generator.java
+++ b/platform/script-debugger/protocol/protocol-model-generator/src/org/jetbrains/protocolReader/Generator.java
@@ -114,92 +114,61 @@ class Generator {
fileSet.deleteOtherFiles();
}
- QualifiedTypeData resolveType(final ItemDescriptor typedObject, final ResolveAndGenerateScope scope) {
- UnqualifiedTypeData unqualifiedType = switchByType(typedObject, new TypeVisitor<UnqualifiedTypeData>() {
+ TypeDescriptor resolveType(@NotNull final ItemDescriptor typedObject, @NotNull final ResolveAndGenerateScope scope) {
+ final boolean optional = typedObject instanceof ItemDescriptor.Named && ((ItemDescriptor.Named)typedObject).optional();
+ return switchByType(typedObject, new TypeVisitor<TypeDescriptor>() {
@Override
- public UnqualifiedTypeData visitRef(String refName) {
- return new UnqualifiedTypeData(resolveRefType(scope.getDomainName(), refName, scope.getTypeDirection()));
+ public TypeDescriptor visitRef(String refName) {
+ return new TypeDescriptor(resolveRefType(scope.getDomainName(), refName, scope.getTypeDirection()), optional);
}
@Override
- public UnqualifiedTypeData visitBoolean() {
- return UnqualifiedTypeData.BOOLEAN;
+ public TypeDescriptor visitBoolean() {
+ return new TypeDescriptor(BoxableType.BOOLEAN, optional);
}
@Override
- public UnqualifiedTypeData visitEnum(List<String> enumConstants) {
+ public TypeDescriptor visitEnum(List<String> enumConstants) {
assert scope instanceof MemberScope;
- return new UnqualifiedTypeData(((MemberScope)scope).generateEnum(typedObject.description(), enumConstants));
+ return new TypeDescriptor(((MemberScope)scope).generateEnum(typedObject.description(), enumConstants), optional);
}
@Override
- public UnqualifiedTypeData visitString() {
- return UnqualifiedTypeData.STRING;
+ public TypeDescriptor visitString() {
+ return new TypeDescriptor(BoxableType.STRING, optional);
}
@Override
- public UnqualifiedTypeData visitInteger() {
- return UnqualifiedTypeData.INT;
+ public TypeDescriptor visitInteger() {
+ return new TypeDescriptor(BoxableType.INT, optional);
}
@Override
- public UnqualifiedTypeData visitNumber() {
- return UnqualifiedTypeData.NUMBER;
+ public TypeDescriptor visitNumber() {
+ return new TypeDescriptor(BoxableType.NUMBER, optional);
}
@Override
- public UnqualifiedTypeData visitMap() {
- return UnqualifiedTypeData.MAP;
+ public TypeDescriptor visitMap() {
+ return new TypeDescriptor(BoxableType.MAP, optional);
}
@Override
- public UnqualifiedTypeData visitArray(ArrayItemType items) {
- return new UnqualifiedTypeData(new ListType(scope.resolveType(items).getJavaType()));
+ public TypeDescriptor visitArray(ArrayItemType items) {
+ BoxableType type = scope.resolveType(items).getType();
+ return new TypeDescriptor(new ListType(type), optional, false, type == BoxableType.ANY_STRING);
}
@Override
- public UnqualifiedTypeData visitObject(List<ObjectProperty> properties) {
- return new UnqualifiedTypeData(scope.generateNestedObject(typedObject.description(), properties), false);
+ public TypeDescriptor visitObject(List<ObjectProperty> properties) {
+ return new TypeDescriptor(scope.generateNestedObject(typedObject.description(), properties), optional);
}
@Override
- public UnqualifiedTypeData visitUnknown() {
- return UnqualifiedTypeData.ANY;
+ public TypeDescriptor visitUnknown() {
+ return new TypeDescriptor(BoxableType.STRING, optional, false, true);
}
});
-
- return unqualifiedType.getQualifiedType(typedObject instanceof ItemDescriptor.Named && ((ItemDescriptor.Named)typedObject).optional());
- }
-
- private static class UnqualifiedTypeData {
- private final BoxableType typeRef;
- private final boolean nullable;
- private final boolean asRawString;
-
- UnqualifiedTypeData(BoxableType typeRef) {
- this(typeRef, false);
- }
-
- UnqualifiedTypeData(BoxableType typeRef, boolean nullable) {
- this(typeRef, nullable, false);
- }
-
- UnqualifiedTypeData(BoxableType typeRef, boolean nullable, boolean asRawString) {
- this.typeRef = typeRef;
- this.nullable = nullable;
- this.asRawString = asRawString;
- }
-
- QualifiedTypeData getQualifiedType(boolean optional) {
- return new QualifiedTypeData(typeRef, optional, nullable, asRawString);
- }
-
- static final UnqualifiedTypeData BOOLEAN = new UnqualifiedTypeData(BoxableType.BOOLEAN, false);
- static final UnqualifiedTypeData STRING = new UnqualifiedTypeData(BoxableType.STRING, false);
- static final UnqualifiedTypeData INT = new UnqualifiedTypeData(BoxableType.INT, false);
- static final UnqualifiedTypeData MAP = new UnqualifiedTypeData(BoxableType.MAP, false);
- static final UnqualifiedTypeData NUMBER = new UnqualifiedTypeData(BoxableType.NUMBER, false);
- static final UnqualifiedTypeData ANY = new UnqualifiedTypeData(BoxableType.STRING, false, true);
}
private void generateParserInterfaceList() throws IOException {
@@ -274,11 +243,11 @@ class Generator {
return typeMap.resolve(domainName, shortName, direction);
}
- static String generateMethodNameSubstitute(String originalName, TextOutput out) {
+ static String generateMethodNameSubstitute(@NotNull String originalName, @NotNull TextOutput out) {
if (!BAD_METHOD_NAMES.contains(originalName)) {
return originalName;
}
- out.append("@org.chromium.protocolReader.JsonField(jsonLiteralName=\"").append(originalName).append("\")").newLine();
+ out.append("@org.jetbrains.jsonProtocol.JsonField(jsonLiteralName=\"").append(originalName).append("\")").newLine();
return "get" + Character.toUpperCase(originalName.charAt(0)) + originalName.substring(1);
}