/*******************************************************************************
 * Copyright (c) 2000, 2010 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.draw2d;

import java.util.Collection;

/**
 * A <code>TreeSearch</code> that excludes figures contained in a
 * {@link java.util.Collection}.
 * 
 * @author hudsonr
 * @since 2.1
 */
public class ExclusionSearch implements TreeSearch {

	private final Collection c;

	/**
	 * Constructs an Exclusion search using the given collection.
	 * 
	 * @param collection
	 *            the exclusion set
	 */
	public ExclusionSearch(Collection collection) {
		this.c = collection;
	}

	/**
	 * @see org.eclipse.draw2d.TreeSearch#accept(IFigure)
	 */
	public boolean accept(IFigure figure) {
		// Prune is called before accept, so there is no reason to check the
		// collection again.
		return true;
	}

	/**
	 * Returns <code>true</code> if the figure is a member of the Collection.
	 * 
	 * @see org.eclipse.draw2d.TreeSearch#prune(IFigure)
	 */
	public boolean prune(IFigure f) {
		return c.contains(f);
	}

}
