@Override public Iterator<String> getLengthSortedValues() { return _dictionary.loadIntoMemory(_datastoreConnection).openConnection(null).getLengthSortedValues(); }
@Override public Iterator<String> getAllValues() { return _dictionary.loadIntoMemory(_datastoreConnection).openConnection(null).getAllValues(); }
@Override public DictionaryConnection openConnection(final DataCleanerConfiguration configuration) { final ResourceConverter rc = new ResourceConverter(configuration); final Resource resource = rc.fromString(Resource.class, _filename); final Set<String> values = resource.read(in -> { final Set<String> values1 = new HashSet<>(); final BufferedReader reader = FileHelper.getBufferedReader(in, getEncoding()); try { String line = reader.readLine(); while (line != null) { if (!_caseSensitive) { line = line.toLowerCase(); } values1.add(line); line = reader.readLine(); } } catch (final IOException e) { logger.error("Failed to read line from resource: {}", resource, e); } finally { FileHelper.safeClose(reader); } return values1; }); final SimpleDictionary simpleDictionary = new SimpleDictionary(getName(), values, _caseSensitive); return simpleDictionary.openConnection(configuration); }
@Override public DictionaryConnection openConnection(final DataCleanerConfiguration configuration) { final Datastore datastore = configuration.getDatastoreCatalog().getDatastore(_datastoreName); if (datastore == null) { throw new NoSuchDatastoreException(_datastoreName); } final DatastoreConnection datastoreConnection = datastore.openConnection(); if (_loadIntoMemory) { final SimpleDictionary simpleDictionary = loadIntoMemory(datastoreConnection); // no need for the connection anymore datastoreConnection.close(); return simpleDictionary.openConnection(configuration); } return new DatastoreDictionaryConnection(this, datastoreConnection); }