package main; import database.ConnectionBuilder; import java.util.Arrays; /** * The main class containing the main method. */ public class Main { private final ConnectionBuilder cb; public static void main(String[] args) { Main main; try { main = new Main(args); } catch (IllegalArgumentException ex) { System.err.println(ex.getMessage()); System.exit(1); return; } main.run(); } private String[] leftover_params; public Main(String[] args) { cb = new ConnectionBuilder() .setServerName("localhost") .setUsername("twitter") .setPassword("2IOC02") .setDbName("twitter"); parseGlobalOptions(args); } public void run() { try { FarmShell shell = new FarmShell(cb); if (leftover_params != null && leftover_params.length > 0) { shell.execute(leftover_params); } shell.process_forever(); } catch (IllegalArgumentException ex) { System.err.println(ex.getMessage()); System.exit(1); } } private void parseGlobalOptions(String[] args) throws IllegalArgumentException { /* parse global options */ for (int i = 0; i < args.length; i++) { if ("--dbhost".equals(args[i])) { cb.setServerName(getArg(args, ++i, "--dbhost")); } else if ("--dbuser".equals(args[i])) { cb.setUsername(getArg(args, ++i, "--dbuser")); } else if ("--dbpass".equals(args[i])) { cb.setPassword(getArg(args, ++i, "--dbpass")); } else if ("--dbport".equals(args[i])) { cb.setPort(Integer.valueOf(getArg(args, ++i, "--dbport"))); } else if ("--dbname".equals(args[i])) { cb.setDbName(getArg(args, ++i, "--dbname")); } else if (args[i].startsWith("-")) { throw new IllegalArgumentException("Invalid option: " + args[i]); } else { leftover_params = Arrays.copyOfRange(args, i, args.length); break; } } } private String getArg(String[] params, int index, String name) { if (index >= params.length) { throw new IllegalArgumentException("Missing argument for parameter " + name); } return params[index]; } }