blob: 10cfa05fb455e1823f89e248282992a635ac3a32 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2015 Obeo.
* 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:
* Obeo - initial API and implementation
*******************************************************************************/
package org.eclipse.emf.compare.ide.ui.internal.logical.resolver;
import com.google.common.eventbus.EventBus;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.compare.internal.utils.Graph;
/**
* A resolution context provides the different elements that can be involved in a comparison taking logical
* models into account. One instance of this interface is supposed to provide elements that are consistent
* with one another, that is, which can be used together in the same computation.
*
* @author <a href="mailto:laurent.delaigue@obeo.fr">Laurent Delaigue</a>
*/
public interface IResolutionContext {
/** The {@link EventBus} to use to broadcast and receive events. */
EventBus getEventBus();
/** The graph of dependencies. */
Graph<URI> getGraph();
/** The graph updater, in charge of making changes to the dependency graph. */
DependencyGraphUpdater<URI> getGraphUpdater();
/** The scheduler used to support multi-threading. */
ResourceComputationScheduler<URI> getScheduler();
/** The provider of dependencies between resources / URIs */
IResourceDependencyProvider getDependencyProvider();
/** The resolver for local resources. */
IResourceDependencyLocalResolver getLocalResolver();
/** The resolver for "remote" (git) resources. */
IResourceDependencyRemoteResolver getRemoteResolver();
/** The listener of model resource changes. */
ModelResourceListener getModelResourceListener();
/** The implicit dependencies provider. */
IImplicitDependencies getImplicitDependencies();
/** Initializes the context. */
void initialize();
/** Disposes the context. */
void dispose();
}