public void remove(R record) {
		if(this.changedRecords.contains(record)) {
			switch(this.recordStatuses.get(record)) {
				case NEW:
					this.insertNum--;
					this.changedRecords.remove(record);
					break;
				case MODIFIED:
					this.updateNum--;
					this.removeNum++;
					this.recordStatuses.put(record, RecordStatus.REMOVED);
					break;
				case REMOVED:
			}
		} else if(record.getId() != IIdentifiable.NEUTRAL_ID){
			this.changedRecords.add(record);
			this.recordStatuses.put(record, RecordStatus.REMOVED);
			this.removeNum++;
		}
	}