Class 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.

    • 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.