test_class.declarator: fileDescriptorProto =
              TestRequest.getDescriptor().getFile().toProto()
test_class.modifier: private final
test_class.original_string: private final DescriptorProtos.FileDescriptorProto fileDescriptorProto =
              TestRequest.getDescriptor().getFile().toProto();
test_class.type: DescriptorProtos.FileDescriptorProto
test_class.var_name: fileDescriptorProto
test_class.declarator: serviceDescriptorProto = DescriptorProtos.ServiceDescriptorProto
              .newBuilder()
              .setName("TestService")
              .build()
test_class.modifier: private final
test_class.original_string: private final DescriptorProtos.ServiceDescriptorProto serviceDescriptorProto = DescriptorProtos.ServiceDescriptorProto
              .newBuilder()
              .setName("TestService")
              .build();
test_class.type: DescriptorProtos.ServiceDescriptorProto
test_class.var_name: serviceDescriptorProto
test_class.file: jersey-rpc-support/src/test/java/com/fullcontact/rpc/jersey/util/ProtobufDescriptorJavaUtilTest.java
test_class.identifier: ProtobufDescriptorJavaUtilTest
test_case.body: @Test
      public void fieldPath() throws Exception {
          assertThat(ProtobufDescriptorJavaUtil.fieldPath(TestRequest.getDescriptor(), "nt.nnt.f1"))
                  .extracting(Descriptors.FieldDescriptor::getName)
                  .isEqualTo(Lists.newArrayList("nt", "nnt", "f1"));
      }
test_case.class_method_signature: ProtobufDescriptorJavaUtilTest.fieldPath()
test_case.full_signature: @Test public void fieldPath()
test_case.identifier: fieldPath
test_case.invocations: isEqualTo extracting assertThat fieldPath getDescriptor newArrayList
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void fieldPath()
focal_class.file: jersey-rpc-support/src/main/java/com/fullcontact/rpc/jersey/util/ProtobufDescriptorJavaUtil.java
focal_class.identifier: ProtobufDescriptorJavaUtil
focal_class.class_method_signature: ProtobufDescriptorJavaUtil.ProtobufDescriptorJavaUtil()
focal_class.full_signature: private  ProtobufDescriptorJavaUtil()
focal_class.identifier: ProtobufDescriptorJavaUtil
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  ProtobufDescriptorJavaUtil()
focal_class.class_method_signature: ProtobufDescriptorJavaUtil.javaPackage(DescriptorProtos.FileDescriptorProto fd)
focal_class.full_signature: public static String javaPackage(DescriptorProtos.FileDescriptorProto fd)
focal_class.identifier: javaPackage
focal_class.modifiers: public static
focal_class.parameters: (DescriptorProtos.FileDescriptorProto fd)
focal_class.return: String
focal_class.signature: String javaPackage(DescriptorProtos.FileDescriptorProto fd)
focal_class.class_method_signature: ProtobufDescriptorJavaUtil.grpcImplBaseClass(DescriptorProtos.FileDescriptorProto fd,
              DescriptorProtos.ServiceDescriptorProto sdp)
focal_class.full_signature: public static String grpcImplBaseClass(DescriptorProtos.FileDescriptorProto fd,
              DescriptorProtos.ServiceDescriptorProto sdp)
focal_class.identifier: grpcImplBaseClass
focal_class.modifiers: public static
focal_class.parameters: (DescriptorProtos.FileDescriptorProto fd,
              DescriptorProtos.ServiceDescriptorProto sdp)
focal_class.return: String
focal_class.signature: String grpcImplBaseClass(DescriptorProtos.FileDescriptorProto fd,
              DescriptorProtos.ServiceDescriptorProto sdp)
focal_class.class_method_signature: ProtobufDescriptorJavaUtil.grpcStubClass(DescriptorProtos.FileDescriptorProto fd,
              DescriptorProtos.ServiceDescriptorProto sdp)
focal_class.full_signature: public static String grpcStubClass(DescriptorProtos.FileDescriptorProto fd,
              DescriptorProtos.ServiceDescriptorProto sdp)
focal_class.identifier: grpcStubClass
focal_class.modifiers: public static
focal_class.parameters: (DescriptorProtos.FileDescriptorProto fd,
              DescriptorProtos.ServiceDescriptorProto sdp)
focal_class.return: String
focal_class.signature: String grpcStubClass(DescriptorProtos.FileDescriptorProto fd,
              DescriptorProtos.ServiceDescriptorProto sdp)
focal_class.class_method_signature: ProtobufDescriptorJavaUtil.jerseyResourceClassName(DescriptorProtos.ServiceDescriptorProto sdp)
focal_class.full_signature: public static String jerseyResourceClassName(DescriptorProtos.ServiceDescriptorProto sdp)
focal_class.identifier: jerseyResourceClassName
focal_class.modifiers: public static
focal_class.parameters: (DescriptorProtos.ServiceDescriptorProto sdp)
focal_class.return: String
focal_class.signature: String jerseyResourceClassName(DescriptorProtos.ServiceDescriptorProto sdp)
focal_class.class_method_signature: ProtobufDescriptorJavaUtil.genClassName(Descriptors.Descriptor descriptor)
focal_class.full_signature: public static String genClassName(Descriptors.Descriptor descriptor)
focal_class.identifier: genClassName
focal_class.modifiers: public static
focal_class.parameters: (Descriptors.Descriptor descriptor)
focal_class.return: String
focal_class.signature: String genClassName(Descriptors.Descriptor descriptor)
focal_class.class_method_signature: ProtobufDescriptorJavaUtil.fieldPath(Descriptors.Descriptor root, String path)
focal_class.full_signature: public static ImmutableList<Descriptors.FieldDescriptor> fieldPath(Descriptors.Descriptor root, String path)
focal_class.identifier: fieldPath
focal_class.modifiers: public static
focal_class.parameters: (Descriptors.Descriptor root, String path)
focal_class.return: ImmutableList<Descriptors.FieldDescriptor>
focal_class.signature: ImmutableList<Descriptors.FieldDescriptor> fieldPath(Descriptors.Descriptor root, String path)
focal_method.body: public static ImmutableList<Descriptors.FieldDescriptor> fieldPath(Descriptors.Descriptor root, String path) {
          Iterable<String> pathSegments = Splitter.on('.').omitEmptyStrings().trimResults().split(path);
  
          Iterator<String> pathIterator = pathSegments.iterator();
          Descriptors.Descriptor descriptor = root;
          Descriptors.FieldDescriptor current;
          ImmutableList.Builder<Descriptors.FieldDescriptor> pathList = ImmutableList.builder();
          while (pathIterator.hasNext()) {
              String segment = pathIterator.next();
              current = descriptor.findFieldByName(segment);
  
              // not found, return empty
              if (current == null) {
                  return ImmutableList.of();
              }
  
              if (current.getType() != Descriptors.FieldDescriptor.Type.MESSAGE && pathIterator.hasNext()) {
                  throw new IllegalArgumentException("Found non-complex datatype at " + segment
                          + " in path: " + path + ": " + current);
              }
  
              if (current.getType() == Descriptors.FieldDescriptor.Type.MESSAGE) {
                  descriptor = current.getMessageType();
              }
  
              pathList.add(current);
          }
  
          return pathList.build();
      }
focal_method.class_method_signature: ProtobufDescriptorJavaUtil.fieldPath(Descriptors.Descriptor root, String path)
focal_method.full_signature: public static ImmutableList<Descriptors.FieldDescriptor> fieldPath(Descriptors.Descriptor root, String path)
focal_method.identifier: fieldPath
focal_method.invocations: split trimResults omitEmptyStrings on iterator builder hasNext next findFieldByName of getType hasNext getType getMessageType add build
focal_method.modifiers: public static
focal_method.parameters: (Descriptors.Descriptor root, String path)
focal_method.return: ImmutableList<Descriptors.FieldDescriptor>
focal_method.signature: ImmutableList<Descriptors.FieldDescriptor> fieldPath(Descriptors.Descriptor root, String path)