Example usage for org.eclipse.jdt.internal.core.hierarchy HierarchyResolver setFocusType

List of usage examples for org.eclipse.jdt.internal.core.hierarchy HierarchyResolver setFocusType

Introduction

In this page you can find the example usage for org.eclipse.jdt.internal.core.hierarchy HierarchyResolver setFocusType.

Prototype

public ReferenceBinding setFocusType(char[][] compoundName) 

Source Link

Usage

From source file:org.eclipse.ajdt.internal.core.search.ExtraITDFinder.java

License:Open Source License

private List<IntertypeElement> findRelevantITDs(SearchPattern pattern, HierarchyResolver resolver,
        AJCompilationUnit unit) throws JavaModelException {
    List<IntertypeElement> allItds = getAllItds(unit);
    if (allItds.size() == 0) {
        return Collections.emptyList();
    }//from  w  ww  . j  a  v a2  s  . c om

    // find target type
    char[] targetTypeName = null;
    if (pattern instanceof FieldPattern) {
        targetTypeName = TargetTypeUtils.getName(TargetTypeUtils.getQualName((FieldPattern) pattern),
                TargetTypeUtils.getSimpleName((FieldPattern) pattern));
    } else if (pattern instanceof MethodPattern) {
        targetTypeName = TargetTypeUtils.getName(((MethodPattern) pattern).declaringQualification,
                ((MethodPattern) pattern).declaringSimpleName);
    }

    // if target type is not known, then this means that a target
    // type is not specified and therefore do not remove any 
    // potential matches.
    if (targetTypeName != null && targetTypeName.length > 0) {
        if (resolver != null) {
            resolver.setFocusType(CharOperation.splitOn('.', targetTypeName));
        }

        for (Iterator<IntertypeElement> itdIter = allItds.iterator(); itdIter.hasNext();) {
            IntertypeElement itd = itdIter.next();
            if (!isSubtypeOfSearchPattern(targetTypeName, itd, resolver)) {
                itdIter.remove();
            }
        }
    }
    return allItds;
}