Ejemplo n.º 1
0
 @Override
 public DescriptorProto decode(ProtoReader reader) throws IOException {
   Builder builder = new Builder();
   long token = reader.beginMessage();
   for (int tag; (tag = reader.nextTag()) != -1; ) {
     switch (tag) {
       case 1:
         builder.name(ProtoAdapter.STRING.decode(reader));
         break;
       case 8:
         builder.doc(ProtoAdapter.STRING.decode(reader));
         break;
       case 2:
         builder.field.add(FieldDescriptorProto.ADAPTER.decode(reader));
         break;
       case 6:
         builder.extension.add(FieldDescriptorProto.ADAPTER.decode(reader));
         break;
       case 3:
         builder.nested_type.add(DescriptorProto.ADAPTER.decode(reader));
         break;
       case 4:
         builder.enum_type.add(EnumDescriptorProto.ADAPTER.decode(reader));
         break;
       case 5:
         builder.extension_range.add(ExtensionRange.ADAPTER.decode(reader));
         break;
       case 7:
         builder.options(MessageOptions.ADAPTER.decode(reader));
         break;
       default:
         {
           FieldEncoding fieldEncoding = reader.peekFieldEncoding();
           Object value = fieldEncoding.rawProtoAdapter().decode(reader);
           builder.addUnknownField(tag, fieldEncoding, value);
         }
     }
   }
   reader.endMessage(token);
   return builder.build();
 }