1:1 / 1:1 relations evolution

Esse commit está contido em:
Felipe Nascimento de Moura
2011-03-03 00:37:04 -03:00
commit 47523ca411
4 arquivos alterados com 23 adições e 15 exclusões
+8
Ver Arquivo
@@ -18,6 +18,14 @@
public $opposite = null;
public $treated = false; //to be used by Normalizer
public function rename($newName)
{
Analyst::$relations[$newName]= Analyst::$relations[$this->name];
Analyst::$relations[$this->name]= false;
$this->name= (string)$newName;
return $this;
}
public function setRel(MindEntity &$rel)
{
$this->rel= $rel;
+4
Ver Arquivo
@@ -11,6 +11,10 @@ class Analyst {
public static $relations= Array();
public static $focused = Array();
/**
* Removes an entity from the entities list
* @param type $entity
*/
public static function removeEntity(&$entity)
{
self::$entities[$entity]= false;
-3
Ver Arquivo
@@ -47,9 +47,6 @@ abstract class Normal {
Analyst::unsetRelation($relation->opposite);
Analyst::unsetRelation($relation);
Normalizer::redirectRelations($rel, $focus);
//Analyst::removeEntity($rel->name);
//Analyst::unsetRelation($relation->opposite);
//Analyst::unsetRelation($relation);
return $focus;
}
+11 -12
Ver Arquivo
@@ -24,16 +24,17 @@
{
if(!$rel)
continue;
echo $rel->name." - from: ".$from->name." - focus: ".$rel->focus->name.' - rel: '.$rel->rel->name."\n";
if($rel->focus->name == $from->name)
{
echo "foco igual ao from";
$rel->setFocus($to);
$rel->rename($rel->focus->name.PROPERTY_SEPARATOR.$rel->rel->name);
$rel->rename($rel->rel->name.
PROPERTY_SEPARATOR.
$rel->focus->name);
}else{
echo "rel igual ao from";
$rel->setRel($to);
$rel->rename($rel->rel->name.PROPERTY_SEPARATOR.$rel->focus->name);
$rel->rename($rel->focus->name.
PROPERTY_SEPARATOR.
$rel->rel->name);
}
}
}
@@ -51,20 +52,18 @@
// defining the focus
self::setByRelevance($rel->focus, $rel->rel);
//$predicate= &Analyst::$relations[$focus[1]->name]; // less relevant
//$focus = &Analyst::$relations[$focus[0]->name]; // more relevant
// let's check the minimun quantifiers
//echo $focus->name.'---'.$predicate->name;
if($rel->min== 1 && $rel->opposite->min == 1)
{ // for 1:1 / 1:1 relations
{
// for 1:1 / 1:1 relations
self::mergeEntities(self::$focus, self::$predicate, $rel);
//Analyst::unsetRelation($rel->opposite);
}elseif($rel->min== 0 && $rel->opposite->min == 0)
{ // for 0:1 / 0:1 relations
{
// for 0:1 / 0:1 relations
}else{
// for 0:1 / 1:1 relations
}
}while($rel= next(self::$oneByOne));
}