public SimpleSynonymCatalog(final String name, final List<Synonym> synonyms) { this(name); for (final Synonym synonym : synonyms) { addSynonym(synonym); } }
private Element toElement(final SimpleSynonymCatalog synonymCatalog) { final Element elem = getDocument().createElement("simple-synonym-catalog"); elem.setAttribute("name", synonymCatalog.getName()); if (!Strings.isNullOrEmpty(synonymCatalog.getDescription())) { elem.setAttribute("description", synonymCatalog.getDescription()); } for (final Map.Entry<String, String> entry : synonymCatalog.getSynonymMap().entrySet()) { final Element synonym = _document.createElement("synonym"); appendElement(synonym, "masterterm", entry.getValue()); // No, it's not a bug. The map is structured synonym to masterterm for performance. appendElement(synonym, "value", entry.getKey()); elem.appendChild(synonym); } return elem; }
}); return new SimpleSynonymCatalog(getName(), synonyms, _caseSensitive).openConnection(configuration);
final SimpleSynonymCatalog synonymCatalog = new SimpleSynonymCatalog(name, synonymMapping); synonymCatalog.setDescription(catalogType.getDescription()); synonymCatalogList.add(synonymCatalog);
public SimpleSynonymCatalog loadIntoMemory(final DatastoreConnection datastoreConnection) { final Map<String, String> synonymMap = new HashMap<>(); final Column masterTermColumn = getMasterTermColumn(datastoreConnection); final Column[] columns = getSynonymColumns(datastoreConnection); try (DataSet dataSet = datastoreConnection.getDataContext().query().from(masterTermColumn.getTable().getName()) .select(masterTermColumn).select(columns).execute()) { while (dataSet.next()) { final Row row = dataSet.getRow(); final String masterTerm = getMasterTerm(row, masterTermColumn); final String[] synonyms = getSynonyms(row, columns); for (final String synonym : synonyms) { synonymMap.put(synonym, masterTerm); } } } return new SimpleSynonymCatalog(getName(), synonymMap); }
@Override public Replacement replaceInline(final String sentence) { final SimpleSynonymCatalog simpleSynonymCatalog = _synonymCatalog.loadIntoMemory(_datastoreConnection); return simpleSynonymCatalog.openConnection(null).replaceInline(sentence); }
@Override public Collection<Synonym> getSynonyms() { final SimpleSynonymCatalog simpleSynonymCatalog = _synonymCatalog.loadIntoMemory(_datastoreConnection); return simpleSynonymCatalog.openConnection(null).getSynonyms(); }
@Override public SynonymCatalogConnection 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 SimpleSynonymCatalog simpleSynonymCatalog = loadIntoMemory(datastoreConnection); // no need for the connection anymore datastoreConnection.close(); return simpleSynonymCatalog.openConnection(configuration); } return new DatastoreSynonymCatalogConnection(this, datastoreConnection); }
public SimpleSynonymCatalog(final String name, final Synonym... synonyms) { this(name); for (final Synonym synonym : synonyms) { addSynonym(synonym); } }