anchor.diff:  public abstract class <%= repository.imit.session_manager_name %>
     extends org.realityforge.replicant.server.transport.ReplicantSessionManager<<%= repository.imit.qualified_session_name %>>
   {
  +<% if repository.imit.graphs.any?{|g| !g.filter_parameter.nil? } -%>
  +  private transient final org.codehaus.jackson.map.ObjectMapper _jsonMapper = new org.codehaus.jackson.map.ObjectMapper();
  +  private transient final javax.json.JsonReaderFactory _readerFactory = javax.json.Json.createReaderFactory( null );
  +<% end -%>
     @javax.inject.Inject
     private <%= repository.imit.qualified_graph_encoder_name %> _encoder;
   
  
positive.code:     {
        session.setInterestedIn<%= graph.name %>( false );
  <% end -%>
        org.realityforge.replicant.server.ee.EntityMessageCacheUtil.getSessionChanges().addAction( new org.realityforge.replicant.server.ChannelAction( new org.realityforge.replicant.server.ChannelDescriptor( <%= repository.imit.qualified_graph_enum_name %>.<%= Domgen::Naming.uppercase_constantize(graph.name) %>.ordinal(), <%= graph.instance_root? ? 'id' : 'null' %> ), org.realityforge.replicant.server.ChannelAction.Action.REMOVE ) );
      }
    }
  <% end %>
  }
  
negative.code:     session.updateInterestIn<%= graph.name %>( <%= "#{pk_accessor}#{pk_accessor.nil? ? '' : ", "}" %>filter );
      final org.realityforge.replicant.server.EntityMessageSet messages = new org.realityforge.replicant.server.EntityMessageSet();
      getContext().collectForFilterChange<%= graph.name %>( messages, entity, original, filter );
      final org.realityforge.replicant.server.ChangeSet changeSet = org.realityforge.replicant.server.ee.EntityMessageCacheUtil.getSessionChanges();
      changeSet.addAction( new org.realityforge.replicant.server.ChannelAction( new org.realityforge.replicant.server.ChannelDescriptor( <%= repository.imit.qualified_graph_enum_name %>.<%= Domgen::Naming.uppercase_constantize(graph.name) %>.ordinal(), <%= graph.instance_root? ? pk_accessor : 0 %> ), org.realityforge.replicant.server.ChannelAction.Action.UPDATE, toJsonObject( filter ) ) );
      org.realityforge.replicant.server.ee.EntityMessageCacheUtil.getSessionChanges().mergeAll( org.realityforge.replicant.server.ChangeUtil.toChanges( messages.getEntityMessages(), <%= repository.imit.qualified_graph_enum_name %>.<%= Domgen::Naming.uppercase_constantize(graph.name) %>.ordinal(), <%= graph.instance_root? ? pk_accessor : 0 %> ) );
    }
  <% end -%>
  