code: function(remove, add) {
  			var annotations = this._annotations, i, index, annotation, removed = [];
  			if (remove) {
  				for (i = remove.length - 1; i >= 0; i--) {
  					annotation = remove[i];
  					index = this._getAnnotationIndex(annotation);
  					if (index < 0) { continue; }
  					annotation._annotationModel = null;
  					annotations.splice(index, 1);
  					removed.splice(0, 0, annotation);
  				}
  			}
  			if (!add) { add = []; }
  			for (i = 0; i < add.length; i++) {
  				annotation = add[i];
  				index = binarySearch(annotations, annotation.start);
  				annotation._annotationModel = this;
  				annotations.splice(index, 0, annotation);
  			}
  			var e = {
  				type: "Changed", //$NON-NLS-0$
  				removed: removed,
  				added: add,
  				changed: []
  			};
  			
  			this.onChanged(e);
  		}
docs: Removes and adds the specifed annotations to the annotation model.
  <p>The annotation model listeners are notified of this change.  Only one changed event is generated.</p>
  
  @param {orion.editor.Annotation} remove the annotations to be removed.
  @param {orion.editor.Annotation} add the annotations to be added.
  
  @see orion.editor.AnnotationModel#addAnnotation
  @see orion.editor.AnnotationModel#removeAnnotation