/**
  * creates params object form passed $requestParams
  *
  * @param \Zend\Console\Request|\Zend\Http\Request|\ArrayObject|Array $requestParams
  * @throws InvalidArgumentException
  * @return \VisioCrudModeler\Generator\Request\Console|\VisioCrudModeler\Generator\Request\Http|\VisioCrudModeler\Generator\Params|\VisioCrudModeler\Generator\ParamsInterface
  */
 public static function factory($requestParams, array $defaultParams = array())
 {
     if ($requestParams instanceof \Zend\Console\Request) {
         return new Request\Console($defaultParams, $requestParams);
     }
     if ($requestParams instanceof \Zend\Http\Request) {
         return new Request\Http($defaultParams, $requestParams);
     }
     if ($requestParams instanceof \ArrayObject) {
         return new static(array_merge($defaultParams, $requestParams->getArrayCopy()));
     }
     if (is_array($requestParams)) {
         return new static(array_merge($defaultParams, $requestParams));
     }
     throw new InvalidArgumentException('argumnet passed to method "' . __METHOD__ . '" is not resolvable to any params adapter, try simple array or ArrayObject');
 }