mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-24 09:25:31 +02:00
API tags for org.eclipse.cdt.core.browser.*, bug 260830.
This commit is contained in:
parent
fda5b99f5f
commit
49e24aa545
19 changed files with 883 additions and 688 deletions
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2007 QNX Software Systems and others.
|
||||
* Copyright (c) 2004, 2009 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
|
||||
|
@ -30,7 +30,7 @@ import org.eclipse.core.runtime.NullProgressMonitor;
|
|||
/**
|
||||
* Manages a search cache for types in the workspace. Instead of returning
|
||||
* objects of type <code>ICElement</code> the methods of this class returns a
|
||||
* list of the lightweight objects <code>TypeInfo</code>.
|
||||
* list of the lightweight objects <code>ITypeInfo</code>.
|
||||
* <P>
|
||||
* AllTypesCache runs asynchronously using a background job to rebuild the cache
|
||||
* as needed. If the cache becomes dirty again while the background job is
|
||||
|
@ -39,6 +39,9 @@ import org.eclipse.core.runtime.NullProgressMonitor;
|
|||
* If <code>getTypes</code> is called in response to a user action, a progress
|
||||
* dialog is shown. If called before the background job has finished, getTypes
|
||||
* waits for the completion of the background job.
|
||||
*
|
||||
* @noextend This class is not intended to be subclassed by clients.
|
||||
* @noinstantiate This class is not intended to be instantiated by clients.
|
||||
*/
|
||||
public class AllTypesCache {
|
||||
private static final boolean DEBUG = false;
|
||||
|
@ -135,33 +138,21 @@ public class AllTypesCache {
|
|||
}
|
||||
}
|
||||
|
||||
/** Returns first type in the cache which matches the given
|
||||
* type and name. If no type is found, <code>null</code>
|
||||
* is returned.
|
||||
*
|
||||
* @param project the enclosing project
|
||||
* @param type the ICElement type
|
||||
* @param qualifiedName the qualified type name to match
|
||||
* @return the matching type
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated never worked.
|
||||
*/
|
||||
@Deprecated
|
||||
public static ITypeInfo getType(ICProject project, int type, IQualifiedTypeName qualifiedName) {
|
||||
// TODO - seems to be only used when a namespace name is changed
|
||||
// which would be pretty slow against the PDOM.
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all types matching name in the given project.
|
||||
*
|
||||
* @param project the enclosing project
|
||||
* @param qualifiedName The qualified type name
|
||||
* @param matchEnclosed <code>true</code> if enclosed types count as matches (foo::bar == bar)
|
||||
* @param ignoreCase <code>true</code> if case-insensitive
|
||||
* @return Array of types
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated never worked.
|
||||
*/
|
||||
@Deprecated
|
||||
public static ITypeInfo[] getTypes(ICProject project, IQualifiedTypeName qualifiedName, boolean matchEnclosed, boolean ignoreCase) {
|
||||
// TODO - seems to be only used when a class or namespace name is changed
|
||||
// which would be pretty slow against the PDOM.
|
||||
return new ITypeInfo[0];
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2007 Wind River Systems, Inc. and others.
|
||||
* Copyright (c) 2007, 2009 Wind River Systems, Inc. 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
|
||||
|
@ -14,11 +14,10 @@ package org.eclipse.cdt.core.browser;
|
|||
/**
|
||||
* Provide function related information.
|
||||
*
|
||||
* <p>
|
||||
* Not intended to be implemented by clients.
|
||||
* </p>
|
||||
*
|
||||
* @since 4.0
|
||||
*
|
||||
* @noextend This interface is not intended to be extended by clients.
|
||||
* @noimplement This interface is not intended to be implemented by clients.
|
||||
*/
|
||||
public interface IFunctionInfo {
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2006 QNX Software Systems and others.
|
||||
* Copyright (c) 2004, 2009 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
|
||||
|
@ -10,6 +10,10 @@
|
|||
*******************************************************************************/
|
||||
package org.eclipse.cdt.core.browser;
|
||||
|
||||
/**
|
||||
* @noextend This interface is not intended to be extended by clients.
|
||||
* @noimplement This interface is not intended to be implemented by clients.
|
||||
*/
|
||||
public interface IQualifiedTypeName extends Comparable<IQualifiedTypeName> {
|
||||
|
||||
public final static String QUALIFIER = "::"; //$NON-NLS-1$
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2006 QNX Software Systems and others.
|
||||
* Copyright (c) 2004, 2009 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
|
||||
|
@ -15,7 +15,8 @@ import org.eclipse.cdt.core.model.ICProject;
|
|||
import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
|
||||
|
||||
/**
|
||||
* Type information.
|
||||
* @noextend This interface is not intended to be extended by clients.
|
||||
* @noimplement This interface is not intended to be implemented by clients.
|
||||
*/
|
||||
public interface ITypeInfo {
|
||||
|
||||
|
@ -35,11 +36,6 @@ public interface ITypeInfo {
|
|||
*/
|
||||
public int getCElementType();
|
||||
|
||||
/**
|
||||
* Sets the CElement type.
|
||||
*/
|
||||
public void setCElementType(int type);
|
||||
|
||||
/**
|
||||
* Gets the type name.
|
||||
*/
|
||||
|
@ -50,156 +46,180 @@ public interface ITypeInfo {
|
|||
*/
|
||||
public IQualifiedTypeName getQualifiedTypeName();
|
||||
|
||||
/**
|
||||
* Returns true if the type exists.
|
||||
*/
|
||||
public boolean exists();
|
||||
|
||||
/**
|
||||
* Returns true if the element type is unknown.
|
||||
*/
|
||||
public boolean isUndefinedType();
|
||||
|
||||
/**
|
||||
* Returns true if this type is enclosed by other types,
|
||||
* i.e. declared an inside another namespace or class.
|
||||
*/
|
||||
public boolean isEnclosedType();
|
||||
|
||||
/** Gets the enclosing type, i.e. the outer class or namespace which contains this type.
|
||||
* @return the enclosing type, or <code>null</code> if not found.
|
||||
*/
|
||||
public ITypeInfo getEnclosingType();
|
||||
|
||||
/** Gets the enclosing namespace for this type.
|
||||
* @return the enclosing namespace, or <code>null</code> if none exists.
|
||||
*/
|
||||
public ITypeInfo getEnclosingNamespace(boolean includeGlobalNamespace);
|
||||
|
||||
/** Gets the first enclosing type which matches one of the given kinds.
|
||||
* @param kinds Array containing CElement types: C_NAMESPACE, C_CLASS, C_STRUCT
|
||||
* @return the enclosing type, or <code>null</code> if not found.
|
||||
*/
|
||||
public ITypeInfo getEnclosingType(int[] kinds);
|
||||
|
||||
/** Gets the root namespace, i.e. the outermost namespace
|
||||
* which contains this type.
|
||||
* @param includeGlobalNamespace <code>true</code> if the global (default) namespace should be returned
|
||||
* @return the namespace, or <code>null</code> if not found.
|
||||
*/
|
||||
public ITypeInfo getRootNamespace(boolean includeGlobalNamespace);
|
||||
|
||||
/**
|
||||
* Returns true if this type is capable of enclosing other types,
|
||||
* i.e. it is a namespace, class, or struct.
|
||||
*/
|
||||
public boolean isEnclosingType();
|
||||
|
||||
/**
|
||||
* Returns true if this type encloses other types, i.e. contains
|
||||
* inner classes or namespaces.
|
||||
*/
|
||||
public boolean hasEnclosedTypes();
|
||||
|
||||
/**
|
||||
* Returns true if this type encloses the given type.
|
||||
*/
|
||||
public boolean encloses(ITypeInfo info);
|
||||
|
||||
/**
|
||||
* Returns true if this type is enclosed by the given type.
|
||||
*/
|
||||
public boolean isEnclosed(ITypeInfo info);
|
||||
|
||||
/** Gets the enclosed types, i.e. inner classes or classes inside this namespace.
|
||||
* @return array of inner types, or empty array if not found.
|
||||
*/
|
||||
public ITypeInfo[] getEnclosedTypes();
|
||||
|
||||
/** Gets the enclosed types, i.e. inner classes or classes inside this namespace.
|
||||
* @param kinds Array containing CElement types: C_NAMESPACE, C_CLASS, C_STRUCT,
|
||||
* C_UNION, C_ENUMERATION, C_TYPEDEF
|
||||
* @return array of inner types, or empty array if not found.
|
||||
*/
|
||||
public ITypeInfo[] getEnclosedTypes(int kinds[]);
|
||||
|
||||
/**
|
||||
* Gets the enclosing project.
|
||||
*/
|
||||
public ICProject getEnclosingProject();
|
||||
|
||||
/**
|
||||
* Returns true if type is enclosed in the given scope.
|
||||
*/
|
||||
public boolean isEnclosed(ITypeSearchScope scope);
|
||||
|
||||
/**
|
||||
* Adds a source reference.
|
||||
*/
|
||||
public void addReference(ITypeReference location);
|
||||
|
||||
/** Gets the originating locations where this type was declared.
|
||||
/**
|
||||
* Gets the originating locations where this type was declared.
|
||||
* @return all known source references, or an empty
|
||||
* array if none found.
|
||||
*/
|
||||
public ITypeReference[] getReferences();
|
||||
|
||||
/** Gets the real location where type was declared.
|
||||
* @return the parsed source reference (with offset and length),
|
||||
/**
|
||||
* Gets the real location where type was declared.
|
||||
*
|
||||
* @return the parsed source reference (with offset and length),
|
||||
* or <code>null</code> if not found.
|
||||
*/
|
||||
public ITypeReference getResolvedReference();
|
||||
|
||||
|
||||
/**
|
||||
* Returns true if the type can be substituted.
|
||||
* Gets the enclosing project.
|
||||
*/
|
||||
public ICProject getEnclosingProject();
|
||||
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public void setCElementType(int type);
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean exists();
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isUndefinedType();
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isEnclosedType();
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo getEnclosingType();
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo getEnclosingNamespace(boolean includeGlobalNamespace);
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo getEnclosingType(int[] kinds);
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo getRootNamespace(boolean includeGlobalNamespace);
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isEnclosingType();
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean hasEnclosedTypes();
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean encloses(ITypeInfo info);
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isEnclosed(ITypeInfo info);
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo[] getEnclosedTypes();
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo[] getEnclosedTypes(int kinds[]);
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isEnclosed(ITypeSearchScope scope);
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public void addReference(ITypeReference location);
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean canSubstituteFor(ITypeInfo info);
|
||||
|
||||
/**
|
||||
* Returns true if other types extend this type.
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean hasSubTypes();
|
||||
|
||||
/** Gets all types which extend this type.
|
||||
* @return array of types, or <code>null</code> if none found.
|
||||
*/
|
||||
public ITypeInfo[] getSubTypes();
|
||||
|
||||
/**
|
||||
* Returns true if this type has base classes.
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean hasSuperTypes();
|
||||
|
||||
/** Gets the base classes.
|
||||
* @return array of types, or <code>null</code> if none found.
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo[] getSubTypes();
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo[] getSuperTypes();
|
||||
|
||||
/**
|
||||
* Gets the base class access visibility (PRIVATE, PROTECTED, PUBLIC)
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public ASTAccessVisibility getSuperTypeAccess(ITypeInfo subType);
|
||||
|
||||
/**
|
||||
* Adds a derived class reference, i.e. this type is used as
|
||||
* a base class at the given location.
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public void addDerivedReference(ITypeReference location);
|
||||
|
||||
/** Gets the originating locations where this type was
|
||||
* used as a base class.
|
||||
* @return all known source references, or an empty
|
||||
* array if none found.
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeReference[] getDerivedReferences();
|
||||
|
||||
/**
|
||||
* Returns true if the type is a class or struct.
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isClass();
|
||||
|
||||
/**
|
||||
* Returns true if type is referenced in the given scope.
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isReferenced(ITypeSearchScope scope);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2006 QNX Software Systems and others.
|
||||
* Copyright (c) 2004, 2009 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
|
||||
|
@ -10,6 +10,12 @@
|
|||
*******************************************************************************/
|
||||
package org.eclipse.cdt.core.browser;
|
||||
|
||||
/**
|
||||
* @deprecated not used anywhere
|
||||
* @noimplement This interface is not intended to be implemented by clients.
|
||||
* @noextend This interface is not intended to be extended by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public interface ITypeInfoVisitor {
|
||||
|
||||
public boolean visit(ITypeInfo info);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2006 QNX Software Systems and others.
|
||||
* Copyright (c) 2004, 2009 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
|
||||
|
@ -17,6 +17,10 @@ import org.eclipse.core.resources.IProject;
|
|||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
|
||||
/**
|
||||
* @noextend This interface is not intended to be extended by clients.
|
||||
* @noimplement This interface is not intended to be implemented by clients.
|
||||
*/
|
||||
public interface ITypeReference {
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2006 QNX Software Systems and others.
|
||||
* Copyright (c) 2004, 2009 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
|
||||
|
@ -17,6 +17,10 @@ import org.eclipse.cdt.core.model.ICProject;
|
|||
import org.eclipse.cdt.core.model.IWorkingCopy;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
|
||||
/**
|
||||
* @noextend This interface is not intended to be extended by clients.
|
||||
* @noimplement This interface is not intended to be implemented by clients.
|
||||
*/
|
||||
public interface ITypeSearchScope {
|
||||
|
||||
public boolean isPathScope();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2006 QNX Software Systems and others.
|
||||
* Copyright (c) 2004, 2009 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
|
||||
|
@ -13,10 +13,9 @@ package org.eclipse.cdt.core.browser;
|
|||
import org.eclipse.cdt.core.model.IWorkingCopy;
|
||||
|
||||
/**
|
||||
* Defines a simple interface in order to provide
|
||||
* a level of abstraction between the Core and UI
|
||||
* code.
|
||||
* @deprecated use {@link org.eclipse.cdt.core.model.IWorkingCopyProvider}, instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public interface IWorkingCopyProvider {
|
||||
public IWorkingCopy[] getWorkingCopies();
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2006, 2008 QNX Software Systems and others.
|
||||
* Copyright (c) 2006, 2009 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
|
||||
*
|
||||
* Contributors:
|
||||
* QNX - Initial API and implementation
|
||||
* Doug Schaefer (QNX) - Initial API and implementation
|
||||
* IBM Corporation
|
||||
* Andrew Ferguson (Symbian)
|
||||
* Anton Leherbauer (Wind River Systems)
|
||||
|
@ -50,8 +50,8 @@ import org.eclipse.core.runtime.NullProgressMonitor;
|
|||
import org.eclipse.core.runtime.Path;
|
||||
|
||||
/**
|
||||
* @author Doug Schaefer
|
||||
* @noextend This class is not intended to be subclassed by clients.
|
||||
* @noinstantiate This class is not intended to be instantiated by clients.
|
||||
* @noextend This interface is not intended to be extended by clients.
|
||||
*/
|
||||
public class IndexTypeInfo implements ITypeInfo, IFunctionInfo {
|
||||
private static int hashCode(String[] array) {
|
||||
|
@ -116,7 +116,7 @@ public class IndexTypeInfo implements ITypeInfo, IFunctionInfo {
|
|||
|
||||
return new IndexTypeInfo(fqn, flsq, elementType, index, null, null, null);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a type info object suitable for a macro.
|
||||
* @param index a non-null index in which to locate references
|
||||
|
@ -137,6 +137,13 @@ public class IndexTypeInfo implements ITypeInfo, IFunctionInfo {
|
|||
return new IndexTypeInfo(new String[] {new String(name)}, ICElement.C_MACRO, params, null, index);
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 5.1
|
||||
*/
|
||||
public static IndexTypeInfo create(IndexTypeInfo rhs, ITypeReference ref) {
|
||||
return new IndexTypeInfo(rhs, ref);
|
||||
}
|
||||
|
||||
private IndexTypeInfo(String[] fqn, IIndexFileLocation fileLocal, int elementType, IIndex index, String[] params, String returnType, ITypeReference reference) {
|
||||
Assert.isTrue(index != null);
|
||||
this.fqn= fqn;
|
||||
|
@ -148,64 +155,18 @@ public class IndexTypeInfo implements ITypeInfo, IFunctionInfo {
|
|||
this.reference= reference;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated, use {@link #create(IIndex, IIndexBinding)}.
|
||||
*/
|
||||
public IndexTypeInfo(String[] fqn, int elementType, IIndex index) {
|
||||
this(fqn, null, elementType, index, null, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated, use {@link #create(IIndex, IIndexBinding)}.
|
||||
*/
|
||||
public IndexTypeInfo(String[] fqn, int elementType, String[] params, String returnType, IIndex index) {
|
||||
private IndexTypeInfo(String[] fqn, int elementType, String[] params, String returnType, IIndex index) {
|
||||
this(fqn, null, elementType, index, params, returnType, null);
|
||||
}
|
||||
|
||||
public IndexTypeInfo(IndexTypeInfo rhs, ITypeReference ref) {
|
||||
private IndexTypeInfo(IndexTypeInfo rhs, ITypeReference ref) {
|
||||
this(rhs.fqn, rhs.fileLocal, rhs.elementType, rhs.index, rhs.params, rhs.returnType, ref);
|
||||
}
|
||||
|
||||
public void addDerivedReference(ITypeReference location) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public void addReference(ITypeReference location) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean canSubstituteFor(ITypeInfo info) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean encloses(ITypeInfo info) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean exists() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public int getCElementType() {
|
||||
return elementType;
|
||||
}
|
||||
|
||||
public ITypeReference[] getDerivedReferences() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public ITypeInfo[] getEnclosedTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public ITypeInfo[] getEnclosedTypes(int[] kinds) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public ITypeInfo getEnclosingNamespace(boolean includeGlobalNamespace) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public ICProject getEnclosingProject() {
|
||||
if(getResolvedReference()!=null) {
|
||||
IProject project = reference.getProject();
|
||||
|
@ -216,15 +177,6 @@ public class IndexTypeInfo implements ITypeInfo, IFunctionInfo {
|
|||
return null;
|
||||
}
|
||||
|
||||
public ITypeInfo getEnclosingType() {
|
||||
// TODO not sure
|
||||
return null;
|
||||
}
|
||||
|
||||
public ITypeInfo getEnclosingType(int[] kinds) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return fqn[fqn.length-1];
|
||||
}
|
||||
|
@ -233,6 +185,64 @@ public class IndexTypeInfo implements ITypeInfo, IFunctionInfo {
|
|||
return new QualifiedTypeName(fqn);
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.core.browser.IFunctionInfo#getParameters()
|
||||
*/
|
||||
public String[] getParameters() {
|
||||
return params;
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.core.browser.IFunctionInfo#getReturnType()
|
||||
*/
|
||||
public String getReturnType() {
|
||||
return returnType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + elementType;
|
||||
result = prime * result + ((fileLocal == null) ? 0 : fileLocal.hashCode());
|
||||
result = prime * result + IndexTypeInfo.hashCode(fqn);
|
||||
result = prime * result + IndexTypeInfo.hashCode(params);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type info objects are equal if they compute the same references.
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
IndexTypeInfo other = (IndexTypeInfo) obj;
|
||||
if (elementType != other.elementType)
|
||||
return false;
|
||||
if (fileLocal == null) {
|
||||
if (other.fileLocal != null)
|
||||
return false;
|
||||
} else if (!fileLocal.equals(other.fileLocal))
|
||||
return false;
|
||||
if (!Arrays.equals(fqn, other.fqn))
|
||||
return false;
|
||||
if (!Arrays.equals(params, other.params))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 5.1
|
||||
*/
|
||||
public boolean isFileLocal() {
|
||||
return fileLocal != null;
|
||||
}
|
||||
|
||||
public ITypeReference getResolvedReference() {
|
||||
if(reference==null) {
|
||||
if (elementType == ICElement.C_MACRO) {
|
||||
|
@ -452,121 +462,240 @@ public class IndexTypeInfo implements ITypeInfo, IFunctionInfo {
|
|||
return otherFile.equals(file);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public void addDerivedReference(ITypeReference location) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public void addReference(ITypeReference location) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean canSubstituteFor(ITypeInfo info) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean encloses(ITypeInfo info) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean exists() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeReference[] getDerivedReferences() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo[] getEnclosedTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo[] getEnclosedTypes(int[] kinds) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo getEnclosingNamespace(boolean includeGlobalNamespace) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo getEnclosingType() {
|
||||
// TODO not sure
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo getEnclosingType(int[] kinds) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo getRootNamespace(boolean includeGlobalNamespace) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo[] getSubTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ASTAccessVisibility getSuperTypeAccess(ITypeInfo subType) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo[] getSuperTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean hasEnclosedTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean hasSubTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean hasSuperTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isClass() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isEnclosed(ITypeInfo info) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isEnclosed(ITypeSearchScope scope) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isEnclosedType() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isEnclosingType() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isReferenced(ITypeSearchScope scope) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isUndefinedType() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public void setCElementType(int type) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.core.browser.IFunctionInfo#getParameters()
|
||||
*/
|
||||
public String[] getParameters() {
|
||||
return params;
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.core.browser.IFunctionInfo#getReturnType()
|
||||
*/
|
||||
public String getReturnType() {
|
||||
return returnType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + elementType;
|
||||
result = prime * result + ((fileLocal == null) ? 0 : fileLocal.hashCode());
|
||||
result = prime * result + IndexTypeInfo.hashCode(fqn);
|
||||
result = prime * result + IndexTypeInfo.hashCode(params);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type info objects are equal if they compute the same references.
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
IndexTypeInfo other = (IndexTypeInfo) obj;
|
||||
if (elementType != other.elementType)
|
||||
return false;
|
||||
if (fileLocal == null) {
|
||||
if (other.fileLocal != null)
|
||||
return false;
|
||||
} else if (!fileLocal.equals(other.fileLocal))
|
||||
return false;
|
||||
if (!Arrays.equals(fqn, other.fqn))
|
||||
return false;
|
||||
if (!Arrays.equals(params, other.params))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 5.1
|
||||
*/
|
||||
public boolean isFileLocal() {
|
||||
return fileLocal != null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2006 QNX Software Systems and others.
|
||||
* Copyright (c) 2004, 2009 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
|
||||
|
@ -27,6 +27,12 @@ import org.eclipse.core.resources.ResourcesPlugin;
|
|||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
|
||||
/**
|
||||
* @deprecated use {@link org.eclipse.cdt.utils.PathUtil}, instead.
|
||||
* @noextend This class is not intended to be subclassed by clients.
|
||||
* @noinstantiate This class is not intended to be instantiated by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public class PathUtil {
|
||||
|
||||
public static boolean isWindowsFileSystem() {
|
||||
|
@ -133,6 +139,9 @@ public class PathUtil {
|
|||
return relativePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
public static ICProject getEnclosingProject(IPath fullPath) {
|
||||
IWorkspaceRoot root = getWorkspaceRoot();
|
||||
if (root != null) {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2006 QNX Software Systems and others.
|
||||
* Copyright (c) 2004, 2009 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
|
||||
|
@ -13,6 +13,9 @@ package org.eclipse.cdt.core.browser;
|
|||
import org.eclipse.cdt.core.CConventions;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
|
||||
/**
|
||||
* @noextend This class is not intended to be subclassed by clients.
|
||||
*/
|
||||
public class QualifiedTypeName implements IQualifiedTypeName {
|
||||
|
||||
private static final String[] NO_SEGMENTS = new String[0];
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2006 QNX Software Systems and others.
|
||||
* Copyright (c) 2004, 2009 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
|
||||
|
@ -10,319 +10,336 @@
|
|||
*******************************************************************************/
|
||||
package org.eclipse.cdt.core.browser;
|
||||
|
||||
import org.eclipse.cdt.core.model.ICElement;
|
||||
import org.eclipse.cdt.core.model.ICProject;
|
||||
import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
|
||||
|
||||
public class TypeInfo implements ITypeInfo
|
||||
{
|
||||
// protected ITypeCache fTypeCache;
|
||||
protected int fElementType;
|
||||
protected IQualifiedTypeName fQualifiedName;
|
||||
protected ITypeReference[] fSourceRefs = null;
|
||||
protected int fSourceRefsCount = 0;
|
||||
protected ITypeReference[] fDerivedSourceRefs = null;
|
||||
protected int fDerivedSourceRefsCount = 0;
|
||||
/**
|
||||
* @noextend This class is not intended to be subclassed by clients.
|
||||
* @noinstantiate This class is not intended to be instantiated by clients.
|
||||
*/
|
||||
public class TypeInfo implements ITypeInfo {
|
||||
|
||||
protected final static int INITIAL_REFS_SIZE = 1;
|
||||
protected final static int REFS_GROW_BY = 2;
|
||||
protected final static ITypeInfo[] EMPTY_TYPES = new ITypeInfo[0];
|
||||
|
||||
public TypeInfo(int elementType, IQualifiedTypeName typeName) {
|
||||
fElementType = elementType;
|
||||
fQualifiedName = typeName;
|
||||
/**
|
||||
* @since 5.1
|
||||
*/
|
||||
protected TypeInfo() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public void addReference(ITypeReference location) {
|
||||
if (fSourceRefs == null) {
|
||||
fSourceRefs = new ITypeReference[INITIAL_REFS_SIZE];
|
||||
fSourceRefsCount = 0;
|
||||
} else if (fSourceRefsCount == fSourceRefs.length) {
|
||||
ITypeReference[] refs = new ITypeReference[fSourceRefs.length + REFS_GROW_BY];
|
||||
System.arraycopy(fSourceRefs, 0, refs, 0, fSourceRefsCount);
|
||||
fSourceRefs = refs;
|
||||
}
|
||||
fSourceRefs[fSourceRefsCount] = location;
|
||||
++fSourceRefsCount;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeReference[] getReferences() {
|
||||
if (fSourceRefs != null) {
|
||||
ITypeReference[] refs = new ITypeReference[fSourceRefsCount];
|
||||
System.arraycopy(fSourceRefs, 0, refs, 0, fSourceRefsCount);
|
||||
return refs;
|
||||
}
|
||||
return null;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeReference getResolvedReference() {
|
||||
for (int i = 0; i < fSourceRefsCount; ++i) {
|
||||
ITypeReference location = fSourceRefs[i];
|
||||
if (location.isLineNumber() )
|
||||
return location;
|
||||
if( location.getLength() != 0) {
|
||||
return location;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isReferenced() {
|
||||
return (fSourceRefs != null || fDerivedSourceRefs != null);
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isReferenced(ITypeSearchScope scope) {
|
||||
if (scope == null || scope.isWorkspaceScope())
|
||||
return true;
|
||||
|
||||
// check if path is in scope
|
||||
for (int i = 0; i < fSourceRefsCount; ++i) {
|
||||
ITypeReference location = fSourceRefs[i];
|
||||
if (scope.encloses(location.getPath()))
|
||||
return true;
|
||||
}
|
||||
for (int i = 0; i < fDerivedSourceRefsCount; ++i) {
|
||||
ITypeReference location = fDerivedSourceRefs[i];
|
||||
if (scope.encloses(location.getPath()))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isUndefinedType() {
|
||||
return fElementType == 0;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean canSubstituteFor(ITypeInfo info) {
|
||||
return isExactMatch(info);
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
protected boolean isExactMatch(ITypeInfo info) {
|
||||
if (hashCode() != info.hashCode())
|
||||
return false;
|
||||
if (fElementType == info.getCElementType()
|
||||
&& fQualifiedName.equals(info.getQualifiedTypeName())) {
|
||||
ICProject project1 = getEnclosingProject();
|
||||
ICProject project2 = info.getEnclosingProject();
|
||||
if (project1 == null && project2 == null)
|
||||
return true;
|
||||
if (project1 == null || project2 == null)
|
||||
return false;
|
||||
return project1.equals(project2);
|
||||
}
|
||||
return false;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean exists() {
|
||||
// return fTypeCache != null;
|
||||
return true;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public int getCElementType() {
|
||||
return fElementType;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public void setCElementType(int type) {
|
||||
fElementType = type;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public IQualifiedTypeName getQualifiedTypeName() {
|
||||
return fQualifiedName;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public String getName() {
|
||||
return fQualifiedName.getName();
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isEnclosedType() {
|
||||
return (fQualifiedName.isQualified());
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo getEnclosingType(int kinds[]) {
|
||||
// if (fTypeCache != null) {
|
||||
// return fTypeCache.getEnclosingType(this, kinds);
|
||||
// }
|
||||
return null;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo getEnclosingType() {
|
||||
return getEnclosingType(KNOWN_TYPES);
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo getEnclosingNamespace(boolean includeGlobalNamespace) {
|
||||
// if (fTypeCache != null) {
|
||||
// return fTypeCache.getEnclosingNamespace(this, includeGlobalNamespace);
|
||||
// }
|
||||
return null;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo getRootNamespace(boolean includeGlobalNamespace) {
|
||||
// if (fTypeCache != null) {
|
||||
// return fTypeCache.getRootNamespace(this, includeGlobalNamespace);
|
||||
// }
|
||||
return null;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isEnclosingType() {
|
||||
return (fElementType == ICElement.C_NAMESPACE
|
||||
|| fElementType == ICElement.C_CLASS
|
||||
|| fElementType == ICElement.C_STRUCT);
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean encloses(ITypeInfo info) {
|
||||
// if (isEnclosingType() && fTypeCache == info.getCache()) {
|
||||
// return fQualifiedName.isPrefixOf(info.getQualifiedTypeName());
|
||||
// }
|
||||
return false;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isEnclosed(ITypeInfo info) {
|
||||
return info.encloses(this);
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean hasEnclosedTypes() {
|
||||
// if (isEnclosingType() && fTypeCache != null) {
|
||||
// return fTypeCache.hasEnclosedTypes(this);
|
||||
// }
|
||||
return false;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo[] getEnclosedTypes() {
|
||||
return getEnclosedTypes(KNOWN_TYPES);
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo[] getEnclosedTypes(int kinds[]) {
|
||||
// if (fTypeCache != null) {
|
||||
// return fTypeCache.getEnclosedTypes(this, kinds);
|
||||
// }
|
||||
return EMPTY_TYPES;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ICProject getEnclosingProject() {
|
||||
// if (fTypeCache != null) {
|
||||
// return fTypeCache.getProject();
|
||||
// }
|
||||
return null;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return fQualifiedName.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isEnclosed(ITypeSearchScope scope) {
|
||||
if (scope == null || scope.isWorkspaceScope())
|
||||
return true;
|
||||
|
||||
// check if path is in scope
|
||||
for (int i = 0; i < fSourceRefsCount; ++i) {
|
||||
ITypeReference location = fSourceRefs[i];
|
||||
if (scope.encloses(location.getPath()))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int hashCode = fQualifiedName.hashCode() + fElementType;
|
||||
ICProject project = getEnclosingProject();
|
||||
if (project != null)
|
||||
hashCode += project.hashCode();
|
||||
return hashCode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (!(obj instanceof TypeInfo)) {
|
||||
return false;
|
||||
}
|
||||
return isExactMatch((TypeInfo)obj);
|
||||
}
|
||||
|
||||
public int compareTo(Object obj) {
|
||||
if (obj == this) {
|
||||
return 0;
|
||||
}
|
||||
if( !(obj instanceof TypeInfo)) {
|
||||
throw new ClassCastException();
|
||||
}
|
||||
TypeInfo info= (TypeInfo)obj;
|
||||
if (fElementType != info.fElementType)
|
||||
return (fElementType < info.fElementType) ? -1 : 1;
|
||||
return fQualifiedName.compareTo(info.getQualifiedTypeName());
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public static boolean isValidType(int type) {
|
||||
for (int i= 0; i < KNOWN_TYPES.length; ++i) {
|
||||
if (KNOWN_TYPES[i] == type)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public void addDerivedReference(ITypeReference location) {
|
||||
if (fDerivedSourceRefs == null) {
|
||||
fDerivedSourceRefs = new ITypeReference[INITIAL_REFS_SIZE];
|
||||
fDerivedSourceRefsCount = 0;
|
||||
} else if (fDerivedSourceRefsCount == fDerivedSourceRefs.length) {
|
||||
ITypeReference[] refs = new ITypeReference[fDerivedSourceRefs.length + REFS_GROW_BY];
|
||||
System.arraycopy(fDerivedSourceRefs, 0, refs, 0, fDerivedSourceRefsCount);
|
||||
fDerivedSourceRefs = refs;
|
||||
}
|
||||
fDerivedSourceRefs[fDerivedSourceRefsCount] = location;
|
||||
++fDerivedSourceRefsCount;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeReference[] getDerivedReferences() {
|
||||
if (fDerivedSourceRefs != null) {
|
||||
ITypeReference[] refs = new ITypeReference[fDerivedSourceRefsCount];
|
||||
System.arraycopy(fDerivedSourceRefs, 0, refs, 0, fDerivedSourceRefsCount);
|
||||
return refs;
|
||||
}
|
||||
return null;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean hasSubTypes() {
|
||||
return (fDerivedSourceRefs != null);
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo[] getSubTypes() {
|
||||
// if (fTypeCache != null) {
|
||||
// return fTypeCache.getSubtypes(this);
|
||||
// }
|
||||
return null;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean hasSuperTypes() {
|
||||
// if (fTypeCache != null) {
|
||||
// return (fTypeCache.getSupertypes(this) != null);
|
||||
// }
|
||||
return false;
|
||||
// return true; //TODO can't know this until we parse
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ITypeInfo[] getSuperTypes() {
|
||||
// if (fTypeCache != null) {
|
||||
// return fTypeCache.getSupertypes(this);
|
||||
// }
|
||||
return null;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public ASTAccessVisibility getSuperTypeAccess(ITypeInfo superType) {
|
||||
// if (fTypeCache != null) {
|
||||
// return fTypeCache.getSupertypeAccess(this, superType);
|
||||
// }
|
||||
return null;
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isClass() {
|
||||
return (fElementType == ICElement.C_CLASS
|
||||
|| fElementType == ICElement.C_STRUCT);
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public int compareTo(Object obj) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2007 QNX Software Systems and others.
|
||||
* Copyright (c) 2004, 2009 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
|
||||
|
@ -19,11 +19,15 @@ import org.eclipse.cdt.core.model.ICElement;
|
|||
import org.eclipse.cdt.core.model.ICProject;
|
||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||
import org.eclipse.cdt.core.model.IWorkingCopy;
|
||||
import org.eclipse.cdt.utils.PathUtil;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
|
||||
|
||||
/**
|
||||
* @noextend This class is not intended to be subclassed by clients.
|
||||
* @noinstantiate This class is not intended to be instantiated by clients.
|
||||
*/
|
||||
public class TypeReference implements ITypeReference {
|
||||
private IPath fPath;
|
||||
private IProject fProject;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2006 QNX Software Systems and others.
|
||||
* Copyright (c) 2004, 2009 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
|
||||
|
@ -26,6 +26,9 @@ import org.eclipse.cdt.core.parser.IScannerInfoProvider;
|
|||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
|
||||
/**
|
||||
* @noextend This class is not intended to be subclassed by clients.
|
||||
*/
|
||||
public class TypeSearchScope implements ITypeSearchScope {
|
||||
|
||||
private Set<IPath> fPathSet = new HashSet<IPath>();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2008 QNX Software Systems and others.
|
||||
* Copyright (c) 2004, 2009 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
|
||||
|
@ -21,6 +21,10 @@ import org.eclipse.cdt.core.model.IParent;
|
|||
import org.eclipse.cdt.core.model.IStructure;
|
||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||
|
||||
/**
|
||||
* @noextend This class is not intended to be subclassed by clients.
|
||||
* @noinstantiate This class is not intended to be instantiated by clients.
|
||||
*/
|
||||
public class TypeUtil {
|
||||
|
||||
public static boolean isDeclaringType(ICElement elem) {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2006 QNX Software Systems and others.
|
||||
* Copyright (c) 2004, 2009 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
|
||||
|
@ -10,32 +10,14 @@
|
|||
*******************************************************************************/
|
||||
package org.eclipse.cdt.core.browser;
|
||||
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
|
||||
/**
|
||||
* @deprecated not used anywhere.
|
||||
* @noextend This class is not intended to be subclassed by clients.
|
||||
* @noinstantiate This class is not intended to be instantiated by clients.
|
||||
*/
|
||||
@Deprecated
|
||||
public class UnknownTypeInfo extends TypeInfo {
|
||||
|
||||
public UnknownTypeInfo(String name, IPath path) {
|
||||
this(new QualifiedTypeName(name));
|
||||
if (path != null) {
|
||||
addReference(new TypeReference(path, null));
|
||||
}
|
||||
}
|
||||
|
||||
public UnknownTypeInfo(IQualifiedTypeName typeName) {
|
||||
super(0, typeName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isUndefinedType() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canSubstituteFor(ITypeInfo info) {
|
||||
int compareType = info.getCElementType();
|
||||
if (fElementType == 0 || compareType == 0 || fElementType == compareType) {
|
||||
return fQualifiedName.equals(info.getQualifiedTypeName());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
private UnknownTypeInfo() {}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2008 Wind River Systems, Inc and others.
|
||||
* Copyright (c) 2008, 2009 Wind River Systems, Inc 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
|
||||
|
@ -107,66 +107,11 @@ public class ASTTypeInfo implements ITypeInfo, IFunctionInfo {
|
|||
this.returnType= returnType;
|
||||
this.reference= reference;
|
||||
}
|
||||
|
||||
public void addDerivedReference(ITypeReference location) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public void addReference(ITypeReference location) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean canSubstituteFor(ITypeInfo info) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean encloses(ITypeInfo info) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean exists() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
|
||||
public int getCElementType() {
|
||||
return elementType;
|
||||
}
|
||||
|
||||
public ITypeReference[] getDerivedReferences() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public ITypeInfo[] getEnclosedTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public ITypeInfo[] getEnclosedTypes(int[] kinds) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public ITypeInfo getEnclosingNamespace(boolean includeGlobalNamespace) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public ICProject getEnclosingProject() {
|
||||
if(getResolvedReference()!=null) {
|
||||
IProject project = reference.getProject();
|
||||
if(project!=null) {
|
||||
return CCorePlugin.getDefault().getCoreModel().getCModel().getCProject(project.getName());
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public ITypeInfo getEnclosingType() {
|
||||
// TODO not sure
|
||||
return null;
|
||||
}
|
||||
|
||||
public ITypeInfo getEnclosingType(int[] kinds) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return fqn[fqn.length-1];
|
||||
}
|
||||
|
@ -179,97 +124,20 @@ public class ASTTypeInfo implements ITypeInfo, IFunctionInfo {
|
|||
return reference;
|
||||
}
|
||||
|
||||
private static ASTTypeReference createReference(IASTName name) {
|
||||
IASTFileLocation floc= name.getFileLocation();
|
||||
if (floc != null) {
|
||||
String filename= floc.getFileName();
|
||||
IIndexFileLocation ifl= IndexLocationFactory.getIFLExpensive(filename);
|
||||
String fullPath= ifl.getFullPath();
|
||||
if (fullPath != null) {
|
||||
IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(fullPath));
|
||||
if(file!=null) {
|
||||
return new ASTTypeReference(ifl, name.resolveBinding(), file,
|
||||
floc.getNodeOffset(), floc.getNodeLength());
|
||||
}
|
||||
} else {
|
||||
IPath path = URIUtil.toPath(ifl.getURI());
|
||||
if (path!=null) {
|
||||
return new ASTTypeReference(ifl, name.resolveBinding(), path,
|
||||
floc.getNodeOffset(), floc.getNodeLength());
|
||||
}
|
||||
public ITypeReference[] getReferences() {
|
||||
return new ITypeReference[] {reference};
|
||||
}
|
||||
|
||||
public ICProject getEnclosingProject() {
|
||||
if(getResolvedReference()!=null) {
|
||||
IProject project = reference.getProject();
|
||||
if(project!=null) {
|
||||
return CCorePlugin.getDefault().getCoreModel().getCModel().getCProject(project.getName());
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public ITypeReference[] getReferences() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public ITypeInfo getRootNamespace(boolean includeGlobalNamespace) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public ITypeInfo[] getSubTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public ASTAccessVisibility getSuperTypeAccess(ITypeInfo subType) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public ITypeInfo[] getSuperTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean hasEnclosedTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean hasSubTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean hasSuperTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean isClass() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean isEnclosed(ITypeInfo info) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean isEnclosed(ITypeSearchScope scope) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean isEnclosedType() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean isEnclosingType() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean isReferenced(ITypeSearchScope scope) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public boolean isUndefinedType() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
public void setCElementType(int type) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.core.browser.IFunctionInfo#getParameters()
|
||||
*/
|
||||
public String[] getParameters() {
|
||||
return params;
|
||||
}
|
||||
|
@ -312,8 +180,161 @@ public class ASTTypeInfo implements ITypeInfo, IFunctionInfo {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
public IIndexFileLocation getIFL() {
|
||||
return reference.getIFL();
|
||||
}
|
||||
|
||||
private static ASTTypeReference createReference(IASTName name) {
|
||||
IASTFileLocation floc= name.getFileLocation();
|
||||
if (floc != null) {
|
||||
String filename= floc.getFileName();
|
||||
IIndexFileLocation ifl= IndexLocationFactory.getIFLExpensive(filename);
|
||||
String fullPath= ifl.getFullPath();
|
||||
if (fullPath != null) {
|
||||
IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(fullPath));
|
||||
if(file!=null) {
|
||||
return new ASTTypeReference(ifl, name.resolveBinding(), file,
|
||||
floc.getNodeOffset(), floc.getNodeLength());
|
||||
}
|
||||
} else {
|
||||
IPath path = URIUtil.toPath(ifl.getURI());
|
||||
if (path!=null) {
|
||||
return new ASTTypeReference(ifl, name.resolveBinding(), path,
|
||||
floc.getNodeOffset(), floc.getNodeLength());
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void addDerivedReference(ITypeReference location) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void addReference(ITypeReference location) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean canSubstituteFor(ITypeInfo info) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean encloses(ITypeInfo info) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean exists() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public ITypeReference[] getDerivedReferences() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public ITypeInfo[] getEnclosedTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public ITypeInfo[] getEnclosedTypes(int[] kinds) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public ITypeInfo getEnclosingNamespace(boolean includeGlobalNamespace) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public ITypeInfo getEnclosingType() {
|
||||
// TODO not sure
|
||||
return null;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public ITypeInfo getEnclosingType(int[] kinds) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public ITypeInfo getRootNamespace(boolean includeGlobalNamespace) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public ITypeInfo[] getSubTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public ASTAccessVisibility getSuperTypeAccess(ITypeInfo subType) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public ITypeInfo[] getSuperTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean hasEnclosedTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean hasSubTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean hasSuperTypes() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean isClass() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean isEnclosed(ITypeInfo info) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean isEnclosed(ITypeSearchScope scope) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean isEnclosedType() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean isEnclosingType() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean isReferenced(ITypeSearchScope scope) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean isUndefinedType() {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void setCElementType(int type) {
|
||||
throw new PDOMNotImplementedError();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -179,10 +179,6 @@ public class TypeInfoLabelProvider extends LabelProvider {
|
|||
|
||||
ITypeInfo typeRef= (ITypeInfo) element;
|
||||
if (isSet(SHOW_ENCLOSING_TYPE_ONLY)) {
|
||||
ITypeInfo parentInfo = typeRef.getEnclosingType();
|
||||
if (parentInfo != null) {
|
||||
return getTypeIcon(parentInfo.getCElementType());
|
||||
}
|
||||
IPath path = null;
|
||||
ITypeReference ref = typeRef.getResolvedReference();
|
||||
if (ref != null) {
|
||||
|
|
|
@ -155,7 +155,7 @@ public class TypeSelectionDialog extends TwoPaneElementSelector {
|
|||
|
||||
if (fMatchGlobalNamespace) {
|
||||
// must match global namespace (eg ::foo)
|
||||
if (info.getRootNamespace(false) != null)
|
||||
if (qualifiedName.segment(0).length() > 0)
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -687,7 +687,7 @@ public class TypeSelectionDialog extends TwoPaneElementSelector {
|
|||
private void addFoldedElements(IndexTypeInfo typeInfo, ArrayList<IndexTypeInfo> result) {
|
||||
ITypeReference[] refs= typeInfo.getReferences();
|
||||
for (ITypeReference ref : refs) {
|
||||
result.add(new IndexTypeInfo(typeInfo, ref));
|
||||
result.add(IndexTypeInfo.create(typeInfo, ref));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue