Merge remote-tracking branch 'origin/master'
authorVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Fri, 9 Jan 2015 12:13:10 +0000 (13:13 +0100)
committerVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Fri, 9 Jan 2015 12:13:10 +0000 (13:13 +0100)
26 files changed:
platform/script-debugger/backend/src/org/jetbrains/debugger/EvaluateContext.java
platform/script-debugger/backend/src/org/jetbrains/debugger/EvaluateContextAdditionalParameter.java [deleted file]
platform/script-debugger/backend/src/org/jetbrains/debugger/EvaluateContextBase.java
platform/script-debugger/backend/src/org/jetbrains/debugger/ObjectProperty.java
platform/script-debugger/backend/src/org/jetbrains/debugger/ObjectPropertyImpl.java [new file with mode: 0644]
platform/script-debugger/backend/src/org/jetbrains/debugger/ValueModifierUtil.java
platform/script-debugger/backend/src/org/jetbrains/debugger/VariablesHost.java
platform/script-debugger/backend/src/org/jetbrains/debugger/values/ObjectPropertyBase.java [deleted file]
platform/script-debugger/backend/src/org/jetbrains/debugger/values/PrimitiveValue.java
platform/script-debugger/backend/src/org/jetbrains/debugger/values/Value.java
platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/VariableView.java
platform/script-debugger/protocol/protocol-reader-runtime/src/org/jetbrains/jsonProtocol/JsonField.java
platform/script-debugger/protocol/protocol-reader-runtime/src/org/jetbrains/jsonProtocol/JsonReaders.java
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/ArrayReader.java
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/EnumReader.java
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/FieldLoader.java
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/FieldProcessor.java
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/InterfaceReader.java
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/LazyCachedMethodHandler.java
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/MapReader.java
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/ObjectValueReader.java
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/PrimitiveValueReader.java
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/RawValueReader.java
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/StringIntPairValueReader.java
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/TypeHandler.java
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/ValueReader.java

index 0fba1f42eb895490312812e7221ac5e86d440392..25f855bfabed3f8dd03f69e36446c43fb6f47663 100644 (file)
@@ -17,7 +17,7 @@ public interface EvaluateContext {
    * additionalContext parameter.
    */
   @NotNull
-  Promise<EvaluateResult> evaluate(@NotNull String expression, @Nullable Map<String, EvaluateContextAdditionalParameter> additionalContext, boolean enableBreak);
+  Promise<EvaluateResult> evaluate(@NotNull String expression, @Nullable Map<String, Object> additionalContext, boolean enableBreak);
 
   @NotNull
   Promise<EvaluateResult> evaluate(@NotNull String expression);
diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/EvaluateContextAdditionalParameter.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/EvaluateContextAdditionalParameter.java
deleted file mode 100644 (file)
index 3e79d16..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-package org.jetbrains.debugger;
-
-public interface EvaluateContextAdditionalParameter {
-}
\ No newline at end of file
index 812f24d5d0f548fd1f559325a70c372a5e913562..418d8de386298f48f622b7b85920a9c8ff895482 100644 (file)
@@ -38,7 +38,7 @@ public abstract class EvaluateContextBase<VALUE_MANAGER extends ValueManager> im
 
   @NotNull
   @Override
-  public abstract Promise<EvaluateResult> evaluate(@NotNull String expression, @Nullable Map<String, EvaluateContextAdditionalParameter> additionalContext, boolean enableBreak);
+  public abstract Promise<EvaluateResult> evaluate(@NotNull String expression, @Nullable Map<String, Object> additionalContext, boolean enableBreak);
 
   @NotNull
   public final VALUE_MANAGER getValueManager() {
index 94bdb29a59c686a9416702ddc3307af113781b10..f99dbbd67e27621f5ccb37dfd8a2c974bc521dfc 100644 (file)
@@ -8,30 +8,16 @@ import org.jetbrains.debugger.values.FunctionValue;
  * is available.
  */
 public interface ObjectProperty extends Variable {
-  /**
-   * @return whether property described as 'writable'
-   */
   boolean isWritable();
 
-  /**
-   * @return property getter value (function or undefined) or null if not an accessor property
-   */
   @Nullable
   FunctionValue getGetter();
 
-  /**
-   * @return property setter value (function or undefined) or null if not an accessor property
-   */
   @Nullable
   FunctionValue getSetter();
 
-  /**
-   * @return whether property described as 'configurable'
-   */
+
   boolean isConfigurable();
 
-  /**
-   * @return whether property described as 'enumerable'
-   */
   boolean isEnumerable();
 }
diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/ObjectPropertyImpl.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/ObjectPropertyImpl.java
new file mode 100644 (file)
index 0000000..ef7f7c2
--- /dev/null
@@ -0,0 +1,59 @@
+package org.jetbrains.debugger;
+
+import com.intellij.util.BitUtil;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+import org.jetbrains.debugger.values.FunctionValue;
+import org.jetbrains.debugger.values.Value;
+
+public class ObjectPropertyImpl extends VariableImpl implements ObjectProperty {
+  public static final byte WRITABLE = 0x01;
+  public static final byte CONFIGURABLE = 0x02;
+  public static final byte ENUMERABLE = 0x04;
+
+  private final FunctionValue getter;
+  private final FunctionValue setter;
+
+  private final int flags;
+
+  public ObjectPropertyImpl(@NotNull String name,
+                            @Nullable Value value,
+                            @Nullable FunctionValue getter,
+                            @Nullable FunctionValue setter,
+                            @Nullable ValueModifier valueModifier,
+                            int flags) {
+    super(name, value, valueModifier);
+
+    this.getter = getter;
+    this.setter = setter;
+
+    this.flags = flags;
+  }
+
+  @Nullable
+  @Override
+  public final FunctionValue getGetter() {
+    return getter;
+  }
+
+  @Nullable
+  @Override
+  public final FunctionValue getSetter() {
+    return setter;
+  }
+
+  @Override
+  public final boolean isWritable() {
+    return BitUtil.isSet(flags, WRITABLE);
+  }
+
+  @Override
+  public final boolean isConfigurable() {
+    return BitUtil.isSet(flags, CONFIGURABLE);
+  }
+
+  @Override
+  public final boolean isEnumerable() {
+    return BitUtil.isSet(flags, ENUMERABLE);
+  }
+}
\ No newline at end of file
index 87a3fea900e253e67ee0e6ecceaa6a727629fd28..f903a705f37fa3a5dbd8c5f90957e78774774d86 100644 (file)
@@ -26,7 +26,7 @@ public final class ValueModifierUtil {
 
   @NotNull
   public static Promise<Value> evaluateGet(@NotNull final Variable variable,
-                                           @NotNull EvaluateContextAdditionalParameter host,
+                                           @NotNull Object host,
                                            @NotNull EvaluateContext evaluateContext,
                                            @NotNull String selfName) {
     StringBuilder builder = new StringBuilder(selfName);
index 95194a9132f2b7bf2c2057893fcb8c4c10d9c8ce..616852e3803275a865e8ebe37b558429b6470d52 100644 (file)
@@ -9,7 +9,7 @@ import java.util.List;
 
 public abstract class VariablesHost<VALUE_MANAGER extends ValueManager> {
   @SuppressWarnings("unchecked")
-  public static final PromiseManager<VariablesHost, List<Variable>> VARIABLES_LOADER =
+  private static final PromiseManager<VariablesHost, List<Variable>> VARIABLES_LOADER =
     new PromiseManager<VariablesHost, List<Variable>>(VariablesHost.class) {
       @Override
       public boolean isUpToDate(@NotNull VariablesHost host, @NotNull List<Variable> data) {
@@ -46,6 +46,11 @@ public abstract class VariablesHost<VALUE_MANAGER extends ValueManager> {
     return VARIABLES_LOADER.get(this);
   }
 
+  public final void set(@NotNull List<Variable> result) {
+    updateCacheStamp();
+    VARIABLES_LOADER.set(this, result);
+  }
+
   @NotNull
   protected abstract Promise<List<Variable>> load();
 
diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/values/ObjectPropertyBase.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/values/ObjectPropertyBase.java
deleted file mode 100644 (file)
index a7b7824..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.jetbrains.debugger.values;
-
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-import org.jetbrains.debugger.ObjectProperty;
-import org.jetbrains.debugger.ValueModifier;
-import org.jetbrains.debugger.VariableImpl;
-
-public abstract class ObjectPropertyBase extends VariableImpl implements ObjectProperty {
-  private final FunctionValue getter;
-  private final FunctionValue setter;
-
-  protected ObjectPropertyBase(@NotNull String name, @Nullable Value value, @Nullable FunctionValue getter, @Nullable FunctionValue setter, @Nullable ValueModifier valueModifier) {
-    super(name, value, valueModifier);
-
-    this.getter = getter;
-    this.setter = setter;
-  }
-
-  @Override
-  public boolean isWritable() {
-    return true;
-  }
-
-  @Nullable
-  @Override
-  public final FunctionValue getGetter() {
-    return getter;
-  }
-
-  @Nullable
-  @Override
-  public FunctionValue getSetter() {
-    return setter;
-  }
-
-  @Override
-  public boolean isConfigurable() {
-    return true;
-  }
-
-  @Override
-  public boolean isEnumerable() {
-    return true;
-  }
-}
\ No newline at end of file
index dca53d363cf32cf30aed09045df094270ad0bc87..a9e31ab24be7f71b1a4128fd08fd63f7ead4aad4 100644 (file)
@@ -4,8 +4,14 @@ import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 public class PrimitiveValue extends ValueBase {
-  public static final PrimitiveValue NULL_VALUE = new PrimitiveValue(ValueType.NULL, "null");
-  public static final PrimitiveValue UNDEFINED_VALUE = new PrimitiveValue(ValueType.UNDEFINED, "undefined");
+  public static final String NA_N_VALUE = "NaN";
+  public static final String INFINITY_VALUE = "Infinity";
+
+  public static final PrimitiveValue NULL = new PrimitiveValue(ValueType.NULL, "null");
+  public static final PrimitiveValue UNDEFINED = new PrimitiveValue(ValueType.UNDEFINED, "undefined");
+
+  public static final PrimitiveValue NAN = new PrimitiveValue(ValueType.NUMBER, NA_N_VALUE);
+  public static final PrimitiveValue INFINITY = new PrimitiveValue(ValueType.NUMBER, INFINITY_VALUE);
 
   private static final PrimitiveValue TRUE = new PrimitiveValue(ValueType.BOOLEAN, "true");
   private static final PrimitiveValue FALSE = new PrimitiveValue(ValueType.BOOLEAN, "false");
index 3ed079409176260cffec41e93fc00268de8710c6..c64d1e090795ad78673f8f52663e62331a19e582 100755 (executable)
@@ -1,12 +1,11 @@
 package org.jetbrains.debugger.values;
 
 import org.jetbrains.annotations.NotNull;
-import org.jetbrains.debugger.EvaluateContextAdditionalParameter;
 
 /**
  * An object that represents a VM variable value (compound or atomic).
  */
-public interface Value extends EvaluateContextAdditionalParameter {
+public interface Value {
   @NotNull
   ValueType getType();
 
index 9a7bc2fcb8642c181a0b658ed96454d11212d9c9..de013574af0b4d2b23bf39774b25818f1682788b 100644 (file)
@@ -98,7 +98,7 @@ public final class VariableView extends XNamedValue implements VariableContext {
       node.setPresentation(icon, null, valueString, true);
     }
     else {
-      context.getEvaluateContext().evaluate("a.length", Collections.<String, EvaluateContextAdditionalParameter>singletonMap("a", value), false)
+      context.getEvaluateContext().evaluate("a.length", Collections.<String, Object>singletonMap("a", value), false)
         .done(new Consumer<EvaluateResult>() {
           @Override
           public void consume(EvaluateResult result) {
@@ -278,8 +278,9 @@ public final class VariableView extends XNamedValue implements VariableContext {
     }
   }
 
+  @NotNull
   private static XValuePresentation createNumberPresentation(@NotNull String value) {
-    return value.equals("NaN") || value.equals("Infinity") ? new XKeywordValuePresentation(value) : new XNumericValuePresentation(value);
+    return value.equals(PrimitiveValue.NA_N_VALUE) || value.equals(PrimitiveValue.INFINITY_VALUE) ? new XKeywordValuePresentation(value) : new XNumericValuePresentation(value);
   }
 
   @Override
index 0745f4310e5c6e73e0e9cdff3520abdcb0e3488c..1ea36811ad73aca46ff9c3e5f83bcfab079aa19f 100644 (file)
@@ -1,7 +1,3 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
 package org.jetbrains.jsonProtocol;
 
 import java.lang.annotation.ElementType;
@@ -21,7 +17,7 @@ public @interface JsonField {
    * Specifies JSON property name, which otherwise is derived from the method name (optional "get"
    * prefix is truncated with the first letter decapitalization).
    */
-  String jsonLiteralName() default "";
+  String name() default "";
 
   // read any primitive value as String (true as true, number as string - don't try to parse)
   boolean allowAnyPrimitiveValue() default false;
index 5f7c4f744999641ab28585549b82501440572e85..b9e314e8dcdd9c64406e2c4b7e99bf92f0e28622 100644 (file)
@@ -40,9 +40,10 @@ public final class JsonReaders {
 
   // Don't use Guava CaseFormat.*! ObjectWithURL must be converted to OBJECT_WITH_URL
   public static String convertRawEnumName(@NotNull String enumValue) {
-    StringBuilder builder = new StringBuilder(enumValue.length() + 4);
+    int n = enumValue.length();
+    StringBuilder builder = new StringBuilder(n + 4);
     boolean prevIsLowerCase = false;
-    for (int i = 0; i < enumValue.length(); i++) {
+    for (int i = 0; i < n; i++) {
       char c = enumValue.charAt(i);
       if (c == '-' || c == ' ') {
         builder.append('_');
@@ -51,7 +52,7 @@ public final class JsonReaders {
 
       if (Character.isUpperCase(c)) {
         // second check handle "CSPViolation" (transform to CSP_VIOLATION)
-        if (prevIsLowerCase || (i != 0 && (i + 1) < enumValue.length() && Character.isLowerCase(enumValue.charAt(i + 1)))) {
+        if (prevIsLowerCase || (i != 0 && (i + 1) < n && Character.isLowerCase(enumValue.charAt(i + 1)))) {
           builder.append('_');
         }
         builder.append(c);
index 08b397b9239bca006ffaa871c83284cdd4d569aa..23a347ded2dc2d3ed5b7540a67ab18e44919d68b 100644 (file)
@@ -27,7 +27,7 @@ class ArrayReader extends ValueReader {
   }
 
   @Override
-  void writeReadCode(ClassScope scope, boolean subtyping, String fieldName, @NotNull TextOutput out) {
+  void writeReadCode(ClassScope scope, boolean subtyping, @NotNull TextOutput out) {
     componentParser.writeArrayReadCode(scope, subtyping, out);
   }
 }
index a0d794d0cb0fc00ed7d820da310b8f6b8edf6f79..49803622cd4f5d64a7cc5a1edf310504215fb663 100644 (file)
@@ -20,7 +20,7 @@ class EnumReader<T extends Enum<T>> extends ValueReader {
   }
 
   @Override
-  void writeReadCode(ClassScope scope, boolean subtyping, String fieldName, @NotNull TextOutput out) {
+  void writeReadCode(ClassScope scope, boolean subtyping, @NotNull TextOutput out) {
     beginReadCall("Enum", subtyping, out);
     out.comma().append(enumClass.getCanonicalName()).append(".class").append(')');
   }
index 22c7a4ef42e4f2b0e154e23c8fe7a102a631c249..37aab7b4fc16b6778825b1554c3c8b7dc8553f0b 100644 (file)
@@ -1,28 +1,25 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
 package org.jetbrains.protocolReader;
 
+import org.jetbrains.annotations.NotNull;
+
 class FieldLoader {
   public static final char FIELD_PREFIX = '_';
 
-  private final String fieldName;
+  final String name;
+  final String jsonName;
+
   final ValueReader valueReader;
 
-  FieldLoader(String fieldName, ValueReader valueReader) {
-    this.fieldName = fieldName;
+  FieldLoader(@NotNull String name, @NotNull String jsonName, @NotNull ValueReader valueReader) {
+    this.name = name;
+    this.jsonName = jsonName;
     this.valueReader = valueReader;
   }
 
-  public String getFieldName() {
-    return fieldName;
-  }
-
-  public void writeFieldDeclaration(TextOutput out) {
-    out.append("private ");
+  public void writeFieldDeclaration(@NotNull TextOutput out) {
+    out.append("private").space();
     valueReader.appendFinishedValueTypeName(out);
-    out.append(' ').append(FIELD_PREFIX).append(fieldName);
+    out.space().append(FIELD_PREFIX).append(name);
     if (valueReader instanceof PrimitiveValueReader) {
       String defaultValue = ((PrimitiveValueReader)valueReader).defaultValue;
       if (defaultValue != null) {
index 7d4738f824e00ca1c218bf4ade066a05c6a320ed..eeb7ddf77ca1ad85a956db0ae8c494b4ecf4f65d 100644 (file)
@@ -11,9 +11,9 @@ import java.lang.reflect.Type;
 import java.util.*;
 
 final class FieldProcessor<T> {
-  private final List<FieldLoader> fieldLoaders = new ArrayList<>(2);
+  private final List<FieldLoader> fieldLoaders = new ArrayList<>();
   private final LinkedHashMap<Method, MethodHandler> methodHandlerMap = new LinkedHashMap<>();
-  private final List<VolatileFieldBinding> volatileFields = new ArrayList<>(2);
+  private final List<VolatileFieldBinding> volatileFields = new ArrayList<>();
   boolean lazyRead;
   private final InterfaceReader reader;
 
@@ -29,29 +29,32 @@ final class FieldProcessor<T> {
       }
     });
 
-    Package aPackage = typeClass.getPackage();
+    Package classPackage = typeClass.getPackage();
     for (Method method : methods) {
       Class<?> methodClass = method.getDeclaringClass();
       // use method from super if super located in the same package
-      if (methodClass != typeClass && methodClass.getPackage() != aPackage) {
-        continue;
+      if (methodClass != typeClass) {
+        Package methodPackage = methodClass.getPackage();
+        // may be it will be useful later
+        // && !methodPackage.getName().equals("org.jetbrains.debugger.adapters")
+        if (methodPackage != classPackage) {
+          continue;
+        }
       }
 
-      if (method.getParameterTypes().length != 0) {
+      if (method.getParameterCount() != 0) {
         throw new JsonProtocolModelParseException("No parameters expected in " + method);
       }
 
       try {
-        String fieldName = checkAndGetJsonFieldName(method);
         MethodHandler methodHandler;
-
         JsonSubtypeCasting jsonSubtypeCaseAnnotation = method.getAnnotation(JsonSubtypeCasting.class);
-        if (jsonSubtypeCaseAnnotation != null) {
-          methodHandler = processManualSubtypeMethod(method, jsonSubtypeCaseAnnotation);
-          lazyRead = true;
+        if (jsonSubtypeCaseAnnotation == null) {
+          methodHandler = processFieldGetterMethod(method);
         }
         else {
-          methodHandler = processFieldGetterMethod(method, fieldName);
+          methodHandler = processManualSubtypeMethod(method, jsonSubtypeCaseAnnotation);
+          lazyRead = true;
         }
         methodHandlerMap.put(method, methodHandler);
       }
@@ -61,36 +64,33 @@ final class FieldProcessor<T> {
     }
   }
 
-  private MethodHandler processFieldGetterMethod(@NotNull Method method, @NotNull String fieldName) {
+  @NotNull
+  private MethodHandler processFieldGetterMethod(@NotNull Method method) {
+    String jsonName = method.getName();
+    JsonField fieldAnnotation = method.getAnnotation(JsonField.class);
+    if (fieldAnnotation != null && !fieldAnnotation.name().isEmpty()) {
+      jsonName = fieldAnnotation.name();
+    }
+
     Type genericReturnType = method.getGenericReturnType();
     boolean addNotNullAnnotation;
-
     boolean isPrimitive = genericReturnType instanceof Class ? ((Class)genericReturnType).isPrimitive() : !(genericReturnType instanceof ParameterizedType);
     if (isPrimitive) {
       addNotNullAnnotation = false;
     }
+    else if (fieldAnnotation != null) {
+      addNotNullAnnotation = !fieldAnnotation.optional() && !fieldAnnotation.allowAnyPrimitiveValue() && !fieldAnnotation.allowAnyPrimitiveValueAndMap();
+    }
     else {
-      JsonField jsonField = method.getAnnotation(JsonField.class);
-      if (jsonField != null) {
-        addNotNullAnnotation = !jsonField.optional() && !jsonField.allowAnyPrimitiveValue() && !jsonField.allowAnyPrimitiveValueAndMap();
-      }
-      else {
-        addNotNullAnnotation = method.getAnnotation(JsonOptionalField.class) == null;
-      }
+      addNotNullAnnotation = method.getAnnotation(JsonOptionalField.class) == null;
     }
 
-    ValueReader fieldTypeParser;
-    try {
-      fieldTypeParser = reader.getFieldTypeParser(genericReturnType, false, method);
-    }
-    catch (Exception e) {
-      throw new RuntimeException("Cannot create field type parser for method " + method, e);
-    }
+    ValueReader fieldTypeParser = reader.getFieldTypeParser(genericReturnType, false, method);
     if (fieldTypeParser != InterfaceReader.VOID_PARSER) {
-      fieldLoaders.add(new FieldLoader(fieldName, fieldTypeParser));
+      fieldLoaders.add(new FieldLoader(method.getName(), jsonName, fieldTypeParser));
     }
 
-    final String effectiveFieldName = fieldTypeParser == InterfaceReader.VOID_PARSER ? null : fieldName;
+    final String effectiveFieldName = fieldTypeParser == InterfaceReader.VOID_PARSER ? null : method.getName();
     return new MethodHandler() {
       @Override
       void writeMethodImplementationJava(@NotNull ClassScope scope, @NotNull Method method, @NotNull TextOutput out) {
@@ -150,19 +150,4 @@ final class FieldProcessor<T> {
     volatileFields.add(binding);
     return binding;
   }
-
-  @NotNull
-  private static String checkAndGetJsonFieldName(@NotNull Method method) {
-    if (method.getParameterTypes().length != 0) {
-      throw new JsonProtocolModelParseException("Must have 0 parameters");
-    }
-    JsonField fieldAnnotation = method.getAnnotation(JsonField.class);
-    if (fieldAnnotation != null) {
-      String jsonLiteralName = fieldAnnotation.jsonLiteralName();
-      if (!jsonLiteralName.isEmpty()) {
-        return jsonLiteralName;
-      }
-    }
-    return method.getName();
-  }
 }
index b236e6d3de51e60546fe5ce33550fc6f194492b8..84844be0301a6960ce3bc7529d2faa551f6aaf01 100644 (file)
@@ -30,7 +30,7 @@ class InterfaceReader {
   private static final PrimitiveValueReader RAW_STRING_PARSER = new PrimitiveValueReader("String", null, true);
   private static final PrimitiveValueReader RAW_STRING_OR_MAP_PARSER = new PrimitiveValueReader("Object", null, true) {
     @Override
-    void writeReadCode(ClassScope methodScope, boolean subtyping, String fieldName, @NotNull TextOutput out) {
+    void writeReadCode(ClassScope methodScope, boolean subtyping, @NotNull TextOutput out) {
       out.append("readRawStringOrMap(");
       addReaderParameter(subtyping, out);
       out.append(')');
@@ -50,7 +50,7 @@ class InterfaceReader {
     }
 
     @Override
-    void writeReadCode(ClassScope scope, boolean subtyping, String fieldName, @NotNull TextOutput out) {
+    void writeReadCode(ClassScope scope, boolean subtyping, @NotNull TextOutput out) {
       out.append("null");
     }
   };
index 68f80dc1042fbf46f391a4cecb582419d67cd455..1b70b227455edf2216fa1cb2dcc5e19aa43abc2d 100644 (file)
@@ -43,7 +43,7 @@ class LazyCachedMethodHandler extends MethodHandler {
       {
         fieldBinding.writeGetExpression(out);
         out.append(" = ");
-        parser.writeReadCode(classScope, true, null, classScope.getOutput());
+        parser.writeReadCode(classScope, true, classScope.getOutput());
         out.semi();
       }
       if (parser.isThrowsIOException()) {
index f1e7ce339e1fcd943d64447742d3d983f6cd52e2..39d3ab32dc30233dd05b55a63df2445aa7d9e358 100644 (file)
@@ -30,7 +30,7 @@ public class MapReader extends ValueReader {
   }
 
   @Override
-  void writeReadCode(ClassScope scope, boolean subtyping, String fieldName, @NotNull TextOutput out) {
+  void writeReadCode(ClassScope scope, boolean subtyping, @NotNull TextOutput out) {
     beginReadCall("Map", subtyping, out);
     if (componentParser == null) {
       out.comma().append("null");
index 1b4b03fdca85ef2ca60607c9c84017d1ad1d59aa..b14086233a7bc291413ac5aa6c690f92e4890189 100644 (file)
@@ -40,7 +40,7 @@ class ObjectValueReader<T> extends ValueReader {
   }
 
   @Override
-  void writeReadCode(ClassScope scope, boolean subtyping, String fieldName, @NotNull TextOutput out) {
+  void writeReadCode(ClassScope scope, boolean subtyping, @NotNull TextOutput out) {
     refToType.type.writeInstantiateCode(scope.getRootClassScope(), subtyping, out);
     out.append('(');
     addReaderParameter(subtyping, out);
index 3757bccfdf368dccae6917a0ce9ebf6dedbbb22a..76aebe761352987189f0af54d9f15777203fc035 100644 (file)
@@ -32,7 +32,7 @@ class PrimitiveValueReader extends ValueReader {
   }
 
   @Override
-  void writeReadCode(ClassScope methodScope, boolean subtyping, String fieldName, @NotNull TextOutput out) {
+  void writeReadCode(ClassScope methodScope, boolean subtyping, @NotNull TextOutput out) {
     if (asRawString) {
       out.append("readRawString(");
       addReaderParameter(subtyping, out);
@@ -41,7 +41,7 @@ class PrimitiveValueReader extends ValueReader {
     else {
       ValueReader.addReaderParameter(subtyping, out);
       out.append(".next").append(readPostfix).append("()");
-      //beginReadCall(readPostfix, subtyping, out, fieldName);
+      //beginReadCall(readPostfix, subtyping, out, name);
     }
   }
 
index 7ce98776f8e28e29aefb6ea366103369b60a33c1..c58cd151431fc834766e87bb47d11a24514c6c79 100644 (file)
@@ -9,7 +9,7 @@ class RawValueReader extends ValueReader {
   }
 
   @Override
-  void writeReadCode(ClassScope scope, boolean subtyping, String fieldName, @NotNull TextOutput out) {
+  void writeReadCode(ClassScope scope, boolean subtyping, @NotNull TextOutput out) {
     addReaderParameter(subtyping, out);
     out.append(".subReader();").newLine();
     addReaderParameter(subtyping, out);
index eb7424926f0ae70e4b54c1b1bb679118ae017e52..a7ff206adf95a06959234843a8168219ce7739af 100644 (file)
@@ -13,7 +13,7 @@ public class StringIntPairValueReader extends ValueReader {
   }
 
   @Override
-  void writeReadCode(ClassScope scope, boolean subtyping, String fieldName, @NotNull TextOutput out) {
+  void writeReadCode(ClassScope scope, boolean subtyping, @NotNull TextOutput out) {
   }
 
   @Override
index 7b8bd880f351aa6af1b161cecbdfc6ec0febdf45..b88509d950658bd6a6811312a58c3398f546f1b4 100644 (file)
@@ -182,17 +182,16 @@ class TypeHandler<T> {
         out.newLine();
       }
 
-      String fieldName = fieldLoader.getFieldName();
       out.append(operator).append(" (name");
-      out.append(".equals(\"").append(fieldName).append("\"))").openBlock();
+      out.append(".equals(\"").append(fieldLoader.jsonName).append("\"))").openBlock();
       {
         String primitiveValueName = fieldLoader.valueReader instanceof ObjectValueReader ? ((ObjectValueReader)fieldLoader.valueReader).primitiveValueName : null;
         if (primitiveValueName != null) {
           out.append("if (reader.peek() == com.google.gson.stream.JsonToken.BEGIN_OBJECT)").openBlock();
         }
-        assignField(out, fieldName);
+        assignField(out, fieldLoader.name);
 
-        fieldLoader.valueReader.writeReadCode(classScope, false, fieldName, out);
+        fieldLoader.valueReader.writeReadCode(classScope, false, out);
         out.semi();
 
         if (primitiveValueName != null) {
index ba3dba8d6e8c8273acbb0fc766363318c6e80fc3..c00ac913822ac1be214b8b16baf7ffdac27bbfcb 100644 (file)
@@ -17,7 +17,7 @@ abstract class ValueReader {
     appendFinishedValueTypeName(out);
   }
 
-  abstract void writeReadCode(ClassScope methodScope, boolean subtyping, String fieldName, @NotNull TextOutput out);
+  abstract void writeReadCode(ClassScope methodScope, boolean subtyping, @NotNull TextOutput out);
 
   void writeArrayReadCode(@NotNull ClassScope scope, boolean subtyping, @NotNull TextOutput out) {
     throw new UnsupportedOperationException();