Java 类org.eclipse.jdt.core.search.TypeNameMatchRequestor 实例源码

项目:egradle    文件:JDTDataAccess.java   
/**
 * Find type
 * 
 * @param className
 * @param monitor
 * @return type or <code>null</code>
 */
public IType findType(String className, IProgressMonitor monitor) {
    final IType[] result = { null };
    TypeNameMatchRequestor nameMatchRequestor = new TypeNameMatchRequestor() {
        @Override
        public void acceptTypeNameMatch(TypeNameMatch match) {
            result[0] = match.getType();
        }
    };
    int lastDot = className.lastIndexOf('.');
    char[] packageName = lastDot >= 0 ? className.substring(0, lastDot).toCharArray() : null;
    char[] typeName = (lastDot >= 0 ? className.substring(lastDot + 1) : className).toCharArray();
    SearchEngine engine = new SearchEngine();
    int packageMatchRule = SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE;
    try {
        engine.searchAllTypeNames(packageName, packageMatchRule, typeName, packageMatchRule, IJavaSearchConstants.TYPE,
                SearchEngine.createWorkspaceScope(), nameMatchRequestor,
                IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, monitor);
    } catch (JavaModelException e) {
        EditorUtil.INSTANCE.logError("Was not able to search all type names",e);
    }
    return result[0];
}
项目:che    文件:JavaDebuggerUtils.java   
private List<IType> findTypeByFqn(char[][] packages, char[][] names, IJavaSearchScope scope)
    throws JavaModelException {
  List<IType> result = new ArrayList<>();

  SearchEngine searchEngine = new SearchEngine();
  searchEngine.searchAllTypeNames(
      packages,
      names,
      scope,
      new TypeNameMatchRequestor() {
        @Override
        public void acceptTypeNameMatch(TypeNameMatch typeNameMatch) {
          result.add(typeNameMatch.getType());
        }
      },
      IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
      new NullProgressMonitor());
  return result;
}
项目:Eclipse-Postfix-Code-Completion    文件:TypeNameMatchRequestorWrapper.java   
public TypeNameMatchRequestorWrapper(TypeNameMatchRequestor requestor, IJavaSearchScope scope) {
    this.requestor = requestor;
    this.scope = scope;
    if (!(scope instanceof AbstractJavaSearchScope)) {
        this.handleFactory = new HandleFactory();
    }
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:TypeNameMatchRequestorWrapper.java   
public TypeNameMatchRequestorWrapper(TypeNameMatchRequestor requestor, IJavaSearchScope scope) {
    this.requestor = requestor;
    this.scope = scope;
    if (!(scope instanceof AbstractJavaSearchScope)) {
        this.handleFactory = new HandleFactory();
    }
}
项目:Eclipse-Postfix-Code-Completion    文件:SelectionEngine.java   
public SelectionTypeNameMatchRequestorWrapper(TypeNameMatchRequestor requestor, IJavaSearchScope scope, ImportReference[] importReferences) {
    super(requestor, scope);
    this.importReferences = importReferences;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:SelectionEngine.java   
public SelectionTypeNameMatchRequestorWrapper(TypeNameMatchRequestor requestor, IJavaSearchScope scope, ImportReference[] importReferences) {
    super(requestor, scope);
    this.importReferences = importReferences;
}
项目:eclipse-tapestry5-plugin    文件:EclipseUtils.java   
public static IType findTypeDeclarationExact(
        IProject project, int searchFor, String packageName, String typeName)
{
    final List<TypeNameMatch> matches = new ArrayList<TypeNameMatch>();

    SearchEngine searchEngine = new SearchEngine();

    try
    {
        IJavaSearchScope scope = SearchEngine.createJavaSearchScope(
                new IJavaElement[] { JavaCore.create(project) },
                true);

        IProgressMonitor progressMonitor = null;

        searchEngine.searchAllTypeNames(
                packageName.toCharArray(),
                SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE,
                typeName.toCharArray(),
                SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE,
                searchFor,
                scope,
                new TypeNameMatchRequestor()
                {
                    @Override
                    public void acceptTypeNameMatch(TypeNameMatch match)
                    {
                        matches.add(match);
                    }
                },
                IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
                progressMonitor);
    }
    catch (CoreException e)
    {
        //  XXX May happen, say, if classpath is incorrectly set.
        //  Probably shouldn't invoke this method if classpath errors can be detected
        Activator.getDefault().logWarning("Error performing search", e);
    }

    return matches.isEmpty()
            ? null
            : matches.get(0).getType();
}