private Element toElement(final TextFileDictionary dictionary) { final Element elem = getDocument().createElement("text-file-dictionary"); elem.setAttribute("name", dictionary.getName()); if (!Strings.isNullOrEmpty(dictionary.getDescription())) { elem.setAttribute("description", dictionary.getDescription()); } appendElement(elem, "filename", dictionary.getFilename()); appendElement(elem, "encoding", dictionary.getEncoding()); appendElement(elem, "case-sensitive", dictionary.isCaseSensitive()); return elem; }
@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); }
_nameTextField.setText(dictionary.getName()); _resourceSelector.setResourcePath(dictionary.getFilename()); _encodingComboBox.setSelectedItem(dictionary.getEncoding()); _caseSensitiveCheckBox.setSelected(dictionary.isCaseSensitive());