/*******************************************************************************
* 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.info;
import com.arm.cmsis.pack.data.ICpComponent;
import com.arm.cmsis.pack.data.ICpFile;
import com.arm.cmsis.pack.data.ICpGenerator;
import com.arm.cmsis.pack.enums.IEvaluationResult;
/**
* Interface that describes a component instantiated in the configuration
*/
public interface ICpComponentInfo extends ICpComponent, ICpItemInfo, IEvaluationResult {
/**
* Returns actual CMSIS component corresponding to this info
* @return actual component
*/
ICpComponent getComponent();
/**
* Sets actual CMSIS component to this info
*/
void setComponent(ICpComponent component);
/**
* Returns number of instantiated components
* @return number of instantiated components
*/
int getInstanceCount();
/**
* Searches for file info corresponding supplied ICpFile
* @param f ICpFile
* @return the resulting ICpFileInfo or null if not found
*/
ICpFileInfo getFileInfo(ICpFile f);
/**
* Checks if this component info has been saved in the configuration
* @return true if saved
*/
boolean isSaved();
/**
* Sets saved flag to the component info
* @parameter saved flag value to set
*/
void setSaved(boolean saved);
/**
* Returns gpdsc filename associated with the item
* @param bExpandToAbsolute flag indicating to expand to absolute path, otherwise the value returned as provided by corresponding {@link ICpGenerator}
* @return gpdsc filename or null
*/
String getGpdsc(boolean bExpandToAbsolute);
}