anchor.diff:    }
   
     @java.lang.Override
  -  protected void processDeleteMessages( @javax.annotation.Nonnull final org.realityforge.replicant.server.EntityMessage message, @javax.annotation.Nonnull final java.util.Collection<org.realityforge.replicant.server.transport.ReplicantSession> sessions )
  +  protected void processDeleteMessages( @javax.annotation.Nonnull final org.realityforge.replicant.server.EntityMessage message, @javax.annotation.Nonnull final java.util.Collection<org.realityforge.replicant.server.transport.ReplicantSession> sessions, @javax.annotation.Nonnull final org.realityforge.replicant.server.ChangeAccumulator accumulator )
     {
       final java.util.Map<String, java.io.Serializable> routingKeys = message.getRoutingKeys();
   <%
  
positive.code:   }
  
    @java.lang.Override
    protected void processUpdateMessages( @javax.annotation.Nonnull final org.realityforge.replicant.server.EntityMessage message, @javax.annotation.Nonnull final java.util.Collection<org.realityforge.replicant.server.transport.ReplicantSession> sessions, @javax.annotation.Nonnull org.realityforge.replicant.server.ChangeAccumulator accumulator )
    {
      final java.util.Map<String, java.io.Serializable> routingKeys = message.getRoutingKeys();
  <%
  
negative.code:   public void unsubscribeFrom<%= graph.name %>( @javax.annotation.Nonnull final String sessionID<%= param %> )
      throws <%= repository.exception_by_name(repository.imit.invalid_session_exception).ee.qualified_name %>
    {
      unsubscribe( sessionID, new org.realityforge.replicant.server.ChannelDescriptor( <%= repository.imit.qualified_graph_enum_name %>.<%= Reality::Naming.uppercase_constantize(graph.name) %>.ordinal(), <%= graph.instance_root? ? pk_accessor : 'null' %> ), org.realityforge.replicant.server.ee.EntityMessageCacheUtil.getSessionChanges() );
    }
  
  <% end -%>
  