/******************************************************************************* * Copyright (c) 2013 QNX Software Systems 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 *******************************************************************************/ package org.eclipse.cdt.core.index; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTPreprocessorIncludeStatement; import org.eclipse.cdt.core.dom.ast.IASTPreprocessorStatement; /** * A container for symbols that should be added to a linkage in the persisted index. Contributors * of the org.eclipse.cdt.core.PDOMASTProcessor extension-point are provided the opportunity * to process the parsed AST translation units. Elements of interest are added to an * implementation of this interface. * * @since 5.6 * @noimplement This interface is not intended to be implemented by clients. * @noextend This interface is not intended to be extended by clients. */ public interface IIndexSymbols { /** * Return true if the map contains no symbols and false otherwise. */ public boolean isEmpty(); /** * Adds an IASTName along with an optional referencing IASTName to the map. The names * will be associated with the optional owning include statement. * * @param owner The optional include statement that provides context for the given * names. Can be null. * @param name The name that is being added to the map, cannot be null. * @param caller The optional name that references the name being added. Can be null. */ public void add(IASTPreprocessorIncludeStatement owner, IASTName name, IASTName caller); /** * Creates an association from the caller include statement to the owning context. */ public void add(IASTPreprocessorIncludeStatement owner, IASTPreprocessorIncludeStatement caller); /** * Creates an association from the caller preprocessor statement to the owning context. */ public void add(IASTPreprocessorIncludeStatement owner, IASTPreprocessorStatement caller); }