Class PassageFormatter
- java.lang.Object
-
- org.apache.lucene.search.matchhighlight.PassageFormatter
-
public class PassageFormatter extends java.lang.Object
Formats a collection of passages over a given string, cleaning up and resolving restrictions concerning overlaps, allowed sub-ranges over the input string and length restrictions.Passages are demarcated with constructor-provided ellipsis and start/end marker sequences.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
PassageFormatter.SlicePoint
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
ellipsis
private java.util.function.Function<OffsetRange,java.lang.String>
markerEnd
private java.util.ArrayList<OffsetRange>
markerStack
private java.util.function.Function<OffsetRange,java.lang.String>
markerStart
-
Constructor Summary
Constructors Constructor Description PassageFormatter(java.lang.String ellipsis, java.lang.String markerStart, java.lang.String markerEnd)
PassageFormatter(java.lang.String ellipsis, java.util.function.Function<OffsetRange,java.lang.String> markerStart, java.util.function.Function<OffsetRange,java.lang.String> markerEnd)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<java.lang.String>
format(java.lang.CharSequence value, java.util.List<Passage> passages, java.util.List<OffsetRange> ranges)
java.lang.StringBuilder
format(java.lang.StringBuilder buf, java.lang.CharSequence value, Passage passage)
private void
multipleMarkers(java.lang.CharSequence value, Passage p, java.lang.StringBuilder b, java.util.ArrayList<OffsetRange> markerStack)
Handle multiple markers, possibly overlapping or nested.private static PassageFormatter.SlicePoint[]
slicePoints(Passage p)
private boolean
withinRange(OffsetRange limits, java.util.List<? extends OffsetRange> contained)
-
-
-
Field Detail
-
ellipsis
private final java.lang.String ellipsis
-
markerStart
private final java.util.function.Function<OffsetRange,java.lang.String> markerStart
-
markerEnd
private final java.util.function.Function<OffsetRange,java.lang.String> markerEnd
-
markerStack
private final java.util.ArrayList<OffsetRange> markerStack
-
-
Constructor Detail
-
PassageFormatter
public PassageFormatter(java.lang.String ellipsis, java.lang.String markerStart, java.lang.String markerEnd)
-
PassageFormatter
public PassageFormatter(java.lang.String ellipsis, java.util.function.Function<OffsetRange,java.lang.String> markerStart, java.util.function.Function<OffsetRange,java.lang.String> markerEnd)
-
-
Method Detail
-
format
public java.util.List<java.lang.String> format(java.lang.CharSequence value, java.util.List<Passage> passages, java.util.List<OffsetRange> ranges)
-
withinRange
private boolean withinRange(OffsetRange limits, java.util.List<? extends OffsetRange> contained)
-
format
public java.lang.StringBuilder format(java.lang.StringBuilder buf, java.lang.CharSequence value, Passage passage)
-
multipleMarkers
private void multipleMarkers(java.lang.CharSequence value, Passage p, java.lang.StringBuilder b, java.util.ArrayList<OffsetRange> markerStack)
Handle multiple markers, possibly overlapping or nested.
-
slicePoints
private static PassageFormatter.SlicePoint[] slicePoints(Passage p)
-
-