static

in core/src/main/java/com/twitter/elephantbird/mapreduce/io/SerializedBlock.java [103:145]


  static {
    // initialize messageDescriptor and the three field descriptors

    DescriptorProtos.FieldDescriptorProto version =
        DescriptorProtos.FieldDescriptorProto.newBuilder()
        .setName("version")
        .setNumber(1)
        .setType(Type.TYPE_INT32)
        .setLabel(Label.LABEL_OPTIONAL)
        .build();

    DescriptorProtos.FieldDescriptorProto protoClassName =
        DescriptorProtos.FieldDescriptorProto.newBuilder()
        .setName("proto_class_name")
        .setNumber(2)
        .setType(Type.TYPE_STRING)
        .setLabel(Label.LABEL_OPTIONAL)
        .build();

    DescriptorProtos.FieldDescriptorProto protoBlobs =
        DescriptorProtos.FieldDescriptorProto.newBuilder()
        .setName("proto_blobs")
        .setNumber(3)
        .setType(Type.TYPE_BYTES)
        .setLabel(Label.LABEL_REPEATED)
        .build();

    try {
      messageDescriptor = Protobufs.makeMessageDescriptor(
              DescriptorProtos.DescriptorProto.newBuilder()
                .setName("SerializedBlock")
                .addField(version)
                .addField(protoClassName)
                .addField(protoBlobs)
                .build());
    } catch (Descriptors.DescriptorValidationException e) {
      throw new RuntimeException(e);
    }

    versionDesc        = messageDescriptor.findFieldByName("version");
    protoClassNameDesc = messageDescriptor.findFieldByName("proto_class_name");
    protoBlobsDesc     = messageDescriptor.findFieldByName("proto_blobs");
  }