test_class.file: jersey-rpc-support/src/test/java/com/fullcontact/rpc/jersey/RequestParserTest.java
test_class.identifier: RequestParserTest
test_case.body: @Test
      public void handleBody__nested() throws Exception {
          NestedType nestedType = NestedType.newBuilder().setF1("abc").build();
          TestRequest expected = TestRequest.newBuilder().setNt(nestedType).build();
  
          // Output nested json only
          String json = JsonFormat.printer().print(nestedType);
  
          TestRequest.Builder deserialized = TestRequest.newBuilder();
          RequestParser.handleBody("nt", deserialized, json);
          assertThat(deserialized.build()).isEqualTo(expected);
      }
test_case.class_method_signature: RequestParserTest.handleBody__nested()
test_case.full_signature: @Test public void handleBody__nested()
test_case.identifier: handleBody__nested
test_case.invocations: build setF1 newBuilder build setNt newBuilder print printer newBuilder handleBody isEqualTo assertThat build
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void handleBody__nested()
focal_class.file: jersey-rpc-support/src/main/java/com/fullcontact/rpc/jersey/RequestParser.java
focal_class.identifier: RequestParser
focal_class.class_method_signature: RequestParser.parseQueryParams(UriInfo uriInfo,
              V.Builder builder,
              DescriptorProtos.FieldDescriptorProto... pathParams)
focal_class.full_signature: public static void parseQueryParams(UriInfo uriInfo,
              V.Builder builder,
              DescriptorProtos.FieldDescriptorProto... pathParams)
focal_class.identifier: parseQueryParams
focal_class.modifiers: public static
focal_class.parameters: (UriInfo uriInfo,
              V.Builder builder,
              DescriptorProtos.FieldDescriptorProto... pathParams)
focal_class.return: void
focal_class.signature: void parseQueryParams(UriInfo uriInfo,
              V.Builder builder,
              DescriptorProtos.FieldDescriptorProto... pathParams)
focal_class.class_method_signature: RequestParser.parseQueryParams(UriInfo uriInfo,
              V.Builder builder,
              List<DescriptorProtos.FieldDescriptorProto> pathParams)
focal_class.full_signature: public static void parseQueryParams(UriInfo uriInfo,
              V.Builder builder,
              List<DescriptorProtos.FieldDescriptorProto> pathParams)
focal_class.identifier: parseQueryParams
focal_class.modifiers: public static
focal_class.parameters: (UriInfo uriInfo,
              V.Builder builder,
              List<DescriptorProtos.FieldDescriptorProto> pathParams)
focal_class.return: void
focal_class.signature: void parseQueryParams(UriInfo uriInfo,
              V.Builder builder,
              List<DescriptorProtos.FieldDescriptorProto> pathParams)
focal_class.class_method_signature: RequestParser.parseHeaders(HttpHeaders headers, T stub)
focal_class.full_signature: public static T parseHeaders(HttpHeaders headers, T stub)
focal_class.identifier: parseHeaders
focal_class.modifiers: public static
focal_class.parameters: (HttpHeaders headers, T stub)
focal_class.return: T
focal_class.signature: T parseHeaders(HttpHeaders headers, T stub)
focal_class.class_method_signature: RequestParser.parseHeaders(HttpHeaders headers)
focal_class.full_signature: public static Metadata parseHeaders(HttpHeaders headers)
focal_class.identifier: parseHeaders
focal_class.modifiers: public static
focal_class.parameters: (HttpHeaders headers)
focal_class.return: Metadata
focal_class.signature: Metadata parseHeaders(HttpHeaders headers)
focal_class.class_method_signature: RequestParser.setFieldSafely(Message.Builder builder, String path, String value)
focal_class.full_signature: public static void setFieldSafely(Message.Builder builder, String path, String value)
focal_class.identifier: setFieldSafely
focal_class.modifiers: public static
focal_class.parameters: (Message.Builder builder, String path, String value)
focal_class.return: void
focal_class.signature: void setFieldSafely(Message.Builder builder, String path, String value)
focal_class.class_method_signature: RequestParser.setFieldSafely(Message.Builder builder, String path, List<String> value)
focal_class.full_signature: public static void setFieldSafely(Message.Builder builder, String path, List<String> value)
focal_class.identifier: setFieldSafely
focal_class.modifiers: public static
focal_class.parameters: (Message.Builder builder, String path, List<String> value)
focal_class.return: void
focal_class.signature: void setFieldSafely(Message.Builder builder, String path, List<String> value)
focal_class.class_method_signature: RequestParser.setFieldSafely(Message.Builder builder, Descriptors.FieldDescriptor fd, List<String> value)
focal_class.full_signature: public static void setFieldSafely(Message.Builder builder, Descriptors.FieldDescriptor fd, List<String> value)
focal_class.identifier: setFieldSafely
focal_class.modifiers: public static
focal_class.parameters: (Message.Builder builder, Descriptors.FieldDescriptor fd, List<String> value)
focal_class.return: void
focal_class.signature: void setFieldSafely(Message.Builder builder, Descriptors.FieldDescriptor fd, List<String> value)
focal_class.class_method_signature: RequestParser.getValueFor(FieldDescriptor fd, List<String> value)
focal_class.full_signature: private static Object getValueFor(FieldDescriptor fd, List<String> value)
focal_class.identifier: getValueFor
focal_class.modifiers: private static
focal_class.parameters: (FieldDescriptor fd, List<String> value)
focal_class.return: Object
focal_class.signature: Object getValueFor(FieldDescriptor fd, List<String> value)
focal_class.class_method_signature: RequestParser.getUnaryValueFor(Descriptors.FieldDescriptor fd, String value)
focal_class.full_signature: private static Object getUnaryValueFor(Descriptors.FieldDescriptor fd, String value)
focal_class.identifier: getUnaryValueFor
focal_class.modifiers: private static
focal_class.parameters: (Descriptors.FieldDescriptor fd, String value)
focal_class.return: Object
focal_class.signature: Object getUnaryValueFor(Descriptors.FieldDescriptor fd, String value)
focal_class.class_method_signature: RequestParser.handleBody(
              String fieldPath,
              V.Builder builder,
              String body)
focal_class.full_signature: public static void handleBody(
              String fieldPath,
              V.Builder builder,
              String body)
focal_class.identifier: handleBody
focal_class.modifiers: public static
focal_class.parameters: (
              String fieldPath,
              V.Builder builder,
              String body)
focal_class.return: void
focal_class.signature: void handleBody(
              String fieldPath,
              V.Builder builder,
              String body)
focal_method.body: public static <V extends Message> void handleBody(
              String fieldPath,
              V.Builder builder,
              String body) throws InvalidProtocolBufferException {
          // * maps all body fields to the top-level proto
          // IDENT maps all body fields to nested proto
          // TODO: handle multiple levels of nesting
          Message.Builder toMerge;
          if ("*".equals(fieldPath)) {
              toMerge = builder;
          } else {
              ImmutableList<Descriptors.FieldDescriptor> fieldDescriptors =
                      ProtobufDescriptorJavaUtil.fieldPath(builder.getDescriptorForType(), fieldPath);
  
              if (fieldDescriptors.isEmpty()) {
                  // todo bad request
                  return;
              }
  
              toMerge = builder;
              for (Descriptors.FieldDescriptor fd : fieldDescriptors) {
                  if (fd.getType() == Descriptors.FieldDescriptor.Type.MESSAGE) {
                      toMerge = toMerge.getFieldBuilder(fd);
                  }
              }
          }
  
          if (toMerge != null) {
              JsonHandler.parser().merge(body, toMerge);
          }
      }
focal_method.class_method_signature: RequestParser.handleBody(
              String fieldPath,
              V.Builder builder,
              String body)
focal_method.full_signature: public static void handleBody(
              String fieldPath,
              V.Builder builder,
              String body)
focal_method.identifier: handleBody
focal_method.invocations: equals fieldPath getDescriptorForType isEmpty getType getFieldBuilder merge parser
focal_method.modifiers: public static
focal_method.parameters: (
              String fieldPath,
              V.Builder builder,
              String body)
focal_method.return: void
focal_method.signature: void handleBody(
              String fieldPath,
              V.Builder builder,
              String body)