예제 #1
0
 private final function setResult($type, $name, $value, $is_list)
 {
     if (FALSE === Kit::in($type, ['data', 'status', 'process'])) {
         throw new UserException('Invalid $type.', $type);
     }
     Kit::ensureString($name);
     if ('' === $name) {
         throw new UserException('$name is an empty string.', $type);
     }
     if (TRUE === isset($this->result[$type][$name])) {
         if (TRUE === $is_list) {
             if (TRUE === Kit::isList($this->result[$type][$name])) {
                 $this->result[$type][$name][] = $value;
             } else {
                 $msg = "\$this->result[{$type}][{$name}] is a non-empty non-list variable.";
                 throw new UserException($msg, $this->result[$type][$name]);
             }
         } else {
             $this->result[$type][$name] = $value;
         }
     } else {
         if (TRUE === $is_list) {
             $this->result[$type][$name] = [$value];
         } else {
             $this->result[$type][$name] = $value;
         }
     }
     return $value;
 }