/*******************************************************************************
* Copyright (c) 2004, 2009 IBM Corporation 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:
* IBM - Initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.scannerconfig;
import java.util.List;
import java.util.Map;
import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector;
import org.eclipse.core.resources.IProject;
/**
* Interface that a collector of compiler information must implement.
* @since 2.0
*/
public interface IManagedScannerInfoCollector extends IScannerInfoCollector {
/**
* Answers a map of collected defines that the the compiler uses by default.
* The symbols are defined in the map as a (macro, value) pair as follows
* <p><p><code>-DFOO</code> will be stored as ("FOO","")
* <p><code>-DFOO=BAR</code> will be stored as ("FOO","BAR")
* <p><p>Duplicates will not be stored in the map and any whitespaces in
* the macro or value will be trimmed out.
*
* @return a <code>Map</code> of defined symbols and values
*/
public Map<String, String> getDefinedSymbols();
/**
* Answers a <code>List</code> of unique built-in includes paths that have been
* collected for the receiver. The paths are stored as <code>String</code> in the proper
* format for the host tools.
*
* @return a <code>List</code> of built-in compiler include search paths.
*/
public List<String> getIncludePaths();
/**
* Sets the <code>IProject</code> for the receiver.
*/
public void setProject(IProject project);
}