protected function generatePhpcrSerializer(OutputInterface $output, BundleMetadata $bundleMetadata)
 {
     $names = $bundleMetadata->getPhpcrMetadata()->getDocumentNames();
     if (is_array($names) && count($names) > 0) {
         $output->writeln(' - Generating PHPCR serializer files');
         foreach ($names as $name) {
             $destFile = sprintf('%s/Document.%s.xml', $bundleMetadata->getPhpcrMetadata()->getExtendedSerializerDirectory(), $name);
             $this->writeSerializerFile($output, $bundleMetadata, $this->documentSerializerTemplate, $destFile, $name);
         }
     }
 }
 /**
  * @param OutputInterface $output
  * @param BundleMetadata  $bundleMetadata
  */
 public function generateDocumentRepositoryFiles(OutputInterface $output, BundleMetadata $bundleMetadata)
 {
     $output->writeln(' - Generating Document repository files');
     $names = $bundleMetadata->getPhpcrMetadata()->getDocumentNames();
     foreach ($names as $name) {
         $dest_file = sprintf('%s/%sRepository.php', $bundleMetadata->getPhpcrMetadata()->getExtendedDocumentDirectory(), $name);
         $src_file = sprintf('%s/Base%sRepository.php', $bundleMetadata->getPhpcrMetadata()->getDocumentDirectory(), $name);
         if (!is_file($src_file)) {
             $output->writeln(sprintf('   ! <info>%sRepository</info>', $name));
             continue;
         }
         if (is_file($dest_file)) {
             $output->writeln(sprintf('   ~ <info>%sRepository</info>', $name));
         } else {
             $output->writeln(sprintf('   + <info>%sRepository</info>', $name));
             $string = Mustache::replace($this->getDocumentRepositoryTemplate(), array('extended_namespace' => $bundleMetadata->getExtendedNamespace(), 'name' => $name, 'namespace' => $bundleMetadata->getNamespace()));
             file_put_contents($dest_file, $string);
         }
     }
 }