@Override
  public void registerDirty(IDomainObject domainObject) {
    assert domainObject.getId() != null : "id not null";
    assert !removedObjects.contains(domainObject) : "object not removed";
    if (!dirtyObjects.contains(domainObject) && !newObjects.contains(domainObject)) {
      dirtyObjects.add(domainObject);
    }
  }