public Builder mergeFrom(
     com.google.protobuf.CodedInputStream input,
     com.google.protobuf.ExtensionRegistryLite extensionRegistry)
     throws java.io.IOException {
   com.google.protobuf.UnknownFieldSet.Builder unknownFields =
       com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
   while (true) {
     int tag = input.readTag();
     switch (tag) {
       case 0:
         this.setUnknownFields(unknownFields.build());
         return this;
       default:
         {
           if (!parseUnknownField(
               input, unknownFields,
               extensionRegistry, tag)) {
             this.setUnknownFields(unknownFields.build());
             return this;
           }
           break;
         }
       case 10:
         {
           setAuthor(input.readString());
           break;
         }
       case 18:
         {
           org.waveprotocol.wave.federation.Proto.ProtocolHashedVersion.Builder subBuilder =
               org.waveprotocol.wave.federation.Proto.ProtocolHashedVersion.newBuilder();
           if (hasResultingVersion()) {
             subBuilder.mergeFrom(getResultingVersion());
           }
           input.readMessage(subBuilder, extensionRegistry);
           setResultingVersion(subBuilder.buildPartial());
           break;
         }
       case 24:
         {
           setApplicationTimestamp(input.readInt64());
           break;
         }
       case 34:
         {
           org.waveprotocol.wave.federation.Proto.ProtocolWaveletOperation.Builder subBuilder =
               org.waveprotocol.wave.federation.Proto.ProtocolWaveletOperation.newBuilder();
           input.readMessage(subBuilder, extensionRegistry);
           addOperation(subBuilder.buildPartial());
           break;
         }
     }
   }
 }
 public Builder mergeResultingVersion(
     org.waveprotocol.wave.federation.Proto.ProtocolHashedVersion value) {
   if (result.hasResultingVersion()
       && result.resultingVersion_
           != org.waveprotocol.wave.federation.Proto.ProtocolHashedVersion
               .getDefaultInstance()) {
     result.resultingVersion_ =
         org.waveprotocol.wave.federation.Proto.ProtocolHashedVersion.newBuilder(
                 result.resultingVersion_)
             .mergeFrom(value)
             .buildPartial();
   } else {
     result.resultingVersion_ = value;
   }
   result.hasResultingVersion = true;
   return this;
 }