anchor.diff:           if graph.filter_parameter? && graph.instance_root? && source_graph.instance_root? && graph.filter_parameter?
   %>if ( <%= repository.imit.qualified_subscription_constants_name %>.<%= Reality::Naming.uppercase_constantize(source_graph.name) %> == source.getChannelId() && <%= repository.imit.qualified_subscription_constants_name %>.<%= Reality::Naming.uppercase_constantize(graph.name) %> == target.getChannelId() )
       {
  -      final <%= entity.primary_key.jpa.java_type %> targetID = (<%= entity.primary_key.jpa.java_type %>) target.getSubChannelId();
  -      final <%= entity.jpa.qualified_name %> entity = _<%= Reality::Naming.camelize("#{entity.data_module.name}#{entity.name}") %>Repository.getByID( targetID );
  +      final <%= entity.primary_key.jpa.java_type %> targetId = (<%= entity.primary_key.jpa.java_type %>) target.getSubChannelId();
  +      final <%= entity.jpa.qualified_name %> entity = _<%= Reality::Naming.camelize("#{entity.data_module.name}#{entity.name}") %>Repository.getByID( targetId );
         return _context.shouldFollowLinkFrom<%= graph_link.source_graph %>To<%= graph.name %>( entity, (<%= Domgen::Java.java_type(graph.filter_parameter, :ee, :default) %>) sourceEntry.getFilter() );
       }
       else <%
  
positive.code:      next if processed.include?(key)
       processed << key
  -%>
      if( <%= repository.imit.qualified_subscription_constants_name %>.<%= Reality::Naming.uppercase_constantize(graph.name) %> == channelID )
      {
        assert null != filter;
        for ( final java.lang.Integer id : subChannelIDs )
        {
          propagateFilterFrom<%= graph.name %>To<%= target_graph.name %>( session, <% if root_type %>(<%= root_type %>) id, <% end %>(<%= Domgen::Java.java_type(graph.filter_parameter, :ee, :default) %>) filter, changeSet );
        }
  
negative.code:   protected boolean shouldFollowLink( @javax.annotation.Nonnull final org.realityforge.replicant.server.transport.SubscriptionEntry sourceEntry, @javax.annotation.Nonnull final org.realityforge.replicant.server.ChannelAddress target )
    {
      final org.realityforge.replicant.server.ChannelAddress source = sourceEntry.getDescriptor();
      final int sourceChannelId = source.getChannelId();
      final int targetChannelId = target.getChannelId();
      <% repository.imit.graphs.select{|g| g.instance_root? }.collect{|g| g.inward_graph_links.select{|graph_link| graph_link.auto?} }.flatten.each do |graph_link|
           graph = repository.imit.graph_by_name(graph_link.target_graph)
           source_graph = repository.imit.graph_by_name(graph_link.source_graph)
  