class_docstr: Abstract base class for protocol messages.
  
  Protocol message classes are almost always generated by the protocol
  compiler.  These generated types subclass Message and implement the methods
  shown below.
  
  TODO(robinson): Link to an HTML document here.
  
  TODO(robinson): Document that instances of this class will also
  have an Extensions attribute with __getitem__ and __setitem__.
  Again, not sure how to best convey this.
  
  TODO(robinson): Document that the class must also have a static
    RegisterExtension(extension_field) method.
    Not sure how to best express at this point.
class_docstr_tok: ["Abstract","base","class","for","protocol","messages",".","Protocol","message","classes","are","almost","always","generated","by","the","protocol","compiler",".","These","generated","types","subclass","Message","and","implement","the","methods","shown","below",".","TODO","(","robinson",")",":","Link","to","an","HTML","document","here",".","TODO","(","robinson",")",":","Document","that","instances","of","this","class","will","also","have","an","Extensions","attribute","with","__getitem__","and","__setitem__",".","Again",",","not","sure","how","to","best","convey","this",".","TODO","(","robinson",")",":","Document","that","the","class","must","also","have","a","static","RegisterExtension","(","extension_field",")","method",".","Not","sure","how","to","best","express","at","this","point","."]
code: def HasExtension(self, extension_handle):
      raise NotImplementedError
  
label_desc: Use image node_id 20 for calling the Message obj's underlying member method code with example usage: obj.HasExtension(extension_handle) without return types