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 = [];
        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;
    }