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.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.text.BreakIterator baseIter  
      private boolean isMinimumLength  
      private int lengthGoal  
      • Fields inherited from class java.text.BreakIterator

        DONE
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private LengthGoalBreakIterator​(java.text.BreakIterator baseIter, int lengthGoal, boolean isMinimumLength)  
    • 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)
      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)
      Breaks will be at least minLength apart (to the extent possible).
      int current()  
      int first()  
      int following​(int followingIdx)  
      java.text.CharacterIterator getText()  
      boolean isBoundary​(int offset)  
      int last()  
      private int moveToBreak​(int idx)  
      int next()  
      int next​(int n)  
      int preceding​(int offset)  
      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
      • isMinimumLength

        private final boolean isMinimumLength
    • Constructor Detail

      • LengthGoalBreakIterator

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

      • createMinLength

        public static LengthGoalBreakIterator createMinLength​(java.text.BreakIterator baseIter,
                                                              int minLength)
        Breaks will be at least minLength apart (to the extent possible).
      • createClosestToLength

        public static LengthGoalBreakIterator createClosestToLength​(java.text.BreakIterator baseIter,
                                                                    int targetLength)
        Breaks will be on average targetLength apart; the closest break to this target (before or after) is chosen.
      • 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 followingIdx)
        Specified by:
        following in class java.text.BreakIterator
      • moveToBreak

        private int moveToBreak​(int idx)
      • preceding

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

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