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");
}