/**
         * Initializes an {@link MappingFileProvider} with {@code availableDataFiles}.
         *
         * @param availableDataFiles  a map from country calling codes to sets of languages in which data
         *     files are available for the specific country calling code. The map is sorted in ascending
         *     order of the country calling codes as integers.
         */
        public void readFileConfigs(SortedMap <Integer, Set <String> > availableDataFiles)
        {
            numOfEntries        = availableDataFiles.size();
            countryCallingCodes = new int[numOfEntries];
            availableLanguages  = new ArrayList <Set <String> >(numOfEntries);
            int index = 0;

            foreach (int countryCallingCode in availableDataFiles.keySet())
            {
                countryCallingCodes[index++] = countryCallingCode;
                availableLanguages.add(new HashSet <String>(availableDataFiles.get(countryCallingCode)));
            }
        }
Пример #2
0
        /**
         * Creates the description pool from the provided set of string descriptions and area code map.
         */
        private void createDescriptionPool(SortedSet <String> descriptionsSet,
                                           SortedMap <Integer, String> areaCodeMap)
        {
            descIndexSizeInBytes = getOptimalNumberOfBytesForValue(descriptionsSet.size() - 1);
            descriptionIndexes   = ByteBuffer.allocate(numOfEntries * descIndexSizeInBytes);
            descriptionPool      = new String[descriptionsSet.size()];
            descriptionsSet.toArray(descriptionPool);

            // Map the phone number prefixes to the descriptions.
            int index = 0;

            for (int i = 0; i < numOfEntries; i++)
            {
                int    prefix      = readWordFromBuffer(phoneNumberPrefixes, prefixSizeInBytes, i);
                String description = areaCodeMap.get(prefix);
                int    positionInDescriptionPool = Arrays.binarySearch(descriptionPool, description);
                storeWordInBuffer(descriptionIndexes, descIndexSizeInBytes, index, positionInDescriptionPool);
                ++index;
            }
        }
        static void SortedMapTest()
        {
            SortedMap <string, int> table = new SortedMap <string, int>();

            table.add("Jane", 35);
            table.add("Joe", 14);
            table.add("Jack", 71);
            table.add("Jill", 64);
            table.add("Abe", 33);
            table.add("Beth", 21);
            table.add("Chuck", 12);
            table.add("Dot", 38);
            table.add("Mike", 75);
            table.add("Nick", 58);
            table.add("Otis", 45);

            table.print();

            Console.WriteLine("\nSize: " + table.size());
            Console.WriteLine(table.get("wow"));
            Console.WriteLine(table.get("Jane"));
            Console.WriteLine(table.get("Joe"));
            Console.WriteLine(table.get("Jack"));
            Console.WriteLine(table.get("Jill"));

            table.remove("Jane");
            table.remove("Joe");

            Console.WriteLine("\nSize: " + table.size());

            Console.WriteLine(table.get("Jane"));
            Console.WriteLine(table.get("Joe"));

            table.add("Otis", 45);
            table.add("Otis", 45);
            table.add("Otis", 45);

            Console.WriteLine("\nSize: " + table.size());
            table.add("Jane", 35);
            table.add("Joe", 14);

            Console.WriteLine("\nSize: " + table.size());
        }
 /**
    * Initializes an {@link MappingFileProvider} with {@code availableDataFiles}.
    *
    * @param availableDataFiles  a map from country calling codes to sets of languages in which data
    *     files are available for the specific country calling code. The map is sorted in ascending
    *     order of the country calling codes as integers.
    */
 public void readFileConfigs(SortedMap<Integer, Set<String>> availableDataFiles)
 {
     numOfEntries = availableDataFiles.size();
     countryCallingCodes = new int[numOfEntries];
     availableLanguages = new ArrayList<Set<String>>(numOfEntries);
     int index = 0;
     foreach (int countryCallingCode in availableDataFiles.keySet()) {
       countryCallingCodes[index++] = countryCallingCode;
       availableLanguages.add(new HashSet<String>(availableDataFiles.get(countryCallingCode)));
     }
 }
Пример #5
0
 public override Terms terms(string field)
 {
     return(fields.get(field));
 }
        /**
           * Creates the description pool from the provided set of string descriptions and area code map.
           */
        private void createDescriptionPool(SortedSet<String> descriptionsSet,
      SortedMap<Integer, String> areaCodeMap)
        {
            descIndexSizeInBytes = getOptimalNumberOfBytesForValue(descriptionsSet.size() - 1);
            descriptionIndexes = ByteBuffer.allocate(numOfEntries * descIndexSizeInBytes);
            descriptionPool = new String[descriptionsSet.size()];
            descriptionsSet.toArray(descriptionPool);

            // Map the phone number prefixes to the descriptions.
            int index = 0;
            for (int i = 0; i < numOfEntries; i++) {
              int prefix = readWordFromBuffer(phoneNumberPrefixes, prefixSizeInBytes, i);
              String description = areaCodeMap.get(prefix);
              int positionInDescriptionPool = Arrays.binarySearch(descriptionPool, description);
              storeWordInBuffer(descriptionIndexes, descIndexSizeInBytes, index, positionInDescriptionPool);
              ++index;
            }
        }