Ejemplo n.º 1
0
 private function setupProperty($value)
 {
     @(list($id, $typeAndDesc) = explode(':', $value, 2));
     if (!isset($typeAndDesc)) {
         die('The type of property ' . $id . ' is empty.');
     }
     @(list($type, $description) = explode(' ', $typeAndDesc, 2));
     if (isset($description)) {
         $this->curParams['description'] = $description;
     }
     $type = trim($type);
     $this->curParams['id'] = $id;
     if (TypeUtils::isArray($type)) {
         if (TypeUtils::isPrimitive(TypeUtils::getType($type))) {
             $itemType = 'type';
         } else {
             $itemType = '$ref';
         }
         $this->curParams['itemType'] = $itemType;
         $this->curParams['items'] = TypeUtils::getType($type);
         $type = 'Array';
     } else {
         if (TypeUtils::isRange($type)) {
             list($min, $max) = TypeUtils::getRange($type);
             $this->curParams['min'] = intval(trim($min));
             $this->curParams['max'] = intval(trim($max));
             $this->curParams['valueType'] = 'RANGE';
             $type = 'int';
         } else {
             if (TypeUtils::isList($type)) {
                 list($type, $values) = TypeUtils::getList($type);
                 $this->curParams['values'] = $values;
                 $this->curParams['valueType'] = "LIST";
             }
         }
     }
     $this->curParams['type'] = $type;
 }
 private function getRelatedModel($model, $modelTable, $relatedModels = null)
 {
     if (is_null($relatedModels)) {
         $relatedModels = array();
     }
     if (!isset($modelTable[$model])) {
         //echo '[Warning] Model ' . $model . ' not found. on line ' . __LINE__ . " of " . __FILE__."\n";
         return $relatedModels;
     }
     foreach ($modelTable[$model]['properties'] as $property) {
         $type = $this->getType($property);
         if (false === TypeUtils::isPrimitive($type)) {
             array_push($relatedModels, $type);
             @$this->precompile($this->modelTable[$this->extractModelName($type)], $type);
             $relatedModels = array_merge($relatedModels, $this->getRelatedModel($type, $modelTable, $relatedModels));
         }
     }
     return $relatedModels;
 }