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); }
@Override public String toString() { return "TextFileDictionary[name=" + getName() + ", filename=" + _filename + ", encoding=" + _encoding + "]"; }
final TextFileDictionary dict = new TextFileDictionary(name, filename, encoding, caseSensitive); dict.setDescription(tfdt.getDescription()); dictionaryList.add(dict);
private static String getDescription(final Dictionary dictionary) { if (dictionary.getDescription() != null) { return dictionary.getDescription(); } if (dictionary instanceof TextFileDictionary) { return ((TextFileDictionary) dictionary).getFilename(); } else if (dictionary instanceof DatastoreDictionary) { final DatastoreDictionary datastoreDictionary = (DatastoreDictionary) dictionary; return datastoreDictionary.getDatastoreName() + ": " + datastoreDictionary.getQualifiedColumnName(); } else if (dictionary instanceof SimpleDictionary) { final SimpleDictionary simpleDictionary = (SimpleDictionary) dictionary; final Collection<String> values = simpleDictionary.getValueSet(); final StringBuilder sb = new StringBuilder(); for (final String value : values) { if (sb.length() > 0) { sb.append(","); } sb.append(value); if (sb.length() > 20) { break; } } return sb.toString(); } return ""; }
final TextFileDictionary dict = new TextFileDictionary(name1, path, encoding, caseSensitive);
_nameTextField.setText(dictionary.getName()); _resourceSelector.setResourcePath(dictionary.getFilename()); _encodingComboBox.setSelectedItem(dictionary.getEncoding()); _caseSensitiveCheckBox.setSelected(dictionary.isCaseSensitive());