{% set remove_method = 'remove' + (field_sing|firstupper) %}
{% set add_method = 'add' + (field_sing|firstupper) %}

public void set{{ field|firstupper }}({{ collection_type }}<{{ class_type }}> {{ field }}) {
    this.{{ field }}.forEach(this::{{ remove_method }});
    if ({{ field }} != null) {{ field }}.forEach(this::{{ add_method }});
}

public void {{ add_method }}({{ class_type }} {{ field_sing }}) {
    {{ field }}.add({{ field_sing }});
    {{ field_sing }}.get{{ mapped_by|firstupper }}().add(this);
}

public void {{ remove_method }}({{ class_type }} {{ field_sing }}) {
    {{ field }}.remove({{ field_sing }});
    {{ field_sing }}.get{{ mapped_by|firstupper }}().remove(this);
}