public DatasourceAdapter dropAdapterIfExists(DatasourceAdapter adapter) { synchronized (adapters) { Map<String, DatasourceAdapter> adaptersInDataverse = adapters.get(adapter.getAdapterIdentifier().getNamespace()); if (adaptersInDataverse != null) { return adaptersInDataverse.remove(adapter.getAdapterIdentifier().getName()); } return null; } }
public DatasourceAdapter addAdapterIfNotExists(DatasourceAdapter adapter) { synchronized (adapters) { Map<String, DatasourceAdapter> adaptersInDataverse = adapters.get(adapter.getAdapterIdentifier().getNamespace()); if (adaptersInDataverse == null) { adaptersInDataverse = new HashMap<>(); adapters.put(adapter.getAdapterIdentifier().getNamespace(), adaptersInDataverse); } DatasourceAdapter adapterObject = adaptersInDataverse.get(adapter.getAdapterIdentifier().getName()); if (adapterObject == null) { return adaptersInDataverse.put(adapter.getAdapterIdentifier().getName(), adapter); } return null; } }
@Override public void addAdapter(TxnId txnId, DatasourceAdapter adapter) throws AlgebricksException, RemoteException { try { // Insert into the 'Adapter' dataset. DatasourceAdapterTupleTranslator tupleReaderWriter = tupleTranslatorProvider.getAdapterTupleTranslator(true); ITupleReference adapterTuple = tupleReaderWriter.getTupleFromMetadataEntity(adapter); insertTupleIntoIndex(txnId, MetadataPrimaryIndexes.DATASOURCE_ADAPTER_DATASET, adapterTuple); } catch (HyracksDataException e) { if (e.getComponent().equals(ErrorCode.HYRACKS) && e.getErrorCode() == ErrorCode.DUPLICATE_KEY) { throw new AlgebricksException("A adapter with this name " + adapter.getAdapterIdentifier().getName() + " already exists in dataverse '" + adapter.getAdapterIdentifier().getNamespace() + "'.", e); } else { throw new AlgebricksException(e); } } }
for (DatasourceAdapter adapter : adapters) { if (adapter.getAdapterIdentifier().getName().startsWith(libraryName + "#")) { MetadataManager.INSTANCE.dropAdapter(mdTxnCtx, dataverse, adapter.getAdapterIdentifier().getName());
dropAdapter(txnId, dataverseName, adapter.getAdapterIdentifier().getName());
aString.setValue(adapter.getAdapterIdentifier().getNamespace()); stringSerde.serialize(aString, tupleBuilder.getDataOutput()); tupleBuilder.addFieldEndOffset(); aString.setValue(adapter.getAdapterIdentifier().getName()); stringSerde.serialize(aString, tupleBuilder.getDataOutput()); tupleBuilder.addFieldEndOffset(); aString.setValue(adapter.getAdapterIdentifier().getNamespace()); stringSerde.serialize(aString, fieldValue.getDataOutput()); recordBuilder.addField(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_DATAVERSENAME_FIELD_INDEX, fieldValue); aString.setValue(adapter.getAdapterIdentifier().getName()); stringSerde.serialize(aString, fieldValue.getDataOutput()); recordBuilder.addField(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_NAME_FIELD_INDEX, fieldValue);