code: public boolean canScheduleStage(PipelineIdentifier pipelineIdentifier, String stageName, String username,
                                      final OperationResult result) {
          String pipelineName = pipelineIdentifier.getName();
          CompositeChecker checker = buildScheduleCheckers(asList(
                  new StageAuthorizationChecker(pipelineName, stageName, username, securityService),
                  new StageLockChecker(pipelineIdentifier, pipelineLockService),
                  new PipelinePauseChecker(pipelineName, pipelinePauseService),
                  new PipelineActiveChecker(stageService, pipelineIdentifier),
                  new StageActiveChecker(pipelineName, stageName, stageService),
                  diskCheckers()));
          checker.check(result);
          return result.canContinue();
      }
docs: TODO: what's the difference between this with the canRerunStage method?