Exemple #1
0
 public Engine(CommandInterpreter interpreter, GarbageProcessor garbageProcessor, IReader reader, IWriter writer)
 {
     this.interpreter      = interpreter;
     this.garbageProcessor = garbageProcessor;
     this.reader           = reader;
     this.writer           = writer;
 }
        public ICommand InterpretCommand(GarbageProcessor garbageProcessor, string[] tokens)
        {
            var commandName = tokens[0] + "Command";
            var assembly    = Assembly.GetExecutingAssembly();
            var classType   = assembly.GetTypes().FirstOrDefault(t => t.Name.Equals(commandName));

            if (tokens.Count() > 1)
            {
                var args = tokens[1]?.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
                return((ICommand)Activator.CreateInstance(classType, garbageProcessor, args));
            }

            return((ICommand)Activator.CreateInstance(classType, garbageProcessor, null));
        }