/**
  * Delegate execution to either modular or non-modular sub-rule depending on input parameters
  *
  * @param array $params
  * @return array
  */
 public function getPatternDirs(array $params)
 {
     if (isset($params['module_name'])) {
         return $this->ruleModular->getPatternDirs($params);
     } else {
         return $this->ruleNonModular->getPatternDirs($params);
     }
 }
 /**
  * Delegate execution to either modular or non-modular sub-rule depending on input parameters
  *
  * @param array $params
  * @return array
  * @throws \InvalidArgumentException
  */
 public function getPatternDirs(array $params)
 {
     $isNamespaceDefined = isset($params['namespace']);
     $isModuleDefined = isset($params['module']);
     if ($isNamespaceDefined && $isModuleDefined) {
         return $this->ruleModular->getPatternDirs($params);
     } elseif (!$isNamespaceDefined && !$isModuleDefined) {
         return $this->ruleNonModular->getPatternDirs($params);
     }
     throw new \InvalidArgumentException("Parameters 'namespace' and 'module' should either be both set or unset.");
 }