Exemplo n.º 1
0
 /**
  * @param Parameter $parameter
  * @param string $serialized
  * @return mixed
  * @throws \Exception
  */
 public function inflate(Parameter $parameter, $serialized)
 {
     if (!$parameter->getType()->is(intval($serialized))) {
         throw new \Exception("[{$serialized}] is not in range " . $parameter->getType());
     }
     return (int) $serialized;
 }
Exemplo n.º 2
0
 private function getClass(Parameter $parameter)
 {
     /** @var ClassType $type */
     $type = $parameter->getType();
     $class = $type->getClass();
     return $class;
 }
Exemplo n.º 3
0
 /**
  * @param Parameter $parameter
  * @param string $serialized
  * @return \DateTime|\DateTimeImmutable|null
  */
 public function inflate(Parameter $parameter, $serialized)
 {
     /** @var ClassType $type */
     $type = $parameter->getType();
     $class = $type->getClass();
     return $serialized ? new $class($serialized) : null;
 }
Exemplo n.º 4
0
 private function getTypes(Parameter $parameter)
 {
     $type = $parameter->getType();
     if (!$type instanceof MultiType) {
         throw new \InvalidArgumentException("[{$type}] must be a MultiType");
     }
     return $type->getTypes();
 }
Exemplo n.º 5
0
 private function getClass(Parameter $parameter)
 {
     $type = $parameter->getType();
     if (!$type instanceof ClassType) {
         throw new \InvalidArgumentException("[{$type}] is not a ClassType");
     }
     return $type->getClass();
 }
Exemplo n.º 6
0
 /**
  * @param Parameter $parameter
  * @return EnumerationType
  */
 private function getType(Parameter $parameter)
 {
     $type = $parameter->getType();
     if (!$type instanceof EnumerationType) {
         throw new \InvalidArgumentException("[{$type}] must be an EnumerationType");
     }
     return $type;
 }
Exemplo n.º 7
0
 private function getInnerParameter(Parameter $parameter)
 {
     $type = $parameter->getType();
     if (!$type instanceof NullableType) {
         throw new \InvalidArgumentException("[{$type}] is not a NullableType");
     }
     return new Parameter($parameter->getName() . '-value', $type->getType());
 }
Exemplo n.º 8
0
 /**
  * @param Parameter $parameter
  * @return string
  */
 private function getType(Parameter $parameter)
 {
     switch (get_class($parameter->getType())) {
         case IntegerType::class:
             return 'number';
         default:
             return 'text';
     }
 }
Exemplo n.º 9
0
 /**
  * @param Parameter $parameter
  * @param mixed $value
  * @return string
  */
 public function render(Parameter $parameter, $value)
 {
     /** @var RangeType $range */
     $range = $parameter->getType();
     $min = $range->getMin();
     $max = $range->getMax();
     $step = $range->getStep();
     $value = is_null($value) ? $min : (int) $value;
     $name = $parameter->getName();
     $id = str_replace(['[', ']'], ['-', ''], $name);
     return (string) new Element('div', ['class' => 'form-group', 'id' => $id], [new Element('div', ['class' => 'slider']), new Element('input', ['class' => 'amount form-control', 'type' => 'number', 'name' => $name, 'value' => $value]), new Element('script', [], ["\$(function() {\n                    \$('#{$id} .slider').slider({\n                      range: 'min',\n                      value: {$value},\n                      min: {$min},\n                      max: {$max},\n                      step: {$step},\n                      slide: function(event, ui) {\n                            \$('#{$id} .amount').val(ui.value);\n                        }\n                    });\n                });"])]);
 }
Exemplo n.º 10
0
 /**
  * @param Parameter $parameter
  * @param string $serialized
  * @return mixed
  */
 public function inflate(Parameter $parameter, $serialized)
 {
     switch (get_class($parameter->getType())) {
         case LongType::class:
         case IntegerType::class:
             return (int) $serialized;
         case DoubleType::class:
             return (double) $serialized;
         case FloatType::class:
             return (double) $serialized;
         default:
             return (string) $serialized;
     }
 }
Exemplo n.º 11
0
 /**
  * @param Parameter $parameter
  * @return bool
  */
 public function handles(Parameter $parameter)
 {
     return $parameter->getType() == new BooleanType();
 }
Exemplo n.º 12
0
 /**
  * @param Parameter $parameter
  * @param string $suffix
  * @return Parameter
  */
 private function makeInnerParameter(Parameter $parameter, $suffix = '')
 {
     /** @var ArrayType $type */
     $type = $parameter->getType();
     return new Parameter($parameter->getName() . $suffix, $type->getItemType());
 }
Exemplo n.º 13
0
 /**
  * @param Parameter $parameter
  * @return IdentifierType
  */
 private function getType(Parameter $parameter)
 {
     return $parameter->getType();
 }
Exemplo n.º 14
0
 private function lineParameter(Parameter $parameter, $lineNumber)
 {
     return new Parameter($parameter->getName() . '-' . $lineNumber, $parameter->getType());
 }
Exemplo n.º 15
0
 /**
  * @param Parameter $parameter
  * @return bool
  */
 public function handles(Parameter $parameter)
 {
     $type = $parameter->getType();
     return $type instanceof ClassType && is_subclass_of($type->getClass(), Action::class);
 }
Exemplo n.º 16
0
 /**
  * @param Parameter $parameter
  * @return bool
  */
 public function handles(Parameter $parameter)
 {
     return $parameter->getType() == new ClassType(\DateInterval::class);
 }
Exemplo n.º 17
0
 /**
  * @param Parameter $parameter
  * @return bool
  */
 public function handles(Parameter $parameter)
 {
     return $parameter->getType() == new ClassType(File::class);
 }
Exemplo n.º 18
0
 /**
  * @param \rtens\domin\Parameter $parameter
  * @return bool
  */
 public function handles(Parameter $parameter)
 {
     return $parameter->getType() instanceof StringType;
 }