Example #1
0
 public function Instance(Entity $entity)
 {
     $this->entityName = $entity->name;
     foreach ($entity->fields as $k => $v) {
         $this->fields[$v->name] = TypeBuilder::getInstance()->create($v->name, $v->type, $v->foreign_key, $v->primary_key, $v->length, $v->mandatory);
         if (isset($v->reference)) {
             $this->fields[$v->name]->reference = $v->reference;
             $this->linkingFields[$v->name] = $this->fields[$v->name];
         }
         if ($v->primary_key == true) {
             $this->keyFieldName = $v->name;
         }
         $this->{$v->name} = "";
     }
 }
Example #2
0
 /**
  * @param array $option
  * @return Type
  */
 public function createDataFromModel(array $option)
 {
     $this->builder->populateWithArray($option)->setCode($option['value']);
     return $this->builder->create();
 }
Example #3
0
 /**
  * @access public
  * @param name
  * @param type
  * @param for_key
  * @param pri_key
  * @param length
  * @param mandatory
  * @static
  * @ParamType name 
  * @ParamType type 
  * @ParamType for_key 
  * @ParamType pri_key 
  * @ParamType length 
  * @ParamType mandatory 
  */
 public static function create($name, $type, $for_key, $pri_key, $length, $mandatory)
 {
     $typeInstance = null;
     $typeInstance = TypeBuilder::getInstance()->supported_types_factories[$type]->create($name, $type, $for_key, $pri_key, $length, $mandatory);
     return $typeInstance;
 }
Example #4
0
 /**
  * @access public
  * @param entity
  * @param name
  * @ParamType entity
  * @ParamType name
  */
 public function addReference($entity, $name = "")
 {
     if ($name == "") {
         $name = "id_{$entity->name}";
     }
     $type = $entity->fields[0]->type;
     $length = isset($entity->fields[0]->length) ? $entity->fields[0]->length : '';
     if ($this->name == $entity->name) {
         $selfRelation = true;
     } else {
         $selfRelation = false;
     }
     $referenceField = TypeBuilder::getInstance()->create($name, $type, true, false, $length, "off");
     $referenceField->referenceTo($this, $entity, $selfRelation);
     $this->fields[] = $referenceField;
     $entity->referred[$this->name][] = $this;
     $entity->referredBy[$this->name]['entity'][] = $this;
     $entity->referredBy[$this->name]['foreign key'][] = $name;
     if ($this->name == $entity->name) {
         beContent::getInstance()->selfrefs[md5($this->name . $name)]['table'] = $this->name;
         beContent::getInstance()->selfrefs[md5($this->name . $name)]['field'] = $name;
     }
     $this->lastFieldIndex = count($this->fields) - 1;
 }