/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.pieShare.pieTools.pieUtilities.service.cmdLineService; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import org.pieShare.pieTools.pieUtilities.service.beanService.BeanServiceError; import org.pieShare.pieTools.pieUtilities.service.beanService.IBeanService; import org.pieShare.pieTools.pieUtilities.service.cmdLineService.api.ICmdLineService; import org.pieShare.pieTools.pieUtilities.service.cmdLineService.api.IPrintableEvent; import org.pieShare.pieTools.pieUtilities.service.commandParser.api.ICommandParserService; import org.pieShare.pieTools.pieUtilities.service.commandParser.exception.CommandParserServiceException; import org.pieShare.pieTools.pieUtilities.service.pieExecutorService.api.IExecutorService; /** * * @author Svetoslav */ public class CmdLineService implements ICmdLineService { private IExecutorService executor; private IBeanService beanService; private ICommandParserService parserService; private String linePrefix = "pieShare> "; public void setExecutorService(IExecutorService executor) { this.executor = executor; } public void setBeanService(IBeanService service) { this.beanService = service; } public void setCommandParserService(ICommandParserService service) { this.parserService = service; } @Override public void writeLine(IPrintableEvent msg) { System.out.println(msg.getText()); System.out.print(this.linePrefix); try { this.executor.execute(beanService.getBean(ReadLineTask.class)); } catch (BeanServiceError ex) { //todo-sv: error handling //should never happen!!! } } @Override public void readCommand() { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try { String cmd = reader.readLine(); String[] args = cmd.split(" "); this.parserService.parseArgs(args); } catch (IOException ex) { //todo-sv: error handling } catch (CommandParserServiceException ex) { //todo-sv: error handling } } }