public @NotNull List<ProjectTask> getTasks(@NotNull BiPredicate<? super ProjectTask, ? super ProjectTaskState> predicate) {
    return myTasksState.entrySet().stream()
      .filter(entry -> predicate.test(entry.getKey(), entry.getValue()))
      .map(Map.Entry::getKey)
      .collect(Collectors.toList());
  }
public @NotNull List<ProjectTask> getTasks(@NotNull BiPredicate<? super ProjectTask, ? super ProjectTaskState> predicate)