/*******************************************************************************
 * Copyright (c) 2004, 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.jface.viewers.deferred;

/**
 * Interface for objects that can listen to changes in an IConcurrentModel.
 * Elements in an IConcurrentModel are unordered.
 * 
 * @since 3.1
 */
public interface IConcurrentModelListener {
	
	/**
	 * Called when elements are added to the model 
	 * 
	 * @param added elements added to the model
	 */
    public void add(Object[] added);
    
    /**
     * Called when elements are removed from the model
     * 
     * @param removed elements removed from the model
     */
    public void remove(Object[] removed);
    
    /**
     * Called when elements in the model have changed
     * 
     * @param changed elements that have changed
     */
    public void update(Object[] changed);
    
    /**
     * Notifies the receiver about the complete set
     * of elements in the model. Most models will
     * not call this method unless the listener explicitly
     * requests it by calling 
     * <code>IConcurrentModel.requestUpdate</code>
     *  
     * @param newContents contents of the model
     */
    public void setContents(Object[] newContents);
}
