src/share/classes/sun/util/locale/provider/BreakDictionary.java

Print this page
rev 5696 : 6336885: RFE: Locale Data Deployment Enhancements
4609153: Provide locale data for Indic locales
5104387: Support for gl_ES locale (galician language)
6337471: desktop/system locale preferences support
7056139: (cal) SPI support for locale-dependent Calendar parameters
7058206: Provide CalendarData SPI for week params and display field value names
7073852: Support multiple scripts for digits and decimal symbols per locale
7079560: [Fmt-Da] Context dependent month names support in SimpleDateFormat
7171324: getAvailableLocales() of locale sensitive services should return the actual availability of locales
7151414: (cal) Support calendar type identification
7168528: LocaleServiceProvider needs to be aware of Locale extensions
7171372: (cal) locale's default Calendar should be created if unknown calendar is specified
Summary: JEP 127: Improve Locale Data Packaging and Adopt Unicode CLDR Data (part 1 w/o packaging changes. by Naoto Sato and Masayoshi Okutsu)

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -35,13 +35,14 @@
  * is protected by multiple US and International patents.
  *
  * This notice and attribution to Taligent may not be removed.
  * Taligent is a registered trademark of Taligent, Inc.
  */
-package java.text;
+package sun.util.locale.provider;
 
-import java.io.*;
+import java.io.BufferedInputStream;
+import java.io.IOException;
 import java.security.AccessController;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
 import java.util.MissingResourceException;
 import sun.text.CompactByteArray;

@@ -132,11 +133,11 @@
 
     //=========================================================================
     // deserialization
     //=========================================================================
 
-    public BreakDictionary(String dictionaryName)
+    BreakDictionary(String dictionaryName)
         throws IOException, MissingResourceException {
 
         readDictionaryFile(dictionaryName);
     }
 

@@ -145,10 +146,11 @@
 
         BufferedInputStream in;
         try {
             in = AccessController.doPrivileged(
                 new PrivilegedExceptionAction<BufferedInputStream>() {
+                    @Override
                     public BufferedInputStream run() throws Exception {
                         return new BufferedInputStream(getClass().getResourceAsStream("/sun/text/resources/" + dictionaryName));
                     }
                 }
             );

@@ -161,19 +163,19 @@
         if (in.read(buf) != 8) {
             throw new MissingResourceException("Wrong data length",
                                                dictionaryName, "");
         }
 
-        // check vesion
-        int version = BreakIterator.getInt(buf, 0);
+        // check version
+        int version = RuleBasedBreakIterator.getInt(buf, 0);
         if (version != supportedVersion) {
             throw new MissingResourceException("Dictionary version(" + version + ") is unsupported",
                                                            dictionaryName, "");
         }
 
         // get data size
-        int len = BreakIterator.getInt(buf, 4);
+        int len = RuleBasedBreakIterator.getInt(buf, 4);
         buf = new byte[len];
         if (in.read(buf) != len) {
             throw new MissingResourceException("Wrong data length",
                                                dictionaryName, "");
         }

@@ -184,74 +186,74 @@
         int l;
         int offset = 0;
 
         // read in the column map for BMP characteres (this is serialized in
         // its internal form: an index array followed by a data array)
-        l = BreakIterator.getInt(buf, offset);
+        l = RuleBasedBreakIterator.getInt(buf, offset);
         offset += 4;
         short[] temp = new short[l];
         for (int i = 0; i < l; i++, offset+=2) {
-            temp[i] = BreakIterator.getShort(buf, offset);
+            temp[i] = RuleBasedBreakIterator.getShort(buf, offset);
         }
-        l = BreakIterator.getInt(buf, offset);
+        l = RuleBasedBreakIterator.getInt(buf, offset);
         offset += 4;
         byte[] temp2 = new byte[l];
         for (int i = 0; i < l; i++, offset++) {
             temp2[i] = buf[offset];
         }
         columnMap = new CompactByteArray(temp, temp2);
 
         // read in numCols and numColGroups
-        numCols = BreakIterator.getInt(buf, offset);
+        numCols = RuleBasedBreakIterator.getInt(buf, offset);
         offset += 4;
-        numColGroups = BreakIterator.getInt(buf, offset);
+        numColGroups = RuleBasedBreakIterator.getInt(buf, offset);
         offset += 4;
 
         // read in the row-number index
-        l = BreakIterator.getInt(buf, offset);
+        l = RuleBasedBreakIterator.getInt(buf, offset);
         offset += 4;
         rowIndex = new short[l];
         for (int i = 0; i < l; i++, offset+=2) {
-            rowIndex[i] = BreakIterator.getShort(buf, offset);
+            rowIndex[i] = RuleBasedBreakIterator.getShort(buf, offset);
         }
 
         // load in the populated-cells bitmap: index first, then bitmap list
-        l = BreakIterator.getInt(buf, offset);
+        l = RuleBasedBreakIterator.getInt(buf, offset);
         offset += 4;
         rowIndexFlagsIndex = new short[l];
         for (int i = 0; i < l; i++, offset+=2) {
-            rowIndexFlagsIndex[i] = BreakIterator.getShort(buf, offset);
+            rowIndexFlagsIndex[i] = RuleBasedBreakIterator.getShort(buf, offset);
         }
-        l = BreakIterator.getInt(buf, offset);
+        l = RuleBasedBreakIterator.getInt(buf, offset);
         offset += 4;
         rowIndexFlags = new int[l];
         for (int i = 0; i < l; i++, offset+=4) {
-            rowIndexFlags[i] = BreakIterator.getInt(buf, offset);
+            rowIndexFlags[i] = RuleBasedBreakIterator.getInt(buf, offset);
         }
 
         // load in the row-shift index
-        l = BreakIterator.getInt(buf, offset);
+        l = RuleBasedBreakIterator.getInt(buf, offset);
         offset += 4;
         rowIndexShifts = new byte[l];
         for (int i = 0; i < l; i++, offset++) {
             rowIndexShifts[i] = buf[offset];
         }
 
         // load in the actual state table
-        l = BreakIterator.getInt(buf, offset);
+        l = RuleBasedBreakIterator.getInt(buf, offset);
         offset += 4;
         table = new short[l];
         for (int i = 0; i < l; i++, offset+=2) {
-            table[i] = BreakIterator.getShort(buf, offset);
+            table[i] = RuleBasedBreakIterator.getShort(buf, offset);
         }
 
         // finally, prepare the column map for supplementary characters
-        l = BreakIterator.getInt(buf, offset);
+        l = RuleBasedBreakIterator.getInt(buf, offset);
         offset += 4;
         int[] temp3 = new int[l];
         for (int i = 0; i < l; i++, offset+=4) {
-            temp3[i] = BreakIterator.getInt(buf, offset);
+            temp3[i] = RuleBasedBreakIterator.getInt(buf, offset);
         }
         supplementaryCharColumnMap = new SupplementaryCharacterData(temp3);
     }
 
     //=========================================================================

@@ -303,11 +305,11 @@
 
     /**
      * Given (logical) row and column numbers, returns true if the
      * cell in that position is populated
      */
-    private final boolean cellIsPopulated(int row, int col) {
+    private boolean cellIsPopulated(int row, int col) {
         // look up the entry in the bitmap index for the specified row.
         // If it's a negative number, it's the column number of the only
         // populated cell in the row
         if (rowIndexFlagsIndex[row] < 0) {
             return col == -rowIndexFlagsIndex[row];

@@ -330,11 +332,11 @@
      * populated.
      * @param row The PHYSICAL row number of the cell
      * @param col The PHYSICAL column number of the cell
      * @return The value stored in the cell
      */
-    private final short internalAt(int row, int col) {
+    private short internalAt(int row, int col) {
         // the table is a one-dimensional array, so this just does the math necessary
         // to treat it as a two-dimensional array (we don't just use a two-dimensional
         // array because two-dimensional arrays are inefficient in Java)
         return table[row * numCols + col];
     }