Example #1
0
 public function import($scope)
 {
     if (!$this->className) {
         throw new WrongStateException("no class defined for PrimitiveIdentifierList '{$this->name}'");
     }
     if (!BasePrimitive::import($scope)) {
         return null;
     }
     if (!is_array($scope[$this->name])) {
         return false;
     }
     $list = array_unique($scope[$this->name]);
     $values = [];
     foreach ($list as $id) {
         if (!Assert::checkInteger($id)) {
             return false;
         }
         $values[] = $id;
     }
     $objectList = [];
     foreach ($values as $value) {
         $className = $this->className;
         $objectList[] = new $className($value);
     }
     if (count($objectList) == count($values)) {
         $this->value = $objectList;
         return true;
     }
     return false;
 }
Example #2
0
 public function quoteValue($value)
 {
     /// @see Sequenceless for this convention
     if ($value instanceof Identifier && !$value->isFinalized()) {
         return 'null';
     }
     if (Assert::checkInteger($value)) {
         return $value;
     }
     return "'" . sqlite_escape_string($value) . "'";
 }
Example #3
0
 public function quoteValue($value)
 {
     /// @see Sequenceless for this convention
     if ($value instanceof Identifier && !$value->isFinalized()) {
         return 'null';
     }
     if (Assert::checkInteger($value)) {
         return $value;
     }
     return $this->getLink()->quote($value);
 }
Example #4
0
 public function __construct($input)
 {
     if (Assert::checkInteger($input)) {
         $time = $input;
     } else {
         Assert::isString($input);
         $time = explode(':', $input);
     }
     $lenght = strlen($input);
     if (count($time) === 2) {
         $this->setHour($time[0])->setMinute($time[1]);
     } elseif (count($time) === 3) {
         $this->setHour($time[0])->setMinute($time[1])->setSecond($time[2]);
     } else {
         switch ($lenght) {
             case 1:
             case 2:
                 $this->setHour(substr($input, 0, 2));
                 break;
             case 3:
                 $assumedHour = substr($input, 0, 2);
                 if ($assumedHour > 23) {
                     $this->setHour(substr($input, 0, 1))->setMinute(substr($input, 1, 2));
                 } else {
                     $this->setHour($assumedHour)->setMinute(substr($input, 2, 1) . '0');
                 }
                 break;
             case 4:
             case 5:
             case 6:
                 $this->setHour(substr($input, 0, 2))->setMinute(substr($input, 2, 2))->setSecond(substr($input, 4, 2));
                 break;
             default:
                 throw new WrongArgumentException('unknown format');
         }
     }
 }
 public function __toString()
 {
     return '[error at line ' . (Assert::checkInteger($this->errorLine) ? $this->errorLine : 'unknown') . ', position ' . (Assert::checkInteger($this->errorPosition) ? $this->errorPosition : 'unknown') . ": {$this->message}] in: \n" . $this->getTraceAsString();
 }
 public function import($scope)
 {
     if (!$this->className) {
         throw new WrongStateException("no class defined for PrimitiveIdentifierList '{$this->name}'");
     }
     if (!BasePrimitive::import($scope)) {
         return null;
     }
     if (!is_array($scope[$this->name])) {
         return false;
     }
     $list = array_unique($scope[$this->name]);
     $values = [];
     foreach ($list as $id) {
         if ((string) $id == "" && $this->isIgnoreEmpty()) {
             continue;
         }
         if ($this->scalar && !Assert::checkScalar($id) || !$this->scalar && !Assert::checkInteger($id)) {
             if (!$this->isIgnoreWrong()) {
                 return false;
             } else {
                 continue;
             }
             //just skip it
         }
         $values[] = $id;
     }
     $objectList = $this->dao()->getListByIds($values);
     if ((count($objectList) == count($values) || $this->isIgnoreWrong()) && !($this->min && count($values) < $this->min) && !($this->max && count($values) > $this->max)) {
         $this->value = $objectList;
         return true;
     }
     return false;
 }
 protected function castNumber($number)
 {
     if (!$this->scalar && Assert::checkInteger($number)) {
         return (int) $number;
     }
     return $number;
 }
Example #8
0
 public function setBatchSize($size)
 {
     if (Assert::checkInteger($size) && $size > 0) {
         $this->batchSize = $size;
     }
     return $this;
 }