code: @Override
    public T read(final JsonReader in) throws IOException {
      final JsonElement tree = elementAdapter.read(in);
      if (tree.isJsonObject()) {
        for (Map.Entry<String, List<String>> entry : serializedNameMethods.entrySet()) {
          final String fieldName = entry.getKey();
          final List<String> alternatives = entry.getValue();
          final JsonObject asJsonObject = tree.getAsJsonObject();
          for (String alternative : alternatives) {
            final JsonElement element = asJsonObject.get(alternative);
            if (element != null) {
              asJsonObject.remove(alternative);
              asJsonObject.add(fieldName, element);
              break;
            }
          }
        }
      }
      return delegate.fromJsonTree(tree);
    }
docs: {@inheritDoc}