Exemple #1
0
 /**
  * Creates a link from one scheme to another
  *
  * @param One_Scheme $scheme
  * @param One_Relation_Role $role
  * @param One_Relation_Role $otherRole
  */
 public function createLink(One_Scheme $scheme, One_Relation_Role $targetRole, One_Relation_Role $schemeRole)
 {
     $params = array();
     $params['id'] = $this->name;
     $params['name'] = $targetRole->name;
     $params['target'] = $targetRole->schemeName;
     $params['style'] = $schemeRole->cardinality . 'To' . ucfirst($targetRole->cardinality);
     // insert fk information
     if ($schemeRole->cardinality == "many") {
         $params['fk:local'] = $schemeRole->meta['fk'];
     }
     if ($targetRole->cardinality == "many") {
         $params['fk:remote'] = $targetRole->meta['fk'];
     }
     //PD 22OCT08: remember that this is a hybrid target
     if ($schemeRole->schemeName == "*") {
         $params['hybrid'] = $schemeRole->name;
     }
     $meta = array_merge($this->meta, $params);
     $lnk = new One_Relation_Adapter($meta);
     $scheme->addLink($lnk);
 }