anchor.diff:      final String mappingId = org.realityforge.guiceyloops.shared.ValueUtil.randomString();
       return <%= data_module.jpa.short_test_code %>.create<%= entity.sync.master_entity.name %>( <%= entity.sync.master_entity.attributes.collect{|a| sync_generate_attribute_value(a) }.compact.join(', ') %> );
     }
  +
  +  @javax.annotation.Nonnull
  +  protected <%= entity.sync.master_entity.jpa.qualified_name %> create<%= entity.sync.master_entity.name %>ToDelete( <%= (entity.sync.master_entity.attributes.select{|a| a.reference? && a.referenced_entity.data_module.name == a.entity.data_module.name }.collect{|a| "@javax.annotation.#{a.nullable? ? 'Nullable' : 'Nonnull' } final #{a.referenced_entity.jpa.qualified_name} #{Reality::Naming.camelize( a.name )}" } + ['@javax.annotation.Nullable final java.util.Date deletedAt']).join(', ') %>, @javax.annotation.Nonnull java.util.Collection<java.lang.Runnable> onDelete )
  +  {
  +    return create<%= entity.sync.master_entity.name %>( <%= (entity.sync.master_entity.attributes.select{|a| a.reference? && a.referenced_entity.data_module.name == a.entity.data_module.name }.collect{|a| Reality::Naming.camelize( a.name ) } + ['deletedAt']).join(', ') %> );
  +  }
   <% if entity.sync.update_via_sync? -%>
   
     protected void update<%= entity.sync.master_entity.name %>( @javax.annotation.Nonnull final <%= entity.sync.master_entity.jpa.qualified_name %> entity )
  
positive.code:     }
  
      {
  <% data_module.sync.entities_to_synchronize.each do |entity| -%>
  <% if entity.sync.delete_via_sync? -%>
        <%= data_module.jpa.short_test_code %>.mark<%= entity.sync.master_entity.name  %>AsDeleted( <%= Reality::Naming.camelize( entity.sync.master_entity.name ) %>ToDelete );
  
negative.code:   public void synchronizeDataSource()
      throws Exception
    {
      final java.util.Collection<java.lang.Runnable> onDeleteActions = new java.util.ArrayList<java.lang.Runnable>();
      final <%= data_module.entity_by_name(:MappingSource).jpa.qualified_name %> mappingSource = <%= data_module.jpa.short_test_code %>.createMappingSource( org.realityforge.guiceyloops.shared.ValueUtil.randomString( <%= data_module.entity_by_name(:MappingSource).jpa.qualified_name %>.CODE_MAX_SIZE ) );
      final <%= data_module.entity_by_name(:MappingSource).jpa.qualified_name %> mappingSourceIgnored = <%= data_module.jpa.short_test_code %>.createMappingSource( org.realityforge.guiceyloops.shared.ValueUtil.randomString( <%= data_module.entity_by_name(:MappingSource).jpa.qualified_name %>.CODE_MAX_SIZE ) );
      final <%= data_module.entity_by_name(:MappingSource).jpa.qualified_name %> mappingSourceToDelete = mappingSource;
  