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();
    }