public boolean isIncluded()

in rest-api/src/jetbrains/buildServer/server/rest/data/build/GenericBuildsFilter.java [219:303]


  public boolean isIncluded(@NotNull final SBuild build) {
    if (myAgentName != null && !myAgentName.equals(build.getAgentName())) {
      return false;
    }
    if (myBuildType != null && !myBuildType.getBuildTypeId().equals(build.getBuildTypeId())) {
      return false;
    }
    if (myProject != null && !isUnderProject(myProject, build)) {
      return false;
    }
    if (myStatus != null && !myStatus.equalsIgnoreCase(build.getStatusDescriptor().getStatus().getText())) {
      return false;
    }
    if (myNumber != null && !myNumber.equals(build.getBuildNumber())) {
      return false;
    }
    if (!FilterUtil.isIncludedByBooleanFilter(myPersonal, build.isPersonal())) {
      return false;
    }
    if (!FilterUtil.isIncludedByBooleanFilter(myCanceled, build.getCanceledInfo() != null)) {
      return false;
    }
    if (!FilterUtil.isIncludedByBooleanFilter(myRunning, !build.isFinished())) {
      return false;
    }
    if (!FilterUtil.isIncludedByBooleanFilter(myPinned, build.isPinned())) {
      return false;
    }
    if (myTags != null && myTags.size() > 0 && myTags.get(0).startsWith("format:extended")) {
      @NotNull final List<String> buildTags = build.getTags();
      //unofficial experimental support for "tag:(format:regexp,value:.*)" tag specification
      //todo: locator parsing logic should be moved to build locator parsing
      final Locator tagsLocator;
      try {
        tagsLocator = new Locator(myTags.get(0));
          if (!isTagsMatchLocator(buildTags, tagsLocator)){
            return false;
          }
        final Set<String> unusedDimensions = tagsLocator.getUnusedDimensions();
        if (unusedDimensions.size() > 0) {
          throw new BadRequestException("Unknown dimensions in locator 'tag': " + unusedDimensions);
        }
      } catch (LocatorProcessException e) {
        throw new BadRequestException("Invalid locator 'tag': " + e.getMessage(), e);
      }
    }else if (myTags != null && myTags.size() > 0 && !build.getTags().containsAll(myTags)) {
      return false;
    }
    if (!myBranchMatcher.matches(build.getBuildPromotion())) {
      return false;
    } else {
      //default to only default branch
      if (!myBranchMatcher.isDefined()) {
        @Nullable final Branch buildBranch = build.getBuildPromotion().getBranch();
        if (buildBranch != null && !buildBranch.isDefaultBranch())
        return false;
      }
    }

    if (myUser != null) {
      final SUser userWhoTriggered = build.getTriggeredBy().getUser();
      if (!build.getTriggeredBy().isTriggeredByUser() || (userWhoTriggered == null) || (myUser.getId() != userWhoTriggered.getId())) {
        return false;
      }
    }
    if (isExcludedBySince(build))
      return false;

    if (myUntil != null) {
      if (myUntil.before(build)) {
        return false;
      }
    }

    if (myAgents != null && !myAgents.contains(build.getAgent())) {
      return false;
    }

    if (myParameterCondition != null){
      if (!myParameterCondition.matches(BuildParametersUtil.getResultingParameters(build.getBuildPromotion()))) {
        return false;
      }
    }
    return true;
  }