anchor.diff:        final org.realityforge.replicant.server.EntityMessageSet messages = new org.realityforge.replicant.server.EntityMessageSet();
         getContext().collect<%= graph.name %>( messages );
         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, messages );
  +      populateChangeSetFor<%= graph.name %>( session, <%= graph.instance_root? ? pk_accessor : 'null' %>, changeSet, messages<%= graph.filter_parameter.nil? ? '' : ', filter' %> );
   <% end -%>
   <% end -%>
   <% if graph.cacheable? -%>
  
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: 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;
  
  