Class: ProtobufDescriptor::MessageDescriptor

Inherits:
Object
  • Object
show all
Includes:
NamedChild
Defined in:
lib/protobuf_descriptor/message_descriptor.rb

Overview

Describes a message type.

See DescriptorProto

Defined Under Namespace

Classes: FieldDescriptor

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from NamedChild

#fully_qualified_java_name, #fully_qualified_name, #fully_qualified_ruby_name, #fully_qualified_wire_name

Constructor Details

#initialize(parent, message_descriptor_proto) ⇒ MessageDescriptor

Returns a new instance of MessageDescriptor.



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/protobuf_descriptor/message_descriptor.rb', line 113

def initialize(parent, message_descriptor_proto)
  @parent = parent
  @message_descriptor_proto = message_descriptor_proto
  @nested_type = ProtobufDescriptor::NamedCollection.new(
      message_descriptor_proto.nested_type.map { |m|
          ProtobufDescriptor::MessageDescriptor.new(self, m)
      })
  @enum_type = ProtobufDescriptor::NamedCollection.new(
      message_descriptor_proto.enum_type.map { |m|
          ProtobufDescriptor::EnumDescriptor.new(self, m)
      })
  @field = ProtobufDescriptor::NamedCollection.new(
      message_descriptor_proto.field.map { |m|
          ProtobufDescriptor::MessageDescriptor::FieldDescriptor.new(self, m)
      })
end

Instance Attribute Details

#enum_typeObject (readonly) Also known as: enum_types, enums

The enums that are defined at the top level of this message, as a NamedCollection of EnumDescriptors



107
108
109
# File 'lib/protobuf_descriptor/message_descriptor.rb', line 107

def enum_type
  @enum_type
end

#fieldObject (readonly) Also known as: fields

The fields of this message, as a NamedCollection of FieldDescriptors



111
112
113
# File 'lib/protobuf_descriptor/message_descriptor.rb', line 111

def field
  @field
end

#message_descriptor_protoObject (readonly)

The MessageDescriptorProto this MessageDescriptor is wrapping.



99
100
101
# File 'lib/protobuf_descriptor/message_descriptor.rb', line 99

def message_descriptor_proto
  @message_descriptor_proto
end

#nested_typeObject (readonly) Also known as: nested_types, messages

The messages that are defined at the top level of this message, as a NamedCollection of MessageDescriptors



103
104
105
# File 'lib/protobuf_descriptor/message_descriptor.rb', line 103

def nested_type
  @nested_type
end

#parentObject (readonly)

The containing FileDescriptor or MessageDescriptor that defines this message.



96
97
98
# File 'lib/protobuf_descriptor/message_descriptor.rb', line 96

def parent
  @parent
end

Instance Method Details

#childrenObject

Set of all top-level messages ahnd enums that are defined within this message.



162
163
164
165
# File 'lib/protobuf_descriptor/message_descriptor.rb', line 162

def children
  @children ||= ProtobufDescriptor::NamedCollection.new(
      @nested_type.collection + @enum_type.collection)
end

#extensionObject Also known as: extensions

The extensions defined for this message



141
142
143
# File 'lib/protobuf_descriptor/message_descriptor.rb', line 141

def extension
  message_descriptor_proto.extension
end

#extension_rangeObject Also known as: extension_ranges

The extension ranges defined for this message



136
137
138
# File 'lib/protobuf_descriptor/message_descriptor.rb', line 136

def extension_range
  message_descriptor_proto.extension_range
end

#nameObject

The name of the message



146
147
148
# File 'lib/protobuf_descriptor/message_descriptor.rb', line 146

def name
  message_descriptor_proto.name
end

#optionsObject

The MessageOptions defined for this message.



131
132
133
# File 'lib/protobuf_descriptor/message_descriptor.rb', line 131

def options
  message_descriptor_proto.options
end