Class CollationWeights


  • public final class CollationWeights
    extends Object
    Allocates n collation element weights between two exclusive limits. Used only internally by the collation tailoring builder.
    • Constructor Detail

      • CollationWeights

        public CollationWeights()
    • Method Detail

      • initForPrimary

        public void initForPrimary​(boolean compressible)
      • initForSecondary

        public void initForSecondary()
      • initForTertiary

        public void initForTertiary()
      • allocWeights

        public boolean allocWeights​(long lowerLimit,
                                    long upperLimit,
                                    int n)
        Determine heuristically what ranges to use for a given number of weights between (excluding) two limits.
        Parameters:
        lowerLimit - A collation element weight; the ranges will be filled to cover weights greater than this one.
        upperLimit - A collation element weight; the ranges will be filled to cover weights less than this one.
        n - The number of collation element weights w necessary such that lowerLimit
        Returns:
        true if it is possible to fit n elements between the limits
      • nextWeight

        public long nextWeight()
        Given a set of ranges calculated by allocWeights(), iterate through the weights. The ranges are modified to keep the current iteration state.
        Returns:
        The next weight in the ranges, or 0xffffffff if there is none left.
      • lengthOfWeight

        public static int lengthOfWeight​(long weight)