package main; import database.DBConnection; import io.DataReader; import io.InputReader; import java.util.Arrays; /** * The main class. */ public class Main { /** * The main method of the application. * @param args the global arguments to pass to the program. */ public static void main(String[] args) { try { Main main = new Main(args); } catch (IllegalArgumentException ex) { System.err.println(ex.getMessage()); System.exit(1); } } private String m_hostaddress; private String m_filename; public Main(String[] args) { /* parse the global options. */ parseGlobalOptions(args); if (m_hostaddress == null) { throw new IllegalArgumentException("Missing --dbhost to specify the hostaddress."); } DBConnection connection = new DBConnection(m_hostaddress, "5432", "Twitter", "postgres", "2IOC02"); /* create the object that fills the database */ DataFiller filler = new DataFiller(connection); if (m_filename == null) { InputReader reader = new InputReader(filler); reader.startLoop(); } else { DataReader reader = new DataReader(m_filename, filler); } connection.close(); System.out.print("exit succesfull."); } private void parseGlobalOptions(String[] args) { /* parse global options */ for (int i = 0; i < args.length; i++) { if ("--help".equals(args[i])) { printHelp(); } else if("--dbhost".equals(args[i])) { m_hostaddress = getParam(args, ++i); } else if (args[i].startsWith("-")) { throw new IllegalArgumentException("Invalid option: " + args[i]); } else { /* This should be the filename */ m_filename = getParam(args, i); } } if (args.length == 0) { throw new IllegalArgumentException("No parameters specified, see --help for usage info."); } } /** Read an extra option for a command. */ private String getParam(String[] args, Integer index) { if (index + 1 <= args.length) { index++; return args[index - 1]; } else { throw new IllegalArgumentException("An extra option was missing."); } } /** Print some useful help messages. */ private void printHelp() { for (String line : HELP) { System.out.println(line); } } private final static String[] HELP = { "Global options:", " --help Print this help text.", " --ip Specify the database ip address.", " --file Specify the tweet and profile filenames ", " ", " if no --file was specified read from standard input." }; }