150 lines
4.1 KiB
Go
150 lines
4.1 KiB
Go
|
// Copyright 2020-2021 Buf Technologies, Inc.
|
||
|
//
|
||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
// you may not use this file except in compliance with the License.
|
||
|
// You may obtain a copy of the License at
|
||
|
//
|
||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||
|
//
|
||
|
// Unless required by applicable law or agreed to in writing, software
|
||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
// See the License for the specific language governing permissions and
|
||
|
// limitations under the License.
|
||
|
|
||
|
package protosource
|
||
|
|
||
|
type message struct {
|
||
|
namedDescriptor
|
||
|
|
||
|
fields []Field
|
||
|
extensions []Field
|
||
|
nestedMessages []Message
|
||
|
nestedEnums []Enum
|
||
|
oneofs []Oneof
|
||
|
reservedMessageRanges []MessageRange
|
||
|
reservedNames []ReservedName
|
||
|
extensionMessageRanges []MessageRange
|
||
|
parent Message
|
||
|
isMapEntry bool
|
||
|
messageSetWireFormat bool
|
||
|
noStandardDescriptorAccessor bool
|
||
|
messageSetWireFormatPath []int32
|
||
|
noStandardDescriptorAccessorPath []int32
|
||
|
}
|
||
|
|
||
|
func newMessage(
|
||
|
namedDescriptor namedDescriptor,
|
||
|
parent Message,
|
||
|
isMapEntry bool,
|
||
|
messageSetWireFormat bool,
|
||
|
noStandardDescriptorAccessor bool,
|
||
|
messageSetWireFormatPath []int32,
|
||
|
noStandardDescriptorAccessorPath []int32,
|
||
|
) *message {
|
||
|
return &message{
|
||
|
namedDescriptor: namedDescriptor,
|
||
|
isMapEntry: isMapEntry,
|
||
|
messageSetWireFormat: messageSetWireFormat,
|
||
|
noStandardDescriptorAccessor: noStandardDescriptorAccessor,
|
||
|
messageSetWireFormatPath: messageSetWireFormatPath,
|
||
|
noStandardDescriptorAccessorPath: noStandardDescriptorAccessorPath,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (m *message) Fields() []Field {
|
||
|
return m.fields
|
||
|
}
|
||
|
|
||
|
func (m *message) Extensions() []Field {
|
||
|
return m.extensions
|
||
|
}
|
||
|
|
||
|
func (m *message) Messages() []Message {
|
||
|
return m.nestedMessages
|
||
|
}
|
||
|
|
||
|
func (m *message) Enums() []Enum {
|
||
|
return m.nestedEnums
|
||
|
}
|
||
|
|
||
|
func (m *message) Oneofs() []Oneof {
|
||
|
return m.oneofs
|
||
|
}
|
||
|
|
||
|
func (m *message) ReservedMessageRanges() []MessageRange {
|
||
|
return m.reservedMessageRanges
|
||
|
}
|
||
|
|
||
|
func (m *message) ReservedTagRanges() []TagRange {
|
||
|
tagRanges := make([]TagRange, len(m.reservedMessageRanges))
|
||
|
for i, reservedMessageRange := range m.reservedMessageRanges {
|
||
|
tagRanges[i] = reservedMessageRange
|
||
|
}
|
||
|
return tagRanges
|
||
|
}
|
||
|
|
||
|
func (m *message) ReservedNames() []ReservedName {
|
||
|
return m.reservedNames
|
||
|
}
|
||
|
|
||
|
func (m *message) ExtensionMessageRanges() []MessageRange {
|
||
|
return m.extensionMessageRanges
|
||
|
}
|
||
|
|
||
|
func (m *message) Parent() Message {
|
||
|
return m.parent
|
||
|
}
|
||
|
|
||
|
func (m *message) IsMapEntry() bool {
|
||
|
return m.isMapEntry
|
||
|
}
|
||
|
|
||
|
func (m *message) MessageSetWireFormat() bool {
|
||
|
return m.messageSetWireFormat
|
||
|
}
|
||
|
|
||
|
func (m *message) NoStandardDescriptorAccessor() bool {
|
||
|
return m.noStandardDescriptorAccessor
|
||
|
}
|
||
|
|
||
|
func (m *message) MessageSetWireFormatLocation() Location {
|
||
|
return m.getLocation(m.messageSetWireFormatPath)
|
||
|
}
|
||
|
|
||
|
func (m *message) NoStandardDescriptorAccessorLocation() Location {
|
||
|
return m.getLocation(m.noStandardDescriptorAccessorPath)
|
||
|
}
|
||
|
|
||
|
func (m *message) addField(field Field) {
|
||
|
m.fields = append(m.fields, field)
|
||
|
}
|
||
|
|
||
|
func (m *message) addExtension(extension Field) {
|
||
|
m.extensions = append(m.extensions, extension)
|
||
|
}
|
||
|
|
||
|
func (m *message) addNestedMessage(nestedMessage Message) {
|
||
|
m.nestedMessages = append(m.nestedMessages, nestedMessage)
|
||
|
}
|
||
|
|
||
|
func (m *message) addNestedEnum(nestedEnum Enum) {
|
||
|
m.nestedEnums = append(m.nestedEnums, nestedEnum)
|
||
|
}
|
||
|
|
||
|
func (m *message) addOneof(oneof Oneof) {
|
||
|
m.oneofs = append(m.oneofs, oneof)
|
||
|
}
|
||
|
|
||
|
func (m *message) addReservedMessageRange(reservedMessageRange MessageRange) {
|
||
|
m.reservedMessageRanges = append(m.reservedMessageRanges, reservedMessageRange)
|
||
|
}
|
||
|
|
||
|
func (m *message) addReservedName(reservedName ReservedName) {
|
||
|
m.reservedNames = append(m.reservedNames, reservedName)
|
||
|
}
|
||
|
|
||
|
func (m *message) addExtensionMessageRange(extensionMessageRange MessageRange) {
|
||
|
m.extensionMessageRanges = append(m.extensionMessageRanges, extensionMessageRange)
|
||
|
}
|