anchor.diff:  <% if graph.filter_parameter?  && !graph.filter_parameter.immutable? -%>
     @react4j.annotations.Prop
     @javax.annotation.Nonnull
  -  protected abstract <% if graph.instance_root? -%>Instance<% else -%>Type<% end -%>ResultCallback onUpdating();
  +  abstract <% if graph.instance_root? -%>Instance<% else -%>Type<% end -%>ResultCallback onUpdating();
   
   <% unless graph.instance_root? -%>
     @java.lang.Override
  
positive.code: public abstract class <%= graph.react4j_subscription_component_name %>
    extends replicant.react4j.ReplicantSubscription<<%= graph.instance_root? ? graph.application.repository.entity_by_name(graph.instance_root).arez.qualified_name : 'java.lang.Void' %>>
  {
    @java.lang.Override
    protected int getChannelId()
    {
      return <%= graph.application.repository.imit.qualified_subscription_constants_name %>.<%= Reality::Naming.uppercase_constantize(graph.name) %>;
    }
  
    @java.lang.Override
    protected int getSystemId()
    {
      return <%= graph.application.repository.imit.qualified_system_constants_name %>.SCHEMA_ID;
    }
  
  <% if graph.instance_root? -%>
  
  <% unless graph.application.repository.entity_by_name(graph.instance_root).primary_key.imit.primitive?(:default, :assume_generated => true) %>
    @javax.annotation.Nonnull
  <% end %>
    @react4j.annotations.Prop
    protected abstract <%= graph.application.repository.entity_by_name(graph.instance_root).primary_key.imit.java_type(:default, :assume_generated => true) %> getId();
  
    @java.lang.Override
    protected boolean hasId()
    {
      return true;
    }
  
    @react4j.annotations.OnPropChange
    protected void onIdChange( <% unless graph.application.repository.entity_by_name(graph.instance_root).primary_key.imit.primitive?(:default, :assume_generated => true) %>@javax.annotation.Nonnull <% end %>final <%= graph.application.repository.entity_by_name(graph.instance_root).primary_key.imit.java_type(:default, :assume_generated => true) %> id )
    {
      updateAreaOfInterestOnIdChange();
    }
  
negative.code:     return () -> null;
    }
  <% end -%>
    @javax.annotation.Nonnull
    @java.lang.Override
    protected final replicant.ChannelAddress getAddress()
    {
      return new replicant.ChannelAddress( <%= graph.application.repository.imit.qualified_system_constants_name %>.SCHEMA_ID, <%= graph.application.repository.imit.qualified_subscription_constants_name %>.<%= Reality::Naming.uppercase_constantize(graph.name) %>, <%= graph.instance_root? ? 'getId()' : 'null' -%> );
    }
  }
  