def _generate_union_tag_state_funcs(self, union):
for field in union.all_fields:<EOL><INDENT>enum_field_name = fmt_enum_name(field.name, union)<EOL>with self.block_func(<EOL>func='<STR_LIT>'.format(fmt_camel_upper(field.name)),<EOL>args=[],<EOL>return_type='<STR_LIT>'):<EOL><INDENT>self.emit('<STR_LIT>'.format(enum_field_name))<EOL><DEDENT>self.emit()<EOL><DEDENT>with self.block_func(<EOL>func='<STR_LIT>', args=[], return_type='<STR_LIT>'):<EOL><INDENT>with self.block('<STR_LIT>'):<EOL><INDENT>for field in union.all_fields:<EOL><INDENT>enum_field_name = fmt_enum_name(field.name, union)<EOL>self.emit('<STR_LIT>'.format(enum_field_name))<EOL>self.emit('<STR_LIT>'.format(enum_field_name))<EOL><DEDENT><DEDENT>self.emit()<EOL>self._generate_throw_error('<STR_LIT>',<EOL>'<STR_LIT>')<EOL><DEDENT>self.emit()<EOL>
Emits the is<TAG_NAME> methods and tagName method for determining
        tag state and retrieving human-readable value of tag state, respectively.