public static function build(MetaClass $class) { if (!$class->hasBuildableParent()) { return DictionaryDaoBuilder::build($class); } else { $parent = $class->getParent(); } if ($class->getParent()->getPattern() instanceof InternalClassPattern) { $parentName = 'StorableDAO'; } else { $parentName = $parent->getName() . 'DAO'; } $out = self::getHead(); $out .= <<<EOT abstract class Auto{$class->getName()}DAO extends {$parentName} { EOT; $out .= self::buildPointers($class) . "\n}\n"; return $out . self::getHeel(); }
private static function dumpMetaClass(MetaClass $class) { $propertyList = $class->getWithInternalProperties(); $out = <<<EOT \tprotected function makePropertyList() \t{ EOT; if ($class->hasBuildableParent()) { $out .= <<<EOT \t\treturn \t\t\tarray_merge( \t\t\t\tparent::makePropertyList(), \t\t\t\tarray( EOT; if ($class->getIdentifier()) { $propertyList[$class->getIdentifier()->getName()] = $class->getIdentifier(); } } else { $out .= <<<EOT \t\treturn array( EOT; } $list = array(); foreach ($propertyList as $property) { $list[] = "'{$property->getName()}' => " . $property->toLightProperty($class)->toString(); } $out .= implode(",\n", $list); if ($class->hasBuildableParent()) { $out .= "\n)"; } $out .= <<<EOT \t\t); \t} EOT; return $out; }