code: public static boolean checkMatchingTags(Collection<String> tags, Set<String> includeTags, Set<String> excludeTags, boolean strictExclude)
      {
          boolean foundIncludeMatch = false;
  
          if (includeTags.isEmpty())
              return true;
  
          for (String tag : tags)
          {
              if (excludeTags.contains(tag))
                  // If strict, seeing an excluded tag means this set of tags didn't meet the criteria.
                  if (strictExclude)
                      return false;
                  // If not strict, only ignore the excluded tags.
                  else
                      continue;
  
              if (includeTags.isEmpty() || includeTags.contains(tag))
                  foundIncludeMatch = true;
          }
          return foundIncludeMatch;
      }
docs: <p>
  If any tag is in the exclude list and strictExclude is true, this will return false.
  
  If any tag is in the exclude list and strictExclude is false, then it will depend upon whether or not there is a tag in the includeTags list.
  </p>
  
  <p>
  If the includeTags list is empty or if any tag is in the includeTags list, return true.
  </p>
  <p>
  Otherwise, return false.
  </p>