public static Executor GetInstance(string databaseName = Constants.FILE_NAME) { if (_instance == null) { lock (_lockObject) { if (databaseName != null) { if (!File.Exists(databaseName)) { using (File.Create(databaseName)); } } var updateParser = new UpdateParser(); var stringParser = new StringParser(); var reader = new Reader(); var writer = new Writer(reader); var lockManager = new LockManager(writer, reader); var schemaFetcher = new SchemaFetcher(reader); var selectParser = new SelectParser(); var insertParser = new InsertParser(schemaFetcher); var generalParser = new GeneralParser(); var createParser = new CreateParser(); var predicateParser = new PredicateParser(); var interpreter = new Interpreter( selectParser, insertParser, updateParser, schemaFetcher, generalParser, createParser, stringParser, lockManager, reader, predicateParser); _instance = new Executor(interpreter); } } return(_instance); }
public Interpreter(SelectParser selectParser, InsertParser insertParser, UpdateParser updateParser, SchemaFetcher schemaFetcher, GeneralParser generalParser, CreateParser createParser, StringParser stringParser, LockManager lockManager, Reader reader, PredicateParser predicateParser) { _selectParser = selectParser; _insertParser = insertParser; _updateParser = updateParser; _schemaFetcher = schemaFetcher; _generalParser = generalParser; _createParser = createParser; _stringParser = stringParser; _lockManager = lockManager; _reader = reader; _predicateParser = predicateParser; }