code: @SuppressWarnings("unchecked")
      public boolean tryStart(final ProcessorGraphNode processorGraphNode) {
          this.processorLock.lock();
          final boolean canStart;
          try {
              if (isRunning(processorGraphNode) || isFinished(processorGraphNode) ||
                      !allAreFinished(processorGraphNode.getRequirements())) {
                  canStart = false;
              } else {
                  started(processorGraphNode);
                  canStart = true;
              }
          } finally {
              this.processorLock.unlock();
          }
  
          return canStart;
      }
docs: Try to start the node of a processor.
  <p>
  In case the processor is already running, has already finished or if not all requirements have
  finished, the processor can not start. If the above conditions are fulfilled, the processor is added to
  the list of running processors, and is expected to be started from the caller.
  
  @param processorGraphNode the node that should start.
  @return if the node of the processor can be started.