/**
*
* @return ClassesBuilder
*/
protected function writeClasses($force = false)
{
$n = 0;
$classesBuffer = new TagProviderBuilder('', 'TagProvider', array(), '\\Pimple');
$buffer = array();
foreach ($this->classes as $class) {
try {
$class->write($force);
if (strpos($class->getNamespace(), 'PHPExiftool\\Driver\\Tag') === 0) {
if (!isset($buffer[$class->getProperty('GroupName')])) {
$buffer[$class->getProperty('GroupName')] = array();
}
$buffer[$class->getProperty('GroupName')][$class->getProperty('Name')] = $class->getNamespace() . '\\' . $class->getClassname();
}
$this->output->write(sprintf("\rwriting class #%5d", $n++));
} catch (\Exception $e) {
$this->output->writeln(sprintf("\n<error>Error while writing class %s</error>", $class->getPathfile()));
}
}
$classesBuffer->setClasses($buffer);
$classesBuffer->write(true);
$this->output->writeln('');
return $this;
}