anchor.diff:  <% else -%>
       _<%= Reality::Naming.camelize(attribute.arez.name) %> = <%= nullability_prefix %>( value );
   <% end %>  }
  -<% end %>
  -<% end %>
  +<% end -%>
  +<% end -%>
   <% entity.arez.referencing_client_side_attributes.each do |attribute|
           name = attribute.inverse.name
           type = attribute.entity.arez.qualified_name
           if attribute.inverse.multiplicity == :many
  -          plural_name = Reality::Naming.pluralize(name)
  -%>
  +          plural_name = Reality::Naming.pluralize(name) -%>
  +
  +  @org.realityforge.arez.annotations.Observable( expectSetter = false )
     @javax.annotation.Nonnull
  -  public final java.util.List<<%= type %>> <%= getter_prefix(attribute) %><%= plural_name %>()
  +  public java.util.List<<%= type %>> <%= getter_prefix(attribute) %><%= plural_name %>()
     {
       return java.util.Collections.unmodifiableList( safeGet<%= plural_name %>() );
     }
  
positive.code: <% end -%>
      return _<%= Reality::Naming.camelize(attribute.arez.name) %>;
    }
  <% if attribute.attribute_type == :reference %>
  
  <% unless attribute.immutable? -%>
    @org.realityforge.arez.annotations.ObservableRef
    @javax.annotation.Nonnull
  
negative.code:   public <% end %>final void add<%= name %>( final <%= type %> value )
    {
      safeGet<%= plural_name %>().add( value );
      get<%= plural_name %>Observable().reportChanged();
    }
  
    <% if attribute.entity.data_module.name != entity.data_module.name %>/**
  