Esempio n. 1
0
    public boolean acceptBinding(IBinding binding) {
      if (fFound) return true;

      if (binding == null) return false;

      if (fToSearch.getKind() != binding.getKind()) {
        return false;
      }

      boolean checkVisibility = hasFlag(CHECK_VISIBILITY, fFlags);
      if (binding == fToSearch) {
        fFound = true;
      } else {
        IBinding bindingDeclaration = Bindings.getDeclaration(binding);
        if (bindingDeclaration == fToSearch) {
          fFound = true;
        } else if (bindingDeclaration.getName().equals(fToSearch.getName())) {
          String signature = getSignature(bindingDeclaration);
          if (signature != null && signature.equals(getSignature(fToSearch))) {
            if (checkVisibility) {
              fIsVisible = false;
            }
            return true; // found element that hides the binding to find
          }
        }
      }

      if (fFound && checkVisibility) {
        fIsVisible = ScopeAnalyzer.isVisible(binding, fParentTypeBinding);
      }
      return fFound;
    }