anchor.diff:          else
             raise "Unable to convert data type #{attribute.imit.transport_attribute_type} on #{attribute.qualified_name}"
           end
  -%>    if( fullUpdate || object.has( <%= entity.name %>.<%= uppercase_constantize( attribute.name ) %> ) )
  +%>    if( fullUpdate <% if !attribute.primary_key? %>|| object.has( <%= entity.name %>.<%= uppercase_constantize( attribute.name ) %> )<% end %> )
       {
         _<%= data_module.name %>Updater.set<%= attribute.imit.transport_name %>_On_<%= entity.name %>( entity, <%= value_converter %> );
       }
  
positive.code: @SuppressWarnings( { "UnusedDeclaration", "JavaDoc" } )
  public class <%= data_module.imit.json_mapper_name %>
  {
    private final @javax.annotation.Nonnull <%= data_module.imit.updater_name %> _<%= data_module.name %>Updater;
  
    public <%= data_module.imit.json_mapper_name %>( final @javax.annotation.Nonnull EntityChangeBroker broker )
    {
      _<%= data_module.name %>Updater = new <%= data_module.imit.updater_name %>( broker );
    }
  
  <% data_module.entities.each do |entity| %>
    void update<%= entity.name %>( final <%= entity.name %> entity, final org.json.JSONObject object, final boolean fullUpdate )
        throws org.json.JSONException
    {
  <% if entity.extends
     other = entity.data_module.entity_by_name(entity.extends)
  %>    update<%= other.name %>( entity, object, fullUpdate );
  <% end %>
  <% entity.declared_attributes.select{|attribute| !attribute.primary_key? && attribute.imit.client_side? }.each do |attribute|
      value_converter =
          if attribute.imit.transport_attribute_type == :datetime
            "new java.sql.Timestamp( object.getLong( #{entity.name}.#{uppercase_constantize(attribute.name)} ) )"
  
negative.code: package <%= data_module.imit.imitation_package %>;
  
  import footprints.javancss.imit.EntityChangeBroker;
  import footprints.javancss.imit.EntityRepository;
  
  /**
   * Utility class that decodes JSON payloads and applies the changes to the entities
  