anchor.diff:  
     param = ''
     type = 'Boolean'
  -  check_method = "isInterestedIn#{graph.name}"
     instance_root = nil
     if graph.instance_root?
       # Names are fully qualified so take any random data module
       instance_root = repository.entity_by_name(graph.instance_root)
       type = instance_root.primary_key.jpa.non_primitive_java_type
       param = " #{graph.name} "
  -    check_method = "is#{graph.name}Interesting"
     end
   %>
   
  
positive.code:         {
            for ( final <%= repository.imit.qualified_session_name %> session : values )
            {
              if ( session.<%= check_method %>(<%= param %> ) <%= extra_interest_filter %>)
              {
                accumulator.addChange( session, new org.realityforge.replicant.server.Change( message, <%= repository.imit.qualified_graph_enum_name %>.<%= Domgen::Naming.uppercase_constantize(graph.name) %>.ordinal(), <%= graph.instance_root? ? graph.name : 0 %> ) );
  <% if graph.instance_root? %>
  
negative.code:   public <%= graph.cacheable? ? "boolean" : "void" %> subscribeTo<%= graph.name %>( @javax.annotation.Nonnull final String sessionID<%= update_param %><% if graph.cacheable? -%>, @javax.annotation.Nullable final String cacheKey<% end %> )
    {
      final <%= repository.imit.qualified_session_name %> session = ensureSession( sessionID );
      if ( !session.<%= graph.instance_root? ? "is#{graph.name}Interesting" : "isInterestedIn#{graph.name}" %> )
      {
  <% if graph.instance_root? -%>
        session.registerInterestIn<%= graph.name %>( <%= pk_accessor %><%= graph.filter_parameter.nil? ? '' : ", filter" %> );
  