/**
  * You can give a format to return a custom string
  * @param $val
  * @param $method_params
  * @param $row
  * @return unknown_type
  */
 public function formatTemplate($val, AgaviParameterHolder $method_params, AgaviParameterHolder $row)
 {
     $parser = new AppKitFormatParserUtil();
     $parser->setDefault($val);
     $parser->registerNamespace('field', AppKitFormatParserUtil::TYPE_ARRAY);
     $parser->registerData('field', $row->getParameters());
     return $parser->parseData($method_params->getParameter('format', '${*}'));
 }
 public function replaceKey($content)
 {
     $content = trim($content);
     if (preg_match('@\\$\\{([^\\}]+)\\}@', $content)) {
         return $this->parser->parseData($content);
     } elseif (strstr($content, '::')) {
         if (defined($content)) {
             $content = AppKit::getConstant($content);
         }
     }
     return $content;
 }
 private function substituteArguments(array &$args, array &$target = null)
 {
     static $tp = null;
     if ($target == null) {
         $target =& $this->args;
     }
     if ($tp === null) {
         $tp = new AppKitFormatParserUtil();
         $tp->registerNamespace('arg', AppKitFormatParserUtil::TYPE_ARRAY);
         $tp->setDefault('NOT_FOUND');
     }
     $tp->registerData('arg', $this->args);
     foreach ($args as $key => &$val) {
         if (is_array($val)) {
             $this->substituteArguments($args[$key], $target);
         } elseif (is_object($val)) {
             continue;
         } else {
             $val = $tp->parseData($val);
         }
     }
     return $args;
 }