ericek111

[LixkoPack] Crazy Recorder parser.

Dec 29th, 2014
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.05 KB | None | 0 0
  1.     public HashMap<Long, ArrayList<HashMap<Integer, ArrayList<HashMap<String, String>>>>> loadRecords(String recordname) {
  2.         // Tick / (list: (entityid, action))
  3.         HashMap<Long, ArrayList<HashMap<Integer, ArrayList<HashMap<String, String>>>>> entries = new HashMap<Long, ArrayList<HashMap<Integer, ArrayList<HashMap<String, String>>>>>();
  4.         Iterator it = FileUtils.iterateFiles(new File(FileUtil.formatPath("records/" + recordname)), null, false);
  5.         while (it.hasNext()) {
  6.             File f = (File) it.next();
  7.             System.out.println("Proccessing " + f.getName() + "...");
  8.             LineIterator lit;
  9.             try {
  10.                 // Integer.parseInt(f.getName()) - Entity ID
  11.                 // line.replace(commarr[0] + "/", "") - action
  12.                 lit = FileUtils.lineIterator(f, "UTF-8");
  13.                 try {
  14.                     while (lit.hasNext()) {
  15.                         String line = lit.nextLine();
  16.                         // Parse line!
  17.                         String[] commarr = line.split("/");
  18.                         if (entries.containsKey(Long.parseLong(commarr[0]))) {
  19.                             ArrayList<HashMap<Integer, ArrayList<HashMap<String, String>>>> actionlist = entries.get(Long.parseLong(commarr[0]));
  20.                             ArrayList<HashMap<Integer, ArrayList<HashMap<String, String>>>> newactionlist = new ArrayList<HashMap<Integer, ArrayList<HashMap<String, String>>>>();
  21.                             for(HashMap<Integer, ArrayList<HashMap<String, String>>> map : actionlist) {
  22.                                 ArrayList<HashMap<String, String>> entitylist;
  23.                                 if(map.containsKey(Integer.parseInt(f.getName()))) {
  24.                                     entitylist = map.get(Integer.parseInt(f.getName()));
  25.                                 } else {
  26.                                     entitylist = new ArrayList<HashMap<String, String>>();
  27.                                 }
  28.                                 HashMap<String, String> curaction = new HashMap<String, String>();
  29.                                 String[] commargs = line.replace(commarr[0] + "/", "").split("/");
  30.                                 String key = commargs[0];
  31.                                 String value = line.replace(commarr[0] + "/" + commargs[0] + "/", "");
  32.                                 curaction.put(key, value);
  33.                                 entitylist.add(curaction);
  34.                                 map.put(Integer.parseInt(f.getName()), entitylist);
  35.                                 newactionlist.add(map);
  36.                             }
  37.                         } else {
  38.                             ArrayList<HashMap<Integer, ArrayList<HashMap<String, String>>>> actionlist = new ArrayList<HashMap<Integer, ArrayList<HashMap<String, String>>>>();
  39.                             HashMap<Integer, ArrayList<HashMap<String, String>>> map = new HashMap<Integer, ArrayList<HashMap<String, String>>>();
  40.                             String[] commargs = line.replace(commarr[0] + "/", "").split("/");
  41.                             String key = commargs[0];
  42.                             String value = line.replace(commarr[0] + "/" + commargs[0] + "/", "");
  43.                             ArrayList<HashMap<String, String>> actionslist = new  ArrayList<HashMap<String, String>>();
  44.                             HashMap<String, String> actionsmap = new HashMap<String, String>();
  45.                             actionsmap.put(key, value);
  46.                             actionslist.add(actionsmap);
  47.                             map.put(Integer.parseInt(f.getName()), actionslist);
  48.                             actionlist.add(map);
  49.                             entries.put(Long.parseLong(commarr[0]), actionlist);
  50.                         }
  51.                     }
  52.                 } finally {
  53.                     lit.close();
  54.                 }
  55.             } catch (IOException e) {
  56.                 e.printStackTrace();
  57.             }
  58.         }
  59.         System.out.println(nicegson.toJson(entries));
  60.         return entries;
  61.     }
Advertisement
Add Comment
Please, Sign In to add comment