public static function build(MetaClass $class) { $out = self::getHead(); $uses = [StorableDAO::class]; if ($class->isSequenceless()) { $uses[] = SequencelessDAO::class; } $out .= <<<EOT namespace {$class->getAutoDaoNamespace()}; EOT; foreach ($uses as $import) { $out .= <<<EOT use {$import}; EOT; } $out .= <<<EOT abstract class Auto{$class->getName()}DAO extends StorableDAO EOT; if ($class->isSequenceless()) { $out .= ' implements SequencelessDAO'; } $out .= <<<EOT { EOT; $pointers = self::buildPointers($class); $out .= <<<EOT {$pointers} } EOT; return $out . self::getHeel(); }