original_string: protected function run($call)
      {
          if (!isset($call['callable'])) {
              throw new OperationStateException("\$call['callable'] was not set");
          }
          
          if (!isset($call['arguments'])) {
              try {
                  is_null($call['arguments']);
              } catch (\Exception $e) {
                  throw new OperationStateException("\$call['arguments'] was not set");
              }
          }
          
          if (is_callable($call['callable'])) {
              if ($call['arguments'] == self::NO_ARGUMENT) {
                  return call_user_func($call['callable']);
              } else {
                  return call_user_func_array($call['callable'], $call['arguments']);
              }
          } else {
              throw new OperationStateException("\$call and \$arguments passed did not pass is_callable() check");
          }
      }
code: protected function run($call)
      {
          if (!isset($call['callable'])) {
              throw new OperationStateException("\$call['callable'] was not set");
          }
          
          if (!isset($call['arguments'])) {
              try {
                  is_null($call['arguments']);
              } catch (\Exception $e) {
                  throw new OperationStateException("\$call['arguments'] was not set");
              }
          }
          
          if (is_callable($call['callable'])) {
              if ($call['arguments'] == self::NO_ARGUMENT) {
                  return call_user_func($call['callable']);
              } else {
                  return call_user_func_array($call['callable'], $call['arguments']);
              }
          } else {
              throw new OperationStateException("\$call and \$arguments passed did not pass is_callable() check");
          }
      }
code_tokens: protected function run ( $ call ) { if ( ! isset ( $ call [ 'callable' ] ) ) { throw new OperationStateException ( "\$call['callable'] was not set" ) ; } if ( ! isset ( $ call [ 'arguments' ] ) ) { try { is_null ( $ call [ 'arguments' ] ) ; } catch ( \ Exception $ e ) { throw new OperationStateException ( "\$call['arguments'] was not set" ) ; } } if ( is_callable ( $ call [ 'callable' ] ) ) { if ( $ call [ 'arguments' ] == self :: NO_ARGUMENT ) { return call_user_func ( $ call [ 'callable' ] ) ; } else { return call_user_func_array ( $ call [ 'callable' ] , $ call [ 'arguments' ] ) ; } } else { throw new OperationStateException ( "\$call and \$arguments passed did not pass is_callable() check" ) ; } }
docstring: This will run the action passed, whether execute or undo.
  
  @param array $call Contains 'callable' index supporting is_callable and 'arguments' (NULL or args).
  You can also pass OperationState::NO_ARGUMENT as an argument to call with no argument
  @throws \RuntimeException
  @return mixed returns the result of the method call
docstring_tokens: This will run the action passed whether execute or undo .