private Element toElement(final DatastoreSynonymCatalog sc) { final Element elem = getDocument().createElement("datastore-synonym-catalog"); elem.setAttribute("name", sc.getName()); if (!Strings.isNullOrEmpty(sc.getDescription())) { elem.setAttribute("description", sc.getDescription()); } appendElement(elem, "datastore-name", sc.getDatastoreName()); appendElement(elem, "master-term-column-path", sc.getMasterTermColumnPath()); final String[] synonymColumnPaths = sc.getSynonymColumnPaths(); for (final String path : synonymColumnPaths) { appendElement(elem, "synonym-column-path", path); } appendElement(elem, "load-into-memory", sc.isLoadIntoMemory()); return elem; }
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); }
private static String getDescription(final SynonymCatalog synonymCatalog) { if (synonymCatalog.getDescription() != null) { return synonymCatalog.getDescription(); } if (synonymCatalog instanceof TextFileSynonymCatalog) { return ((TextFileSynonymCatalog) synonymCatalog).getFilename(); } else if (synonymCatalog instanceof DatastoreSynonymCatalog) { final DatastoreSynonymCatalog datastoreSynonymCatalog = (DatastoreSynonymCatalog) synonymCatalog; return datastoreSynonymCatalog.getDatastoreName() + ": " + datastoreSynonymCatalog .getMasterTermColumnPath(); } return ""; }
final String datastoreName = synonymCatalog.getDatastoreName(); _nameTextField.setText(synonymCatalog.getName()); _datastoreComboBox.setSelectedItem(datastoreName); final SchemaNavigator sn = datastoreConnection.getSchemaNavigator(); final Column masterTermColumn = sn.convertToColumn(synonymCatalog.getMasterTermColumnPath()); _masterTermColumnComboBox.setSelectedItem(masterTermColumn); final String[] synonymColumnPaths = synonymCatalog.getSynonymColumnPaths(); final Column[] synonymColumns = sn.convertToColumns(synonymColumnPaths); _synonymColumnsPanel.setColumns(Arrays.asList(synonymColumns));
if (synonymCatalog instanceof DatastoreSynonymCatalog) { datastores.add(configuration.getDatastoreCatalog() .getDatastore(((DatastoreSynonymCatalog) synonymCatalog).getDatastoreName()));
datastoreSynonymCatalogType.getSynonymColumnPath().toArray(new String[0]); final DatastoreSynonymCatalog sc = new DatastoreSynonymCatalog(name, dataStoreName, masterTermColumnPath, synonymColumnPaths, loadIntoMemory); sc.setDescription(datastoreSynonymCatalogType.getDescription()); synonymCatalogList.add(sc);
@Override public String getMasterTerm(final String term) { final DataContext dataContext = _datastoreConnection.getDataContext(); final Column masterTermColumn = _synonymCatalog.getMasterTermColumn(_datastoreConnection); final Column[] columns = _synonymCatalog.getSynonymColumns(_datastoreConnection); SatisfiedWhereBuilder<?> queryBuilder = dataContext.query().from(masterTermColumn.getTable()).select(masterTermColumn).where(columns[0]) .eq(term); for (int i = 1; i < columns.length; i++) { final Column column = columns[i]; queryBuilder = queryBuilder.or(column).eq(term); } queryBuilder.maxRows(1); try (DataSet dataSet = queryBuilder.execute()) { while (dataSet.next()) { final Object value = dataSet.getRow().getValue(0); if (value != null) { return value.toString(); } } } return null; }
new DatastoreSynonymCatalog(name1, nameOfDatastore, selectedItem.getQualifiedLabel(), synonymColumnNames);