1 // Protocol Buffers - Google's data interchange format 2 // Copyright 2008 Google Inc. All rights reserved. 3 // 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file or at 6 // https://developers.google.com/open-source/licenses/bsd 7 8 package com.google.protobuf; 9 10 import java.io.IOException; 11 12 @CheckReturnValue 13 class UnknownFieldSetLiteSchema 14 extends UnknownFieldSchema<UnknownFieldSetLite, UnknownFieldSetLite> { 15 UnknownFieldSetLiteSchema()16 UnknownFieldSetLiteSchema() {} 17 18 @Override shouldDiscardUnknownFields(Reader reader)19 boolean shouldDiscardUnknownFields(Reader reader) { 20 // We never drop unknown fields in lite. 21 return false; 22 } 23 24 @Override newBuilder()25 UnknownFieldSetLite newBuilder() { 26 return UnknownFieldSetLite.newInstance(); 27 } 28 29 @Override addVarint(UnknownFieldSetLite fields, int number, long value)30 void addVarint(UnknownFieldSetLite fields, int number, long value) { 31 fields.storeField(WireFormat.makeTag(number, WireFormat.WIRETYPE_VARINT), value); 32 } 33 34 @Override addFixed32(UnknownFieldSetLite fields, int number, int value)35 void addFixed32(UnknownFieldSetLite fields, int number, int value) { 36 fields.storeField(WireFormat.makeTag(number, WireFormat.WIRETYPE_FIXED32), value); 37 } 38 39 @Override addFixed64(UnknownFieldSetLite fields, int number, long value)40 void addFixed64(UnknownFieldSetLite fields, int number, long value) { 41 fields.storeField(WireFormat.makeTag(number, WireFormat.WIRETYPE_FIXED64), value); 42 } 43 44 @Override addLengthDelimited(UnknownFieldSetLite fields, int number, ByteString value)45 void addLengthDelimited(UnknownFieldSetLite fields, int number, ByteString value) { 46 fields.storeField(WireFormat.makeTag(number, WireFormat.WIRETYPE_LENGTH_DELIMITED), value); 47 } 48 49 @Override addGroup(UnknownFieldSetLite fields, int number, UnknownFieldSetLite subFieldSet)50 void addGroup(UnknownFieldSetLite fields, int number, UnknownFieldSetLite subFieldSet) { 51 fields.storeField(WireFormat.makeTag(number, WireFormat.WIRETYPE_START_GROUP), subFieldSet); 52 } 53 54 @Override toImmutable(UnknownFieldSetLite fields)55 UnknownFieldSetLite toImmutable(UnknownFieldSetLite fields) { 56 fields.makeImmutable(); 57 return fields; 58 } 59 60 @Override setToMessage(Object message, UnknownFieldSetLite fields)61 void setToMessage(Object message, UnknownFieldSetLite fields) { 62 ((GeneratedMessageLite<?, ?>) message).unknownFields = fields; 63 } 64 65 @Override getFromMessage(Object message)66 UnknownFieldSetLite getFromMessage(Object message) { 67 return ((GeneratedMessageLite<?, ?>) message).unknownFields; 68 } 69 70 @Override getBuilderFromMessage(Object message)71 UnknownFieldSetLite getBuilderFromMessage(Object message) { 72 UnknownFieldSetLite unknownFields = getFromMessage(message); 73 // When parsing into a lite message object, its UnknownFieldSet is either the default instance 74 // or mutable. It can't be in a state where it's immutable but not default instance. 75 if (unknownFields == UnknownFieldSetLite.getDefaultInstance()) { 76 unknownFields = UnknownFieldSetLite.newInstance(); 77 setToMessage(message, unknownFields); 78 } 79 return unknownFields; 80 } 81 82 @Override setBuilderToMessage(Object message, UnknownFieldSetLite fields)83 void setBuilderToMessage(Object message, UnknownFieldSetLite fields) { 84 setToMessage(message, fields); 85 } 86 87 @Override makeImmutable(Object message)88 void makeImmutable(Object message) { 89 getFromMessage(message).makeImmutable(); 90 } 91 92 @Override writeTo(UnknownFieldSetLite fields, Writer writer)93 void writeTo(UnknownFieldSetLite fields, Writer writer) throws IOException { 94 fields.writeTo(writer); 95 } 96 97 @Override writeAsMessageSetTo(UnknownFieldSetLite fields, Writer writer)98 void writeAsMessageSetTo(UnknownFieldSetLite fields, Writer writer) throws IOException { 99 fields.writeAsMessageSetTo(writer); 100 } 101 102 @Override merge(UnknownFieldSetLite target, UnknownFieldSetLite source)103 UnknownFieldSetLite merge(UnknownFieldSetLite target, UnknownFieldSetLite source) { 104 if (UnknownFieldSetLite.getDefaultInstance().equals(source)) { 105 return target; 106 } 107 if (UnknownFieldSetLite.getDefaultInstance().equals(target)) { 108 return UnknownFieldSetLite.mutableCopyOf(target, source); 109 } 110 return target.mergeFrom(source); 111 } 112 113 @Override getSerializedSize(UnknownFieldSetLite unknowns)114 int getSerializedSize(UnknownFieldSetLite unknowns) { 115 return unknowns.getSerializedSize(); 116 } 117 118 @Override getSerializedSizeAsMessageSet(UnknownFieldSetLite unknowns)119 int getSerializedSizeAsMessageSet(UnknownFieldSetLite unknowns) { 120 return unknowns.getSerializedSizeAsMessageSet(); 121 } 122 } 123