def METHOD_NAME(
    self, schema_field: SchemaFieldClass, server_field: Optional[SchemaFieldClass]
) -> SchemaFieldClass:
    all_tags = self.config.get_tags_to_add(schema_field.fieldPath)
    if len(all_tags) == 0:
        # return input schema field as there is no tags to add
        return schema_field
    # Add existing tags if user want to keep them
    if (
        schema_field.globalTags is not None
        and self.config.replace_existing is False
    ):
        all_tags.extend(schema_field.globalTags.tags)
    tags_to_add: List[TagAssociationClass] = []
    server_tags: List[TagAssociationClass] = []
    if server_field is not None and server_field.globalTags is not None:
        # Go for patch
        server_tags = server_field.globalTags.tags
        server_tag_urns = [tag_association.tag for tag_association in server_tags]
        for tag in all_tags:
            if tag.tag not in server_tag_urns:
                tags_to_add.append(tag)
    # Set tags_to_add to all_tags if server tags were not present
    if len(tags_to_add) == 0:
        tags_to_add = all_tags
    new_global_tag_class: GlobalTagsClass = GlobalTagsClass(tags=[])
    new_global_tag_class.tags.extend(tags_to_add)
    new_global_tag_class.tags.extend(server_tags)
    schema_field.globalTags = new_global_tag_class
    return schema_field