Advertisement
astaspasta

Untitled

Dec 6th, 2019
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.37 KB | None | 0 0
  1. package client;
  2.  
  3. import java.io.File;
  4. import java.util.ArrayList;
  5. import java.util.Scanner;
  6.  
  7. import datamodel.IResult;
  8. import datamodel.MeasurementRecord;
  9. import mainengine.IMainEngine;
  10. import mainengine.MainEngineFactory;
  11.  
  12. public class Client {
  13.  
  14. private static Scanner scanner;
  15.  
  16. private static IMainEngine mainEngine;
  17. private static MainEngineFactory factory;
  18. private static ArrayList<MeasurementRecord> objCollection;
  19. private static IResult result;
  20. static private String inputFilename;
  21. static private String outputFilename;
  22. static private String delimeter;
  23. static private Boolean hasHeader;
  24. static private int numFields;
  25.  
  26. private static String description;
  27.  
  28. private static ArrayList<String> history = new ArrayList<String>();
  29.  
  30. public static void main(String[] args) {
  31.  
  32. scanner = new Scanner(System.in);
  33.  
  34. factory = new MainEngineFactory();
  35. mainEngine = factory.createMainEngine("MainEngine");
  36. objCollection = new ArrayList<MeasurementRecord>();
  37.  
  38. String input;
  39. do {
  40. System.out.println("LOAD <file path>");
  41. System.out.println("BUILD <aggregator type> <aggregator function>");
  42. System.out.println("REPORT <type> <file path>");
  43. System.out.println("HISTORY");
  44. System.out.println("EXIT");
  45.  
  46. System.out.print("Select option: ");
  47. input = scanner.nextLine();
  48.  
  49. if (input.toLowerCase().startsWith("load")) {
  50. if (input.contains(" ")) {
  51. inputFilename = input.replace(input.split(" ")[0]+" ", "");
  52.  
  53. File file = new File(inputFilename);
  54.  
  55. if (file.exists()) {
  56. System.out.print("Enter delimeter: ");
  57. delimeter = scanner.nextLine();
  58.  
  59. System.out.print("Does file contain header line (true/false): ");
  60. hasHeader = scanner.nextBoolean();
  61.  
  62. System.out.print("Fields number: ");
  63. numFields = scanner.nextInt();
  64. scanner.nextLine();
  65.  
  66. mainEngine.loadData(inputFilename, delimeter, hasHeader, numFields, objCollection);
  67. } else {
  68. System.out.println("File doesnt exist");
  69. }
  70. } else {
  71. System.out.println("Missing input. Please enter path to load file");
  72. }
  73. } else if (input.toLowerCase().startsWith("build")) {
  74. if (input.contains(" ")) {
  75.  
  76. String aggregatorType = input.split(" ")[1].toLowerCase();
  77. String aggregatorFunc = input.split(" ")[2].toLowerCase();
  78.  
  79. if ((aggregatorType.equals("season") || aggregatorType.equals("month") || aggregatorType.equals("dayofweek") || aggregatorType.equals("period"))) {
  80. if ((aggregatorFunc.equals("avg") || aggregatorFunc.equals("sum"))) {
  81. System.out.print("Enter description: ");
  82. description = scanner.nextLine();
  83. result = mainEngine.aggregateByTimeUnit(objCollection, aggregatorType, aggregatorFunc, description);
  84. } else {
  85. System.out.println("Invalid input. Aggregator function should be avg or sum.");
  86. }
  87. } else {
  88. System.out.println("Invalid input. Aggregator type should be season, month, dayofweek or period.");
  89. }
  90. } else {
  91. System.out.println("Missing input. Please enter required fields");
  92. }
  93. } else if (input.toLowerCase().startsWith("report")) {
  94. if (input.contains(" ")) {
  95. String type = input.split(" ")[1].toLowerCase();
  96. if ((type.equals("md") || type.equals("txt") || type.equals("html"))) {
  97. outputFilename = input.replace(input.split(" ")[0]+" "+input.split(" ")[1]+" ", "");
  98. mainEngine.reportResultInFile(result, type, outputFilename);
  99.  
  100. history.add(description+", "+outputFilename);
  101. } else {
  102. System.out.println("Invalid input. Please use md, html or txt for report type.");
  103. }
  104. } else {
  105. System.out.println("Missing input. Please enter required fields");
  106. }
  107. } else if (input.toLowerCase().equals("history")) {
  108. if (history.size()==0) {
  109. System.out.println("Histroy is empty");
  110. } else {
  111. for (String str : history) {
  112. System.out.println(str);
  113. }
  114.  
  115. System.out.println("\nPress enter to continue...");
  116. scanner.nextLine();
  117. }
  118. } else if (input.toLowerCase().equals("exit")) {
  119. System.out.println("Exiting application.");
  120. } else if (!input.toLowerCase().equals("")) {
  121. System.out.println("Invalid command.");
  122. }
  123.  
  124. System.out.println("\n");
  125. }
  126. while (!input.toLowerCase().equals("exit"));
  127.  
  128. System.exit(0);
  129. }
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement