use Doctrine\DBAL\Configuration;
use ODataConnectorForMySQL\EDMXGenerator\IEDMXGenerator;
use ODataConnectorForMySQL\EDMXGenerator\EDMXGenerator;
use ODataConnectorForMySQL\EDMXGenerator\ConnectionParams;
use ODataConnectorForMySQL\Common\ServiceConfig;
use ODataConnectorForMySQL\Common\ODataConnectorForMySQLConstants;
use ODataConnectorForMySQL\Common\ODataConnectorForMySQLException;
ODataConnectorForMySQL\Common\ClassAutoLoader::register();
//set_include_path('/var/www/doctrine-orm');
define('OUT_DIR', '/ODataConnectorForMySQL/OutputFiles');
define('XSL_DIR', '/ODataConnectorForMySQL/ProvidersGenerator');
define('CONFIG_FILE', '/ODataConnectorForMySQL/service.config.xml');
try {
    $util = new MySQLConnector($argv);
    $options = $util->getOptions();
    $stage = $util->validateAndBuidOptions();
    $currentDir = str_replace("\\", "/", dirname(__FILE__));
    $serviceOutDir = $currentDir . OUT_DIR . "/" . $util->options['serviceName'];
    $serviceXslDir = $currentDir . XSL_DIR;
    $configFileName = $currentDir . CONFIG_FILE;
    if ($stage === 1 or $stage === 2) {
        $util->options['driver'] = 'pdo_mysql';
        if (!is_dir($serviceOutDir)) {
            mkdir($serviceOutDir, 0777);
        }
        if ($stage === 1) {
            $util->generateEDMX($serviceOutDir);
        }
        $util->generateProviders($serviceOutDir, $serviceXslDir, $configFileName, $stage);
    } else {
        $util->showUsage('Some arguments are missing, please enter all required parameters.');