private IncludeStatus isIncludedInternal()

in reporter/src/com/intellij/rt/coverage/aggregate/InheritanceFilter.java [55:79]


  private IncludeStatus isIncludedInternal(String className, List<Pattern> includePatterns, List<Pattern> excludePatterns) {
    IncludeStatus status = IncludeStatus.UNKNOWN;
    if (ClassNameUtil.matchesPatterns(className, includePatterns)) {
      status = IncludeStatus.INCLUDED_SELF;
    }
    if (ClassNameUtil.matchesPatterns(className, excludePatterns)) {
      status = IncludeStatus.EXCLUDED_SELF;
    }

    String[] inherits = myInherits.get(className);
    if (inherits != null) {
      for (String inherit : inherits) {
        IncludeStatus inheritStatus = isIncluded(inherit, includePatterns, excludePatterns);
        if (inheritStatus == IncludeStatus.EXCLUDED || inheritStatus == IncludeStatus.EXCLUDED_SELF) {
          return IncludeStatus.EXCLUDED;
        }
        if ((inheritStatus == IncludeStatus.INCLUDED || inheritStatus == IncludeStatus.INCLUDED_SELF)
            && !(status == IncludeStatus.INCLUDED_SELF || status == IncludeStatus.EXCLUDED_SELF)) {
          status = IncludeStatus.INCLUDED;
        }
      }
    }

    return status;
  }