コード例 #1
0
ファイル: EnumerationField.php プロジェクト: rtens/domin
 /**
  * @param Parameter $parameter
  * @param string $serialized
  * @return mixed
  * @throws \Exception
  */
 public function inflate(Parameter $parameter, $serialized)
 {
     $param = new Parameter($parameter->getName(), $this->getType($parameter)->getOptionType());
     $options = $this->getType($parameter)->getOptions();
     if (!array_key_exists($serialized, $options)) {
         throw new \Exception("[{$serialized}] is not an option in [" . implode(',', array_keys($options)) . ']');
     }
     return $this->fields->getField($param)->inflate($param, $options[$serialized]);
 }
コード例 #2
0
ファイル: ActionPanelRenderer.php プロジェクト: rtens/domin
 /**
  * @param Parameter[] $parameters
  * @param mixed[] $values
  * @return mixed[]
  */
 private function inflate($parameters, $values)
 {
     $inflated = [];
     foreach ($parameters as $parameter) {
         $name = $parameter->getName();
         if (isset($values[$name])) {
             $inflated[$name] = $this->fields->getField($parameter)->inflate($parameter, $values[$name]);
         }
     }
     return $inflated;
 }
コード例 #3
0
ファイル: ActionField.php プロジェクト: rtens/domin
 /**
  * @param Parameter $parameter
  * @return array|\rtens\domin\delivery\web\Element[]
  */
 public function headElements(Parameter $parameter)
 {
     $action = $this->actions->getAction($parameter->getName());
     $headElements = [self::descriptionCode()];
     foreach ($action->parameters() as $parameter) {
         $field = $this->fields->getField($parameter);
         if ($field instanceof WebField) {
             $headElements = array_merge($headElements, $field->headElements($parameter));
         }
     }
     return $headElements;
 }
コード例 #4
0
ファイル: Executor.php プロジェクト: rtens/domin
 private function readParameters(Action $action)
 {
     $failed = [];
     $params = [];
     foreach ($action->parameters() as $parameter) {
         try {
             if ($this->paramReader->has($parameter)) {
                 $inflated = $this->fields->getField($parameter)->inflate($parameter, $this->paramReader->read($parameter));
                 if ($parameter->getType()->is($inflated)) {
                     $params[$parameter->getName()] = $inflated;
                     continue;
                 }
             }
             if ($parameter->isRequired()) {
                 throw new \Exception("[{$parameter->getName()}] is required.");
             }
         } catch (\Exception $e) {
             $failed[$parameter->getName()] = $e;
         }
     }
     return [$params, $failed];
 }
コード例 #5
0
ファイル: Executor.php プロジェクト: jonfm/domin
 private function readParameters(Action $action)
 {
     $params = [];
     $missing = [];
     foreach ($action->parameters() as $parameter) {
         if ($this->paramReader->has($parameter)) {
             $inflated = $this->fields->getField($parameter)->inflate($parameter, $this->paramReader->read($parameter));
             if ($parameter->getType()->is($inflated)) {
                 $params[$parameter->getName()] = $inflated;
             } else {
                 if ($parameter->isRequired()) {
                     $missing[] = $parameter->getName();
                 }
             }
         } else {
             if ($parameter->isRequired()) {
                 $missing[] = $parameter->getName();
             }
         }
     }
     return [$params, $missing];
 }
コード例 #6
0
ファイル: ActionForm.php プロジェクト: rtens/domin
 private function readParameters(ParameterReader $reader, FieldRegistry $fields, Action $action)
 {
     $values = ['inflated' => [], 'errors' => []];
     foreach ($action->parameters() as $parameter) {
         if ($reader->has($parameter)) {
             $field = $fields->getField($parameter);
             try {
                 $values['inflated'][$parameter->getName()] = $field->inflate($parameter, $reader->read($parameter));
             } catch (\Exception $e) {
                 $values['errors'][$parameter->getName()] = $e;
             }
         }
     }
     return $values;
 }
コード例 #7
0
ファイル: ArrayField.php プロジェクト: jonfm/domin
 /**
  * @param $itemParameter
  * @return CliField
  * @throws \Exception
  */
 private function getField($itemParameter)
 {
     return $this->fields->getField($itemParameter);
 }
コード例 #8
0
ファイル: ObjectField.php プロジェクト: jonfm/domin
 /**
  * @param Parameter $param
  * @return CliField
  */
 private function getField(Parameter $param)
 {
     return $this->fields->getField($param);
 }
コード例 #9
0
ファイル: ArrayField.php プロジェクト: rtens/domin
 private function itemHeadElements(Parameter $itemParameter)
 {
     /** @var WebField $field */
     $field = $this->fields->getField($itemParameter);
     return $field->headElements($itemParameter);
 }
コード例 #10
0
ファイル: NullableField.php プロジェクト: jonfm/domin
 /**
  * @param Parameter $innerParameter
  * @return WebField
  */
 private function getInnerField(Parameter $innerParameter)
 {
     return $this->fields->getField($innerParameter);
 }
コード例 #11
0
ファイル: IdentifierField.php プロジェクト: jonfm/domin
 /**
  * @param Parameter $parameter
  * @param string $serialized
  * @return mixed
  */
 public function inflate(Parameter $parameter, $serialized)
 {
     $primitiveParameter = new Parameter($parameter->getName(), $this->getType($parameter)->getPrimitive());
     return $this->fields->getField($primitiveParameter)->inflate($primitiveParameter, $serialized);
 }
コード例 #12
0
ファイル: EnumerationField.php プロジェクト: jonfm/domin
 /**
  * @param Parameter $parameter
  * @param string $serialized
  * @return mixed
  */
 public function inflate(Parameter $parameter, $serialized)
 {
     $param = new Parameter($parameter->getName(), $this->getType($parameter)->getOptionType());
     return $this->fields->getField($param)->inflate($param, $this->getType($parameter)->getOptions()[(int) $serialized]);
 }
コード例 #13
0
ファイル: EnumerationField.php プロジェクト: rtens/domin
 /**
  * @param Parameter $parameter
  * @param string $serialized
  * @return mixed
  */
 public function inflate(Parameter $parameter, $serialized)
 {
     $param = new Parameter($parameter->getName() . '-value', $this->getOptionType($parameter));
     return $this->fields->getField($param)->inflate($param, $serialized);
 }