/** * Given a sequence, applies our patterns over the sequence and returns * all non overlapping matches. When multiple patterns overlaps, * matched patterns are selected to give the overall maximum score * @param elements input sequence to match against * @return list of match results that are non-overlapping */ public List<SequenceMatchResult<T>> findNonOverlappingMaxScore(List<? extends T> elements) { return findNonOverlappingMaxScore(elements, SequenceMatchResult.SCORER); }
@Override public boolean extract(List<? extends T> seq, List<O> out) { if (seq == null) return false; boolean extracted = false; List<SequenceMatchResult<T>> matched = matcher.findNonOverlappingMaxScore(seq); for (SequenceMatchResult<T> m : matched) { out.add(extractor.apply(m)); extracted = true; } return extracted; }
@Override public O apply(List<? extends T> seq) { if (seq == null) return null; List<SequenceMatchResult<T>> matched = matcher.findNonOverlappingMaxScore(seq); if ( ! matched.isEmpty()) { return extractor.apply(matched.get(0)); } else { return null; } } }
/** * Given a sequence, applies our patterns over the sequence and returns * all non overlapping matches. When multiple patterns overlaps, * matched patterns are selected to give the overall maximum score * @param elements input sequence to match against * @return list of match results that are non-overlapping */ public List<SequenceMatchResult<T>> findNonOverlappingMaxScore(List<? extends T> elements) { return findNonOverlappingMaxScore(elements, SequenceMatchResult.SCORER); }
/** * Given a sequence, applies our patterns over the sequence and returns * all non overlapping matches. When multiple patterns overlaps, * matched patterns are selected to give the overall maximum score * @param elements input sequence to match against * @return list of match results that are non-overlapping */ public List<SequenceMatchResult<T>> findNonOverlappingMaxScore(List<? extends T> elements) { return findNonOverlappingMaxScore(elements, SequenceMatchResult.SCORER); }
@Override public boolean extract(List<? extends T> seq, List<O> out) { if (seq == null) return false; boolean extracted = false; List<SequenceMatchResult<T>> matched = matcher.findNonOverlappingMaxScore(seq); for (SequenceMatchResult<T> m : matched) { out.add(extractor.apply(m)); extracted = true; } return extracted; }
@Override public boolean extract(List<? extends T> seq, List<O> out) { if (seq == null) return false; boolean extracted = false; List<SequenceMatchResult<T>> matched = matcher.findNonOverlappingMaxScore(seq); for (SequenceMatchResult<T> m : matched) { out.add(extractor.apply(m)); extracted = true; } return extracted; }
@Override public O apply(List<? extends T> seq) { if (seq == null) return null; List<SequenceMatchResult<T>> matched = matcher.findNonOverlappingMaxScore(seq); if ( ! matched.isEmpty()) { return extractor.apply(matched.get(0)); } else { return null; } } }
@Override public O apply(List<? extends T> seq) { if (seq == null) return null; List<SequenceMatchResult<T>> matched = matcher.findNonOverlappingMaxScore(seq); if ( ! matched.isEmpty()) { return extractor.apply(matched.get(0)); } else { return null; } } }