blob: cecc2574b9fa70a4880a6cb073335733f6882c9c [file] [log] [blame]
// Copyright (c) 2012, 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;
/// An object representing an extension field.
class Extension<T> extends FieldInfo<T> {
final String extendee;
Extension(this.extendee, String name, int tagNumber, int fieldType,
{dynamic defaultOrMaker,
CreateBuilderFunc subBuilder,
ValueOfFunc valueOf,
List<ProtobufEnum> enumValues,
String protoName})
: super(name, tagNumber, null, fieldType,
defaultOrMaker: defaultOrMaker,
subBuilder: subBuilder,
valueOf: valueOf,
enumValues: enumValues,
protoName: protoName);
Extension.repeated(this.extendee, String name, int tagNumber, int fieldType,
{CheckFunc<T> check,
CreateBuilderFunc subBuilder,
ValueOfFunc valueOf,
List<ProtobufEnum> enumValues,
String protoName})
: super.repeated(name, tagNumber, null, fieldType, check, subBuilder,
valueOf: valueOf, enumValues: enumValues, protoName: protoName);
@override
int get hashCode => extendee.hashCode * 31 + tagNumber;
@override
bool operator ==(other) {
if (other is! Extension) return false;
Extension o = other;
return extendee == o.extendee && tagNumber == o.tagNumber;
}
}