/** * 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))); } }
/** * 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))); } }
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; } }