private void update() { if (updated) { return; } tempStartOffsets = new long[size]; tempEndOffsets = new long[size]; int i = 0; for (Map.Entry<Long,NodePosition> entry: startMap.entrySet()) { tempStartOffsets[i] = entry.getKey(); tempEndOffsets[i] = entry.getValue().getTempEndOffset(); i++; } Arrays.sort(tempStartOffsets); Arrays.sort(tempEndOffsets); updated = true; }
private void add(NodePosition mapping) { startMap.put(mapping.getTempStartOffset(), mapping); endMap.put(mapping.getTempEndOffset(), mapping); size++; updated = false; }
public void dump() { update(); for (int i = 0 ; i < size ; i++) { long start = tempStartOffsets[i]; long end = tempEndOffsets[i]; NodePosition m = startMap.get(start); System.out.format("FGMT: %d, %d : o(%d, %d) t(%d, %d)%n", start, end, m.getOriginalStartOffset(), m.getOriginalEndOffset(), m.getTempStartOffset(), m.getTempEndOffset() ); } }
@Override public int compare(NodePosition arg0, NodePosition arg1) { long diff = arg0.getTempStartOffset() - arg1.getTempStartOffset(); if (diff != 0L) { return Long.signum(diff); } // implied else diff = arg0.getTempEndOffset() - arg1.getTempEndOffset(); if (diff != 0L) { return Long.signum(diff); } // implied else diff = arg0.getOriginalStartOffset() - arg1.getOriginalStartOffset(); if (diff != 0L) { return Long.signum(diff); } // implied else diff = arg0.getOriginalEndOffset() - arg1.getOriginalEndOffset(); return Long.signum(diff); }
mapping.getTempEndOffset(), "Input", Factory.newFeatureMap());