/* Copyright (C) 2009 Mobile Sorcery AB This program is free software; you can redistribute it and/or modify it under the terms of the Eclipse Public License v1.0. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Eclipse Public License v1.0 for more details. You should have received a copy of the Eclipse Public License v1.0 along with this program. It is also available at http://www.eclipse.org/legal/epl-v10.html */ package com.mobilesorcery.sdk.internal.dependencies; import java.util.Collection; import java.util.Map; import org.eclipse.core.runtime.CoreException; /** * An interface for computing/providing dependencies. * @author Mattias Bybro, mattias.bybro@purplescout.se * */ public interface IDependencyProvider<T> { /** * Given an object, computes a dependency map, where each key object points * to a collection of objects dependent upon it. * @param obj * @return * @throws CoreException If for some reason, the dependencies * could not be resolved */ public Map<T, Collection<T>> computeDependenciesOf(T obj) throws CoreException; }