/******************************************************************************* * Copyright (c) 2007, 2010 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.equinox.p2.query; import org.eclipse.core.runtime.IProgressMonitor; /** * An IQueryable contains objects, and is able to perform queries on those objects. *

* This interface may be implemented by clients. * @since 2.0 */ public interface IQueryable { /** * Performs a query, passing any objects that satisfy the * query to the provided collector. *

* This method is long-running; progress and cancellation are provided * by the given progress monitor. *

* * @param query The query to perform * @param monitor a progress monitor, or null if progress * reporting is not desired * @return The collector argument */ public IQueryResult query(IQuery query, IProgressMonitor monitor); }