| // 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_; |
| |
| bool get _isReadOnly => true; |
| |
| 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) { |
| String messageType = info_.qualifiedMessageName; |
| frozenMessageModificationHandler(messageType, methodName); |
| } |
| } |