diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/IIndexFragment.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/IIndexFragment.java index dd0425ded2f..8a29da2f01f 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/IIndexFragment.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/IIndexFragment.java @@ -6,12 +6,12 @@ * http://www.eclipse.org/legal/epl-v10.html * * Contributors: - * Markus Schorn - initial API and implementation - * Bryan Wilkinson (QNX) - * Andrew Ferguson (Symbian) - * Sergey Prigogin (Google) - * Jens Elmenthaler - http://bugs.eclipse.org/173458 (camel case completion) - *******************************************************************************/ + * Markus Schorn - initial API and implementation + * Bryan Wilkinson (QNX) + * Andrew Ferguson (Symbian) + * Sergey Prigogin (Google) + * Jens Elmenthaler - http://bugs.eclipse.org/173458 (camel case completion) + *******************************************************************************/ package org.eclipse.cdt.internal.core.index; import java.util.regex.Pattern; @@ -28,7 +28,7 @@ import org.eclipse.core.runtime.IProgressMonitor; /** * Interface for the implementation of the actual index storage mechanism. - * + * * @since 4.0 */ public interface IIndexFragment { @@ -56,72 +56,76 @@ public interface IIndexFragment { * @see IIndex#FIND_ALL_OCCURRENCES */ final int FIND_ALL_OCCURRENCES = IIndex.FIND_ALL_OCCURRENCES; - + /** - * Property key for the fragment ID. The fragment ID should uniquely identify the fragments usage within - * a logical index. + * Property key for the fragment ID. The fragment ID should uniquely identify the fragments + * usage within a logical index. * @since 4.0 */ public static final String PROPERTY_FRAGMENT_ID= "org.eclipse.cdt.internal.core.index.fragment.id"; //$NON-NLS-1$ /** - * Property key for the fragment format ID. The fragment format ID should uniquely identify a format of an index fragment - * up to version information. That is, as a particular format changes version its ID should remain the same. + * Property key for the fragment format ID. The fragment format ID should uniquely identify + * a format of an index fragment up to version information. That is, as a particular format + * changes version its ID should remain the same. * @since 4.0.1 */ public static final String PROPERTY_FRAGMENT_FORMAT_ID= "org.eclipse.cdt.internal.core.index.fragment.format.id"; //$NON-NLS-1$ - + /** - * Property key for the fragment format's version. Version numbers belonging to the same format (identified by format ID) should be - * comparable with each other. The version scheme exposed should be compatible with the OSGi framework's - * version scheme - i.e. it should be successfully parsed by org.osgi.framework.Version.parseVersion(String). A null value + * Property key for the fragment format's version. Version numbers belonging to the same format + * (identified by format ID) should be comparable with each other. The version scheme exposed + * should be compatible with the OSGi framework's version scheme - i.e. it should be + * successfully parsed by org.osgi.framework.Version.parseVersion(String). A null value * for this property is interpreted as Version(0.0.0) * @since 4.0.1 */ public static final String PROPERTY_FRAGMENT_FORMAT_VERSION= "org.eclipse.cdt.internal.core.index.fragment.format.version"; //$NON-NLS-1$ - + /** * Property key for storing whether indexer has to resume or not. */ public static final String PROPERTY_RESUME_INDEXER= "org.eclipse.cdt.internal.core.index.resume"; //$NON-NLS-1$ - + /** - * Returns the file for the given location and linkage. + * Returns the file for the given location and linkage. * May return null, if no such file exists. * This method may only return files that are actually managed by this fragment. * This method returns files without content, also. * @param linkageID the id of the linkage in which the file has been parsed. * @param location the IIndexFileLocation representing the location of the file - * @return the file for the location, or null if the file is not present in the index + * @return the file for the location, or null if the file is not present in + * the index * @throws CoreException */ IIndexFragmentFile getFile(int linkageID, IIndexFileLocation location) throws CoreException; /** - * Returns the files in all linkages for the given location. + * Returns the files in all linkages for the given location. * This method may only return files that are actually managed by this fragment. * @param location the IIndexFileLocation representing the location of the file - * @return the file for the location, or null if the file is not present in the index + * @return the file for the location, or null if the file is not present in + * the index * @throws CoreException */ IIndexFragmentFile[] getFiles(IIndexFileLocation location) throws CoreException; /** - * Returns all include directives that point to the given file. The input file may belong to - * another fragment. All of the include directives returned must belong to files managed by + * Returns all include directives that point to the given file. The input file may belong to + * another fragment. All of the include directives returned must belong to files managed by * this fragment. * @param file a file to search for includes pointing to it * @return an array of include directives managed by this fragment * @throws CoreException */ IIndexFragmentInclude[] findIncludedBy(IIndexFragmentFile file) throws CoreException; - + /** * Looks for a binding matching the given one. May return null, if no * such binding exists. The binding may belong to an AST or another index fragment. * @param binding the binding to look for. * @return the binding, or null - * @throws CoreException + * @throws CoreException */ IIndexFragmentBinding adaptBinding(IBinding binding) throws CoreException; @@ -133,14 +137,17 @@ public interface IIndexFragment { * @throws CoreException */ IIndexFragmentBinding findBinding(IASTName astName) throws CoreException; - + /** - * Searches for all bindings with qualified names that seen as an array of simple names match the given array - * of patterns. In case a binding exists in multiple projects, no duplicate bindings are returned. - * You can search with an array of patterns that specifies a partial qualification only. - * @param patterns an array of patterns the names of the qualified name of the bindings have to match. - * @param isFullyQualified if true, the array of pattern specifies the fully qualified name - * @param filter a filter that allows for skipping parts of the index + * Searches for all bindings with qualified names that seen as an array of simple names match + * the given array of patterns. In case a binding exists in multiple projects, no duplicate + * bindings are returned. + * You can search with an array of patterns that specifies a partial qualification only. + * @param patterns an array of patterns the names of the qualified name of the bindings have + * to match. + * @param isFullyQualified if true, the array of pattern specifies the fully + * qualified name + * @param filter a filter that allows for skipping parts of the index * @param monitor a monitor to report progress, may be null * @return an array of bindings matching the pattern * @throws CoreException @@ -148,23 +155,23 @@ public interface IIndexFragment { IIndexFragmentBinding[] findBindings(Pattern[] patterns, boolean isFullyQualified, IndexFilter filter, IProgressMonitor monitor) throws CoreException; /** - * Searches for all macro containers (one for macros with the same name) with names that - * match the given pattern. In case a binding exists in multiple projects, no duplicate bindings + * Searches for all macro containers (one for macros with the same name) with names that + * match the given pattern. In case a binding exists in multiple projects, no duplicate bindings * are returned. * @param pattern a pattern the name of the bindings have to match. - * @param filter a filter that allows for skipping parts of the index + * @param filter a filter that allows for skipping parts of the index * @param monitor a monitor to report progress, may be null * @return an array of bindings matching the pattern * @throws CoreException */ IIndexFragmentBinding[] findMacroContainers(Pattern pattern, IndexFilter filter, IProgressMonitor monitor) throws CoreException; - + /** * Searches for all bindings with qualified names that seen as an array of simple names equals - * the given array of names. + * the given array of names. * @param names an array of names the qualified name of the bindings have to match. - * @param filter a filter that allows for skipping parts of the index + * @param filter a filter that allows for skipping parts of the index * @param monitor a monitor to report progress, may be null * @return an array of bindings matching the pattern * @throws CoreException @@ -172,15 +179,16 @@ public interface IIndexFragment { IIndexFragmentBinding[] findBindings(char[][] names, IndexFilter filter, IProgressMonitor monitor) throws CoreException; /** - * Searches for all names that resolve to the given binding. You can limit the result to references, declarations - * or definitions, or a combination of those. + * Searches for all names that resolve to the given binding. You can limit the result to + * references, declarations or definitions, or a combination of those. * @param binding a binding for which names are searched for - * @param flags a combination of {@link #FIND_DECLARATIONS}, {@link #FIND_DEFINITIONS} and {@link #FIND_REFERENCES} + * @param flags a combination of {@link #FIND_DECLARATIONS}, {@link #FIND_DEFINITIONS} and + * {@link #FIND_REFERENCES} * @return an array of names * @throws CoreException */ IIndexFragmentName[] findNames(IBinding binding, int flags) throws CoreException; - + /** * Acquires a read lock. * @throws InterruptedException @@ -191,7 +199,7 @@ public interface IIndexFragment { * Releases a read lock. */ void releaseReadLock(); - + /** * @return true if there are threads waiting for read locks. */ @@ -213,33 +221,35 @@ public interface IIndexFragment { * @param monitor to report progress, may be null */ IIndexFragmentBinding[] findBindingsForPrefix(char[] prefix, boolean filescope, IndexFilter filter, IProgressMonitor monitor) throws CoreException; - + /** * Returns all bindings that would be a valid completion for the given text. * @param monitor to report progress, may be null */ IIndexFragmentBinding[] findBindingsForContentAssist(char[] prefix, boolean filescope, IndexFilter filter, IProgressMonitor monitor) throws CoreException; - + /** * Returns all macros with the given prefix or name, accepted by the given filter * @param monitor to report progress, may be null */ IIndexMacro[] findMacros(char[] name, boolean isPrefix, boolean caseSensitive, IndexFilter filter, IProgressMonitor monitor) throws CoreException; - + /** * Returns the linkages that are contained in this fragment */ IIndexLinkage[] getLinkages(); - + /** - * Read the named property in this fragment. All fragments are expected to return a non-null value for + * Read the named property in this fragment. All fragments are expected to return a non-null + * value for * * @param propertyName a case-sensitive identifier for a property, or null - * @return the value associated with the key, or null if either no such property is set, or the specified key was null + * @return the value associated with the key, or null if either no such property is set, + * or the specified key was null * @throws CoreException * @see IIndexFragment#PROPERTY_FRAGMENT_ID * @see IIndexFragment#PROPERTY_FRAGMENT_FORMAT_ID @@ -251,12 +261,12 @@ public interface IIndexFragment { * Resets the counters for cache-hits and cache-misses. */ void resetCacheCounters(); - + /** * Returns cache hits since last reset of counters. */ long getCacheHits(); - + /** * Returns cache misses since last reset of counters. */ @@ -277,13 +287,13 @@ public interface IIndexFragment { * Caches an object with the key, the cache must be cleared at latest when the fragment no * longer holds a locks. * @param replace if false an existing entry will not be replaced. - * @return the value that is actually stored. + * @return the value that is actually stored. */ Object putCachedResult(Object key, Object value, boolean replace); /** * Returns a previously cached object, the cache is cleared at latest when the fragment no - * longer holds a locks. + * longer holds a locks. */ Object getCachedResult(Object key); @@ -294,7 +304,7 @@ public interface IIndexFragment { /** * Returns the global inline namespaces. - * @throws CoreException + * @throws CoreException */ IIndexScope[] getInlineNamespaces() throws CoreException; }