protected function generateDataFileAbstract($dir)
    {
        $file = $dir . '/' . $this->config->getClassname() . 'Abstract.php';

        if (!is_readable($file) && false === file_put_contents($file, '')) {
            throw new \RuntimeException('Cannot create empty class file: ' . $file);
        }

        $content = '<?php

/**
 * Copyright (c) 2010-' . date('Y') . ' ' . $this->config->getAuthor() . '
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace ' . $this->baseNamespace . 'Data\\' . $this->config->getNamespace() . '\Abstracts;

use Eureka\Component\Orm\DataMapper\DataAbstract;
' . $this->vars['joins_use']  . '

/**
 * /!\ AUTO GENERATED FILE. DO NOT EDIT THIS FILE.
 * THIS FILE IS OVERWRITTEN WHEN THE ORM SCRIPT GENERATOR IS RUN.
 * You can add you specific code in child class: ' . $this->config->getClassname() . '
 *
 * @author  ' . $this->config->getAuthor() . '
 * @version ' . $this->config->getVersion() . '
 */
abstract class ' . $this->config->getClassname() . 'Abstract extends DataAbstract
{' . $this->vars['properties'] . '
' . $this->vars['cache_key'] . '
' . $this->vars['getters'] . '
' . $this->vars['setters'] . '
' . $this->vars['joins'] . '}
';
        if (false === file_put_contents($file, $content)) {
            throw new \RuntimeException('Unable to write file content! (file: ' . $file . ')');
        }
    }