def _generate_annotation_type_class(self, ns, annotation_type):<EOL>
self.emit('<STR_LIT>'.format(<EOL>class_name_for_annotation_type(annotation_type, ns)))<EOL>with self.indent():<EOL><INDENT>if annotation_type.has_documented_type_or_params():<EOL><INDENT>self.emit('<STR_LIT>')<EOL>if annotation_type.doc:<EOL><INDENT>self.emit_wrapped_text(<EOL>self.process_doc(annotation_type.doc, self._docf))<EOL>if annotation_type.has_documented_params():<EOL><INDENT>self.emit()<EOL><DEDENT><DEDENT>for param in annotation_type.params:<EOL><INDENT>if not param.doc:<EOL><INDENT>continue<EOL><DEDENT>self.emit_wrapped_text('<STR_LIT>'.format(<EOL>fmt_var(param.name, True),<EOL>self.process_doc(param.doc, self._docf)),<EOL>subsequent_prefix='<STR_LIT:U+0020>')<EOL><DEDENT>self.emit('<STR_LIT>')<EOL><DEDENT>self.emit()<EOL>self._generate_annotation_type_class_slots(annotation_type)<EOL>self._generate_annotation_type_class_init(ns, annotation_type)<EOL>self._generate_annotation_type_class_properties(ns, annotation_type)<EOL>self.emit()<EOL><DEDENT>
Defines a Python class that represents an annotation type in Stone.