@SuppressWarnings({"rawtypes", "unchecked"}) private LinkedHashMap computePersonFreq(LinkedHashMap map) { if (map == null) return null; ArrayList<PersonFrequency> values; ArrayList ev; LinkedHashMap res = new LinkedHashMap<Object, ArrayList<PersonFrequency>>(map.size(), 1); Entry e; Set<Entry> es = map.entrySet(); Iterator<Entry> esit = es.iterator(); Iterator<Commit> evit; PersonFrequency p; long pTs; Commit c; int i; while (esit.hasNext()) { e = esit.next(); ev = (ArrayList) e.getValue(); evit = ev.iterator(); values = new ArrayList<PersonFrequency>(ev.size()); while (evit.hasNext()) { c = evit.next(); pTs = c.getCommittingInfo().getWhen().getTime(); i = Collections.binarySearch(allAuthors, c.getAuthoringInfo()); p = new PersonFrequency(i); i = GitWorks.addUnique(values, p); p = values.get(i); p.freq++; if (p.since > pTs) p.since = pTs; if (p.until < pTs) p.until = pTs; } values.trimToSize(); res.put(e.getKey(), values); } return res; }
@SuppressWarnings({"rawtypes", "unchecked"}) private LinkedHashMap importMap(ObjectInput in) throws IOException { int j, i, size, vsize, keyType, valueType; PersonFrequency p; size = in.readInt(); if (size == 0) { return null; } keyType = in.readInt(); valueType = in.readInt(); LinkedHashMap res = new LinkedHashMap(size, 1); ArrayList values; for (i = 0; i < size; i++) { vsize = in.readInt(); values = new ArrayList(vsize); switch (valueType) { case 0: for (j = 0; j < vsize; j++) { values.add(allCommits.get(in.readInt())); } break; case 1: for (j = 0; j < vsize; j++) { values.add(allBranches.get(in.readInt())); } break; default: for (j = 0; j < vsize; j++) { p = new PersonFrequency(in.readInt()); p.freq = in.readInt(); p.since = in.readLong(); p.until = in.readLong(); values.add(p); } } switch (keyType) { case 0: res.put(allCommits.get(in.readInt()), values); break; case 1: res.put(in.readUTF(), values); } } return res; }