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: <% if graph.instance_root? -%>
        session.registerInterestIn<%= graph.name %>( <%= pk_accessor %><%= graph.filter_parameter.nil? ? '' : ", filter" %> );
        final org.realityforge.replicant.server.ChangeSet changeSet = org.realityforge.replicant.server.ee.EntityMessageCacheUtil.getSessionChanges();
        populateChangeSetFor<%= graph.name %>( session, <%= graph.instance_root? ? pk_accessor : 'null' %>, changeSet, encode<%= graph.name %>( entity<%= graph.filter_parameter.nil? ? '' : ', filter' %> ) );
        expandLinks( session, changeSet );
  <% else -%>
        session.setInterestedIn<%= graph.name %>( true );
  
negative.code:   }
  <% end -%>
  
    private void populateChangeSetFor<%= graph.name %>( @javax.annotation.Nonnull final <%= repository.imit.qualified_session_name %> session, @javax.annotation.Nullable final java.io.Serializable subChannelID, @javax.annotation.Nonnull final org.realityforge.replicant.server.ChangeSet changeSet, final org.realityforge.replicant.server.EntityMessageSet messages<%= graph.filter_parameter.nil? ? '' : ", #{Domgen::Java.java_type(graph.filter_parameter, :ee, :default)} filter" %> )
    {
      changeSet.mergeAll( org.realityforge.replicant.server.ChangeUtil.toChanges( messages.getEntityMessages(), <%= repository.imit.qualified_graph_enum_name %>.<%= Domgen::Naming.uppercase_constantize(graph.name) %>.ordinal(), null == subChannelID ? 0 : subChannelID ) );
      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(), subChannelID ), org.realityforge.replicant.server.ChannelAction.Action.ADD, <%= graph.filter_parameter.nil? ? 'null' : 'toJsonObject( filter )' %> ) );
    }
  
  <% if graph.filter_parameter -%>
  