private void handleCustomCommand(String customCommand, QueueingConsumer.Delivery task) throws Exception { if (logger.isTraceEnabled()) { logger.trace("executing custom command: [{}]", customCommand); } if (customCommand.equalsIgnoreCase("mapping")) { CommandParser parser = null; try { parser = new CommandParser(task.getBody()); PutMappingResponse response = client .admin() .indices() .preparePutMapping(parser.getIndex()) .setType(parser.getType()) .setSource(parser.content) .execute() .actionGet(); } catch (IndexMissingException im) { // if the index has not been created yet, we can should // it with this mapping logger.trace("index {} is missing, creating with mappin", parser.getIndex()); CreateIndexResponse res = client .admin() .indices() .prepareCreate(parser.getIndex()) .addMapping(parser.getType(), parser.content) .execute() .actionGet(); } } else if (customCommand.equalsIgnoreCase("deleteByQuery")) { CommandParser parser = null; parser = new CommandParser(task.getBody()); if (null != parser.getIndex()) { DeleteByQueryRequest dreq = new DeleteByQueryRequest(parser.getIndex()); if (null != parser.getType()) dreq.types(parser.getType()); if (null != parser.queryString) dreq.query(new QueryStringQueryBuilder(parser.queryString)); else dreq.query(parser.content); DeleteByQueryResponse response = client.deleteByQuery(dreq).actionGet(); } } else { logger.warn( "unknown custom command - {} [{}]", customCommand, task.getEnvelope().getDeliveryTag()); } }
public void run() { CommandParser parser = new CommandParser(); System.out.println("The mini-DB of NBA coaches and teams"); System.out.println("Please enter a command. Enter 'help' for a list of commands."); System.out.println(); System.out.print("> "); Command cmd = null; while ((cmd = parser.fetchCommand()) != null) { // System.out.println(cmd); boolean result = false; if (cmd.getCommand().equals("help")) { result = doHelp(); /* You need to implement all the following commands */ } else if (cmd.getCommand().equals("add_coach")) { try { String params[] = cmd.getParameters(), submitStr; FileWriter fw = new FileWriter("coaches_season.txt", true); fw.write("\n"); submitStr = params[0] + "," + params[1] + ",," + params[2] + "," + params[3] + "," + params[4] + "," + params[5]; submitStr += "," + params[6] + "," + params[7] + "," + params[8]; fw.write(submitStr); fw.close(); } catch (Exception ex) { System.out.println( "A problem has occurred. Refer to the next line about the exception that was thrown."); System.out.println(ex.toString()); } } else if (cmd.getCommand().equals("add_team")) { try { String params[] = cmd.getParameters(), submitStr = params[0]; FileWriter fw = new FileWriter("teams.txt", true); // true sets it to append instead of overwrite fw.write("\n"); for (int i = 1; i < params.length; i++) { submitStr += "," + params[i]; } fw.write(submitStr); fw.close(); } catch (Exception ex) { System.out.println( "A problem has occurred. Refer to the next line about the exception that was thrown."); System.out.println(ex.toString()); } } else if (cmd.getCommand().equals("print_coaches")) { try { FileInputStream fstream = new FileInputStream("coaches_season.txt"); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine, pieces[]; strLine = br.readLine(); // Reads in and ignores the first line which defines the structure of // columns while ((strLine = br.readLine()) != null) { pieces = strLine.split(","); if (pieces.length == 10) { // Print the content on the console System.out.print( pieces[0] + " " + pieces[1] + " " + pieces[3] + " " + pieces[4] + " " + pieces[5] + " " + pieces[6] + " "); System.out.println(pieces[7] + " " + pieces[8] + " " + pieces[9]); } } in.close(); } catch (Exception ex) { System.out.println( "A problem has occurred. Refer to the next line about the exception that was thrown."); System.out.println(ex.toString()); } } else if (cmd.getCommand().equals("print_teams")) { try { FileInputStream fstream = new FileInputStream("teams.txt"); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine, pieces[]; strLine = br.readLine(); // Reads in and ignores the first line which defines the structure of // columns while ((strLine = br.readLine()) != null) { pieces = strLine.split(","); if (pieces.length == 4) { System.out.println(pieces[0] + " " + pieces[1] + " " + pieces[2] + " " + pieces[3]); } } br.close(); } catch (Exception ex) { System.out.println( "A problem has occurred. Refer to the next line about the exception that was thrown."); System.out.println(ex.toString()); } } else if (cmd.getCommand().equals("coaches_by_name")) { try { FileInputStream fstream = new FileInputStream("coaches_season.txt"); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine, pieces[]; String parameters[] = cmd.getParameters(); while ((strLine = br.readLine()) != null) { pieces = strLine.split(","); if (pieces.length == 10) if (pieces[4].trim().equals(parameters[0].replace("+", " "))) System.out.println( pieces[0] + " " + pieces[1] + " " + pieces[3] + " " + pieces[4] + " " + pieces[5] + " " + pieces[6] + " " + pieces[7] + " " + pieces[8] + " " + pieces[9]); } br.close(); } catch (Exception ex) { System.out.println( "A problem has occurred. Refer to the next line about the exception that was thrown."); System.out.println(ex.toString()); } } else if (cmd.getCommand().equals("teams_by_city")) { try { FileInputStream fstream = new FileInputStream("teams.txt"); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine, pieces[]; String parameters[] = cmd.getParameters(); while ((strLine = br.readLine()) != null) { pieces = strLine.split(","); if (pieces.length == 4 && pieces[1].trim().equals(parameters[0])) { System.out.println(strLine); } } br.close(); } catch (Exception ex) { System.out.println( "A problem has occurred. Refer to the next line about the exception that was thrown."); System.out.println(ex.toString()); } } else if (cmd.getCommand().equals("load_coaches")) { try { String params[] = cmd.getParameters(), strLine; FileInputStream fstream = new FileInputStream(params[0]); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); FileWriter fw = new FileWriter("coaches_season.txt", true); strLine = br.readLine(); // reads in and ignores first line which is the schema while ((strLine = br.readLine()) != null) { fw.write("\n" + strLine); } fw.close(); } catch (Exception ex) { System.out.println( "A problem has occurred. Refer to the next line about the exception that was thrown."); System.out.println(ex.toString()); } } else if (cmd.getCommand().equals("load_teams")) { try { String params[] = cmd.getParameters(), strLine; FileInputStream fstream = new FileInputStream(params[0]); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); FileWriter fw = new FileWriter("teams.txt", true); strLine = br.readLine(); // reads in and ignores first line which is the schema while ((strLine = br.readLine()) != null) { fw.write("\n" + strLine); } fw.close(); } catch (Exception ex) { System.out.println( "A problem has occurred. Refer to the next line about the exception that was thrown."); System.out.println(ex.toString()); } } else if (cmd.getCommand().equals("best_coach")) { try { FileInputStream fstream = new FileInputStream("coaches_season.txt"); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine, pieces[]; String parameters[] = cmd.getParameters(), tempLine = ""; int netWins = 0; while ((strLine = br.readLine()) != null) { pieces = strLine.split(","); if (pieces.length == 10 && pieces[1].trim().equals(parameters[0])) { if (netWins < Integer.parseInt(pieces[5].trim()) - Integer.parseInt(pieces[6].trim())) { netWins = Integer.parseInt(pieces[5].trim()) - Integer.parseInt(pieces[6].trim()); tempLine = pieces[3].trim() + " " + pieces[4].trim(); } } } System.out.println(tempLine); br.close(); } catch (Exception ex) { System.out.println( "A problem has occurred. Refer to the next line about the exception that was thrown."); System.out.println(ex.toString()); } } else if (cmd.getCommand().equals("search_coaches")) { try { String[] params = cmd.getParameters(); FileInputStream fstream = new FileInputStream("coaches_season.txt"); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine, pieces[]; while ((strLine = br.readLine()) != null) { if (!strLine.equals("")) { boolean inRow = true; pieces = strLine.split(","); for (int i = 0; i < params.length; i++) { if (!pieces[findIndex(params[i].split("=")[0].trim())] .trim() .equals(params[i].split("=")[1].trim())) { inRow = false; } } if (inRow) { System.out.println(strLine.replace(",", "")); } } } br.close(); } catch (ArrayIndexOutOfBoundsException ex) { System.out.println("You have entered an invalid column name."); } catch (Exception ex) { System.out.println( "A problem has occurred. Refer to the next line about the exception that was thrown."); System.out.println(ex.toString()); } } else if (cmd.getCommand().equals("exit")) { System.out.println("Leaving the database, goodbye!"); break; } else if (cmd.getCommand().equals("")) { } else { System.out.println("Invalid Command, try again!"); } if (result) { // ... } System.out.print("> "); } }