/******************************************************************************* * Copyright (c) 2015 ARM Ltd. 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: * ARM Ltd and ARM Germany GmbH - Initial API and implementation *******************************************************************************/ package com.arm.cmsis.pack.rte.dependencies; import java.util.Collection; import com.arm.cmsis.pack.data.ICpConditionContext; import com.arm.cmsis.pack.enums.EEvaluationResult; import com.arm.cmsis.pack.rte.components.IRteComponentItem; /** * */ public interface IRteDependencySolver extends ICpConditionContext{ /** * Evaluates dependencies for selected components * @return worst dependency evaluation result */ EEvaluationResult evaluateDependencies(); /** * Tries to resolve component dependencies * @return evaluation result after dependency resolving */ EEvaluationResult resolveDependencies(); /** * Returns dependency item for given component item (bundle, group or component) * @param component IRteComponentItem for which to get result * @return dependency result or null if component item has no unresolved dependencies */ IRteDependencyItem getDependencyItem(IRteComponentItem componentItem); /** * Returns dependency evaluation result for given item (class, group or component) * @param item IRteComponentItem for which to get result * @return condition result or IGNORED if item has no result */ EEvaluationResult getEvaluationResult(IRteComponentItem item); /** * Returns collection of dependency results (items and dependencies) * @return collection of dependency results */ Collection<? extends IRteDependencyItem> getDependencyItems(); }