]> git.andy128k.dev Git - ipf-legacy-orm.git/commitdiff
rafactor definition of subclasses
authorAndrey Kutejko <andy128k@gmail.com>
Sat, 27 Jul 2013 18:04:35 +0000 (21:04 +0300)
committerAndrey Kutejko <andy128k@gmail.com>
Sat, 27 Jul 2013 18:04:35 +0000 (21:04 +0300)
ipf/orm/import/builder.php
ipf/orm/record/abstract.php
ipf/orm/table.php

index cf027a2d16e5ac6cb29bb36df22c9a8e13f7bd67..f6b234fb5fa3f5bdd04766547e43c1103f32c92b 100644 (file)
@@ -45,8 +45,9 @@ class IPF_ORM_Import_Builder
         if (isset($definition['options']) && is_array($definition['options']) && !empty($definition['options']))
             $ret[] = $this->buildOptions($definition['options']);
 
-        if (isset($definition['inheritance']['subclasses']) && ! empty($definition['inheritance']['subclasses']))
-            $ret[] = "    ".'$this->setSubClasses('. self::varExport($definition['inheritance']['subclasses']).');';
+        if (isset($definition['inheritance']['subclasses']) && !empty($definition['inheritance']['subclasses'])) {
+            $ret[] = "    ".'$table->setSubClasses('. self::varExport($definition['inheritance']['subclasses']).');';
+        }
 
         $ret[] = '  }';
 
index 1a1cbf7337bab7dd4ef82ea5caaaf58b8f97a448..15183d60d161b6b3ca477ba2d6c1cac6c25eb7e6 100644 (file)
@@ -22,15 +22,6 @@ abstract class IPF_ORM_Record_Abstract extends IPF_ORM_Access
         $this->_table->setOption('inheritanceMap', $map);
     }
 
-    public function setSubclasses($map)
-    {
-        if (isset($map[get_class($this)])) {
-            $this->_table->setOption('inheritanceMap', $map[get_class($this)]);
-            return;
-        }
-        $this->_table->setOption('subclasses', array_keys($map));
-    }
-
     public function attribute($attr, $value)
     {
         if ($value == null) {
index a6a582826358a0b0c595ea94749731aae6642c83..f938222f519f852e20a14b87c1b83027506c3fc5 100644 (file)
@@ -585,6 +585,16 @@ class IPF_ORM_Table extends IPF_ORM_Configurable implements Countable
         return isset($this->_columnNames[$fieldName]);
     }
 
+    public function setSubClasses(array $map)
+    {
+        $class = $this->getComponentName();
+        if (isset($map[$class])) {
+            $this->setOption('inheritanceMap', $map[$class]);
+        } else {
+            $this->setOption('subclasses', array_keys($map));
+        }
+    }
+
     public function setConnection(IPF_ORM_Connection $conn)
     {
         $this->_conn = $conn;