| // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| part of protobuf; |
| |
| /// Modifies a GeneratedMessage so that it's read-only. |
| abstract class ReadonlyMessageMixin { |
| BuilderInfo get info_; |
| |
| void addExtension(Extension extension, var value) => |
| _readonly('addExtension'); |
| |
| void clear() => _readonly('clear'); |
| |
| void clearExtension(Extension extension) => _readonly('clearExtension'); |
| |
| void clearField(int tagNumber) => _readonly('clearField'); |
| |
| List<T> createRepeatedField<T>(int tagNumber, FieldInfo<T> fi) { |
| _readonly('createRepeatedField'); |
| return null; // not reached |
| } |
| |
| void mergeFromBuffer(List<int> input, |
| [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) => |
| _readonly('mergeFromBuffer'); |
| |
| void mergeFromCodedBufferReader(CodedBufferReader input, |
| [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) => |
| _readonly('mergeFromCodedBufferReader'); |
| |
| void mergeFromJson(String data, |
| [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) => |
| _readonly('mergeFromJson'); |
| |
| void mergeFromJsonMap(Map<String, dynamic> json, |
| [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) => |
| _readonly('mergeFromJsonMap'); |
| |
| void mergeFromMessage(GeneratedMessage other) => |
| _readonly('mergeFromMessage'); |
| |
| void mergeUnknownFields(UnknownFieldSet unknownFieldSet) => |
| _readonly('mergeUnknownFields'); |
| |
| void setExtension(Extension extension, var value) => |
| _readonly('setExtension'); |
| |
| void setField(int tagNumber, var value, [int fieldType]) => |
| _readonly('setField'); |
| |
| void _readonly(String methodName) { |
| var messageType = info_.qualifiedMessageName; |
| frozenMessageModificationHandler(messageType, methodName); |
| } |
| } |