/*******************************************************************************
* Copyright (c) 2009, 2010 SAP AG 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:
* SAP AG - initial API and implementation
******************************************************************************/
package de.hpi.sam.bp2009.solution.queryContextScopeProvider;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.query2.QueryContext;
/**
* Can provide an EMF query2 context that describes what's visible for a query,
* starting at a given element. The provider implementation may use the element
* to determine, based on visibility and modularization rules, what can be seen
* by the query. The provider can be asked to look in one of two directions: "forward"
* means that a scope will be determined containing everything that can be "seen"
* from the object's location. In other words, this is the scope to which the object
* would be allowed to create references. "Backward" means that a scope will be
* determined containing everything that can see the object. This scope contains the
* model elements which would be allowed to create references to the object.
*
* @author Axel Uhl
*
*/
public interface QueryContextProvider {
QueryContext getForwardScopeQueryContext(Notifier context);
QueryContext getBackwardScopeQueryContext(Notifier context);
}