Class LengthGoalBreakIterator

  • All Implemented Interfaces:
    java.lang.Cloneable

    public class LengthGoalBreakIterator
    extends java.text.BreakIterator
    Wraps another BreakIterator to skip past breaks that would result in passages that are too short. It's still possible to get a short passage but only at the very end of the input text.

    Important: This is not a general purpose BreakIterator; it's only designed to work in a way compatible with the UnifiedHighlighter. Some assumptions are checked with Java assertions.

    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private LengthGoalBreakIterator​(java.text.BreakIterator baseIter, int lengthGoal, float fragmentAlignment, boolean isMinimumLength, int currentCache)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object clone()  
      static LengthGoalBreakIterator createClosestToLength​(java.text.BreakIterator baseIter, int targetLength, float fragmentAlignment)
      Breaks will be on average targetLength apart; the closest break to this target (before or after) is chosen.
      static LengthGoalBreakIterator createMinLength​(java.text.BreakIterator baseIter, int minLength, float fragmentAlignment)
      Breaks will be at least minLength apart (to the extent possible), while trying to position the match inside the fragment according to fragmentAlignment.
      int current()  
      int first()  
      int following​(int matchEndIndex)  
      private int following​(int matchEndIndex, int targetIdx)  
      java.text.CharacterIterator getText()  
      boolean isBoundary​(int offset)  
      int last()  
      int next()  
      int next​(int n)  
      int preceding​(int matchStartIndex)  
      int previous()  
      void setText​(java.lang.String newText)  
      void setText​(java.text.CharacterIterator newText)  
      java.lang.String toString()  
      • Methods inherited from class java.text.BreakIterator

        getAvailableLocales, getCharacterInstance, getCharacterInstance, getLineInstance, getLineInstance, getSentenceInstance, getSentenceInstance, getWordInstance, getWordInstance
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • baseIter

        private final java.text.BreakIterator baseIter
      • lengthGoal

        private final int lengthGoal
      • fragmentAlignment

        private final float fragmentAlignment
      • isMinimumLength

        private final boolean isMinimumLength
      • currentCache

        private int currentCache
    • Constructor Detail

      • LengthGoalBreakIterator

        private LengthGoalBreakIterator​(java.text.BreakIterator baseIter,
                                        int lengthGoal,
                                        float fragmentAlignment,
                                        boolean isMinimumLength,
                                        int currentCache)
    • Method Detail

      • createMinLength

        public static LengthGoalBreakIterator createMinLength​(java.text.BreakIterator baseIter,
                                                              int minLength,
                                                              float fragmentAlignment)
        Breaks will be at least minLength apart (to the extent possible), while trying to position the match inside the fragment according to fragmentAlignment.
      • createClosestToLength

        public static LengthGoalBreakIterator createClosestToLength​(java.text.BreakIterator baseIter,
                                                                    int targetLength,
                                                                    float fragmentAlignment)
        Breaks will be on average targetLength apart; the closest break to this target (before or after) is chosen. The match will be positioned according to fragmentAlignment as much as possible.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • clone

        public java.lang.Object clone()
        Overrides:
        clone in class java.text.BreakIterator
      • getText

        public java.text.CharacterIterator getText()
        Specified by:
        getText in class java.text.BreakIterator
      • setText

        public void setText​(java.lang.String newText)
        Overrides:
        setText in class java.text.BreakIterator
      • setText

        public void setText​(java.text.CharacterIterator newText)
        Specified by:
        setText in class java.text.BreakIterator
      • current

        public int current()
        Specified by:
        current in class java.text.BreakIterator
      • first

        public int first()
        Specified by:
        first in class java.text.BreakIterator
      • last

        public int last()
        Specified by:
        last in class java.text.BreakIterator
      • next

        public int next​(int n)
        Specified by:
        next in class java.text.BreakIterator
      • next

        public int next()
        Specified by:
        next in class java.text.BreakIterator
      • previous

        public int previous()
        Specified by:
        previous in class java.text.BreakIterator
      • following

        public int following​(int matchEndIndex)
        Specified by:
        following in class java.text.BreakIterator
      • following

        private int following​(int matchEndIndex,
                              int targetIdx)
      • preceding

        public int preceding​(int matchStartIndex)
        Overrides:
        preceding in class java.text.BreakIterator
      • isBoundary

        public boolean isBoundary​(int offset)
        Overrides:
        isBoundary in class java.text.BreakIterator