public function build(PDO $pdo, array $inputParameters)
 {
     self::checkProcedureParameter($this->method);
     $procedureName = $this->annote->getProcedure($this->method);
     $meta = HermitDatabaseMetaFactory::get($pdo);
     $info = $meta->getProcedureInfo($procedureName);
     $dbms = HermitDatabaseMetaFactory::getDbms($pdo);
     $parameter = null;
     if (isset(self::$procedureParameters[$dbms])) {
         $className = self::$procedureParameters[$dbms];
         $parameter = new $className($info, $dbms);
     } else {
         $parameter = new HermitProcedureParameter($info, $dbms);
     }
     $parameter->setInputParameters($inputParameters);
     $parameter->setTargetClass($this->targetClass);
     $parameter->setTargetMethod($this->method);
     $sql = self::preparedSql($parameter, $this->sqlCreator->createSql());
     $logger = HermitLoggerManager::getLogger();
     if ($logger->isDebugEnabled()) {
         $logger->debug('{%s} preparedSql: "%s"', __CLASS__, $sql);
     }
     $statement = $pdo->prepare($sql);
     return new HermitDefaultStatement($parameter, $statement);
 }
 public function __construct(HermitProcedureInfo $info, $dbms)
 {
     parent::__construct($info, $dbms);
 }