@SuppressWarnings({ "AutoBoxing", "AutoUnboxing" }) @Override public void matchSuccess(final MatchSuccessEvent<V> event) { final long endTime = System.nanoTime(); final MatcherContext<V> context = event.getContext(); final int level = context.getLevel(); final Integer parentNodeId = nodeIds.get(level - 1); final Integer nodeId = nodeIds.get(level); final int startIndex = prematchIndices.get(level); final int endIndex = Math.min(nrChars, context.getCurrentIndex()); final Integer matcherId = prematchMatcherIds.get(level); final long time = endTime - prematchTimes.get(level); // Write: // parent;id;level;success;matcherId;start;end;time sb.setLength(0); sb.append(parentNodeId).append(';') .append(nodeId).append(';') .append(level).append(";1;") .append(matcherId).append(';') .append(startIndex).append(';') .append(endIndex).append(';') .append(time).append('\n'); try { writer.append(sb); } catch (IOException e) { throw cleanup(e); } }
@SuppressWarnings({ "AutoBoxing", "AutoUnboxing" }) @Override public void matchFailure(final MatchFailureEvent<V> event) { final long endTime = System.nanoTime(); final MatcherContext<V> context = event.getContext(); final int level = context.getLevel(); final Integer parentNodeId = nodeIds.get(level - 1); final Integer nodeId = nodeIds.get(level); final int startIndex = prematchIndices.get(level); final int endIndex = context.getCurrentIndex(); final Integer matcherId = prematchMatcherIds.get(level); final long time = endTime - prematchTimes.get(level); // Write: // parent;id;level;success;matcherId;start;end;time sb.setLength(0); sb.append(parentNodeId).append(';') .append(nodeId).append(';') .append(level).append(";0;") .append(matcherId).append(';') .append(startIndex).append(';') .append(endIndex).append(';') .append(time).append('\n'); try { writer.append(sb); } catch (IOException e) { throw cleanup(e); } }
@Override public void beforeMatch(final PreMatchEvent<V> event) { final MatcherContext<V> context = event.getContext(); final Matcher matcher = context.getMatcher(); Integer id = matcherIds.get(matcher); if (id == null) { //noinspection UnnecessaryBoxing id = Integer.valueOf(nextMatcherId); matcherIds.put(matcher, id); final MatcherType type = typeProvider.getType(matcher.getClass()); final MatcherDescriptor descriptor = new MatcherDescriptor(nextMatcherId, type, matcher); matcherDescriptors.put(matcher, descriptor); nextMatcherId++; } final int level = context.getLevel(); nodeIds.put(level, nextNodeId); nextNodeId++; prematchMatcherIds.put(level, id); final int startIndex = Math.min(nrChars, context.getCurrentIndex()); prematchIndices.put(level, startIndex); prematchTimes.put(level, System.nanoTime()); }