...

Source file src/google.golang.org/protobuf/internal/impl/message_reflect_gen.go

Documentation: google.golang.org/protobuf/internal/impl

     1  // Copyright 2018 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Code generated by generate-types. DO NOT EDIT.
     6  
     7  package impl
     8  
     9  import (
    10  	"google.golang.org/protobuf/reflect/protoreflect"
    11  	"google.golang.org/protobuf/runtime/protoiface"
    12  )
    13  
    14  func (m *messageState) Descriptor() protoreflect.MessageDescriptor {
    15  	return m.messageInfo().Desc
    16  }
    17  func (m *messageState) Type() protoreflect.MessageType {
    18  	return m.messageInfo()
    19  }
    20  func (m *messageState) New() protoreflect.Message {
    21  	return m.messageInfo().New()
    22  }
    23  func (m *messageState) Interface() protoreflect.ProtoMessage {
    24  	return m.protoUnwrap().(protoreflect.ProtoMessage)
    25  }
    26  func (m *messageState) protoUnwrap() interface{} {
    27  	return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())
    28  }
    29  func (m *messageState) ProtoMethods() *protoiface.Methods {
    30  	mi := m.messageInfo()
    31  	mi.init()
    32  	return &mi.methods
    33  }
    34  
    35  // ProtoMessageInfo is a pseudo-internal API for allowing the v1 code
    36  // to be able to retrieve a v2 MessageInfo struct.
    37  //
    38  // WARNING: This method is exempt from the compatibility promise and
    39  // may be removed in the future without warning.
    40  func (m *messageState) ProtoMessageInfo() *MessageInfo {
    41  	return m.messageInfo()
    42  }
    43  
    44  func (m *messageState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
    45  	mi := m.messageInfo()
    46  	mi.init()
    47  	for _, ri := range mi.rangeInfos {
    48  		switch ri := ri.(type) {
    49  		case *fieldInfo:
    50  			if ri.has(m.pointer()) {
    51  				if !f(ri.fieldDesc, ri.get(m.pointer())) {
    52  					return
    53  				}
    54  			}
    55  		case *oneofInfo:
    56  			if n := ri.which(m.pointer()); n > 0 {
    57  				fi := mi.fields[n]
    58  				if !f(fi.fieldDesc, fi.get(m.pointer())) {
    59  					return
    60  				}
    61  			}
    62  		}
    63  	}
    64  	mi.extensionMap(m.pointer()).Range(f)
    65  }
    66  func (m *messageState) Has(fd protoreflect.FieldDescriptor) bool {
    67  	mi := m.messageInfo()
    68  	mi.init()
    69  	if fi, xd := mi.checkField(fd); fi != nil {
    70  		return fi.has(m.pointer())
    71  	} else {
    72  		return mi.extensionMap(m.pointer()).Has(xd)
    73  	}
    74  }
    75  func (m *messageState) Clear(fd protoreflect.FieldDescriptor) {
    76  	mi := m.messageInfo()
    77  	mi.init()
    78  	if fi, xd := mi.checkField(fd); fi != nil {
    79  		fi.clear(m.pointer())
    80  	} else {
    81  		mi.extensionMap(m.pointer()).Clear(xd)
    82  	}
    83  }
    84  func (m *messageState) Get(fd protoreflect.FieldDescriptor) protoreflect.Value {
    85  	mi := m.messageInfo()
    86  	mi.init()
    87  	if fi, xd := mi.checkField(fd); fi != nil {
    88  		return fi.get(m.pointer())
    89  	} else {
    90  		return mi.extensionMap(m.pointer()).Get(xd)
    91  	}
    92  }
    93  func (m *messageState) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) {
    94  	mi := m.messageInfo()
    95  	mi.init()
    96  	if fi, xd := mi.checkField(fd); fi != nil {
    97  		fi.set(m.pointer(), v)
    98  	} else {
    99  		mi.extensionMap(m.pointer()).Set(xd, v)
   100  	}
   101  }
   102  func (m *messageState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
   103  	mi := m.messageInfo()
   104  	mi.init()
   105  	if fi, xd := mi.checkField(fd); fi != nil {
   106  		return fi.mutable(m.pointer())
   107  	} else {
   108  		return mi.extensionMap(m.pointer()).Mutable(xd)
   109  	}
   110  }
   111  func (m *messageState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
   112  	mi := m.messageInfo()
   113  	mi.init()
   114  	if fi, xd := mi.checkField(fd); fi != nil {
   115  		return fi.newField()
   116  	} else {
   117  		return xd.Type().New()
   118  	}
   119  }
   120  func (m *messageState) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
   121  	mi := m.messageInfo()
   122  	mi.init()
   123  	if oi := mi.oneofs[od.Name()]; oi != nil && oi.oneofDesc == od {
   124  		return od.Fields().ByNumber(oi.which(m.pointer()))
   125  	}
   126  	panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName()))
   127  }
   128  func (m *messageState) GetUnknown() protoreflect.RawFields {
   129  	mi := m.messageInfo()
   130  	mi.init()
   131  	return mi.getUnknown(m.pointer())
   132  }
   133  func (m *messageState) SetUnknown(b protoreflect.RawFields) {
   134  	mi := m.messageInfo()
   135  	mi.init()
   136  	mi.setUnknown(m.pointer(), b)
   137  }
   138  func (m *messageState) IsValid() bool {
   139  	return !m.pointer().IsNil()
   140  }
   141  
   142  func (m *messageReflectWrapper) Descriptor() protoreflect.MessageDescriptor {
   143  	return m.messageInfo().Desc
   144  }
   145  func (m *messageReflectWrapper) Type() protoreflect.MessageType {
   146  	return m.messageInfo()
   147  }
   148  func (m *messageReflectWrapper) New() protoreflect.Message {
   149  	return m.messageInfo().New()
   150  }
   151  func (m *messageReflectWrapper) Interface() protoreflect.ProtoMessage {
   152  	if m, ok := m.protoUnwrap().(protoreflect.ProtoMessage); ok {
   153  		return m
   154  	}
   155  	return (*messageIfaceWrapper)(m)
   156  }
   157  func (m *messageReflectWrapper) protoUnwrap() interface{} {
   158  	return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())
   159  }
   160  func (m *messageReflectWrapper) ProtoMethods() *protoiface.Methods {
   161  	mi := m.messageInfo()
   162  	mi.init()
   163  	return &mi.methods
   164  }
   165  
   166  // ProtoMessageInfo is a pseudo-internal API for allowing the v1 code
   167  // to be able to retrieve a v2 MessageInfo struct.
   168  //
   169  // WARNING: This method is exempt from the compatibility promise and
   170  // may be removed in the future without warning.
   171  func (m *messageReflectWrapper) ProtoMessageInfo() *MessageInfo {
   172  	return m.messageInfo()
   173  }
   174  
   175  func (m *messageReflectWrapper) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
   176  	mi := m.messageInfo()
   177  	mi.init()
   178  	for _, ri := range mi.rangeInfos {
   179  		switch ri := ri.(type) {
   180  		case *fieldInfo:
   181  			if ri.has(m.pointer()) {
   182  				if !f(ri.fieldDesc, ri.get(m.pointer())) {
   183  					return
   184  				}
   185  			}
   186  		case *oneofInfo:
   187  			if n := ri.which(m.pointer()); n > 0 {
   188  				fi := mi.fields[n]
   189  				if !f(fi.fieldDesc, fi.get(m.pointer())) {
   190  					return
   191  				}
   192  			}
   193  		}
   194  	}
   195  	mi.extensionMap(m.pointer()).Range(f)
   196  }
   197  func (m *messageReflectWrapper) Has(fd protoreflect.FieldDescriptor) bool {
   198  	mi := m.messageInfo()
   199  	mi.init()
   200  	if fi, xd := mi.checkField(fd); fi != nil {
   201  		return fi.has(m.pointer())
   202  	} else {
   203  		return mi.extensionMap(m.pointer()).Has(xd)
   204  	}
   205  }
   206  func (m *messageReflectWrapper) Clear(fd protoreflect.FieldDescriptor) {
   207  	mi := m.messageInfo()
   208  	mi.init()
   209  	if fi, xd := mi.checkField(fd); fi != nil {
   210  		fi.clear(m.pointer())
   211  	} else {
   212  		mi.extensionMap(m.pointer()).Clear(xd)
   213  	}
   214  }
   215  func (m *messageReflectWrapper) Get(fd protoreflect.FieldDescriptor) protoreflect.Value {
   216  	mi := m.messageInfo()
   217  	mi.init()
   218  	if fi, xd := mi.checkField(fd); fi != nil {
   219  		return fi.get(m.pointer())
   220  	} else {
   221  		return mi.extensionMap(m.pointer()).Get(xd)
   222  	}
   223  }
   224  func (m *messageReflectWrapper) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) {
   225  	mi := m.messageInfo()
   226  	mi.init()
   227  	if fi, xd := mi.checkField(fd); fi != nil {
   228  		fi.set(m.pointer(), v)
   229  	} else {
   230  		mi.extensionMap(m.pointer()).Set(xd, v)
   231  	}
   232  }
   233  func (m *messageReflectWrapper) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
   234  	mi := m.messageInfo()
   235  	mi.init()
   236  	if fi, xd := mi.checkField(fd); fi != nil {
   237  		return fi.mutable(m.pointer())
   238  	} else {
   239  		return mi.extensionMap(m.pointer()).Mutable(xd)
   240  	}
   241  }
   242  func (m *messageReflectWrapper) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
   243  	mi := m.messageInfo()
   244  	mi.init()
   245  	if fi, xd := mi.checkField(fd); fi != nil {
   246  		return fi.newField()
   247  	} else {
   248  		return xd.Type().New()
   249  	}
   250  }
   251  func (m *messageReflectWrapper) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
   252  	mi := m.messageInfo()
   253  	mi.init()
   254  	if oi := mi.oneofs[od.Name()]; oi != nil && oi.oneofDesc == od {
   255  		return od.Fields().ByNumber(oi.which(m.pointer()))
   256  	}
   257  	panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName()))
   258  }
   259  func (m *messageReflectWrapper) GetUnknown() protoreflect.RawFields {
   260  	mi := m.messageInfo()
   261  	mi.init()
   262  	return mi.getUnknown(m.pointer())
   263  }
   264  func (m *messageReflectWrapper) SetUnknown(b protoreflect.RawFields) {
   265  	mi := m.messageInfo()
   266  	mi.init()
   267  	mi.setUnknown(m.pointer(), b)
   268  }
   269  func (m *messageReflectWrapper) IsValid() bool {
   270  	return !m.pointer().IsNil()
   271  }
   272  

View as plain text