use of org.jkiss.dbeaver.tools.transfer.database.DatabaseMappingContainer in project dbeaver by serge-rider.
the class StreamProducerPageSettings method deactivatePage.
@Override
public void deactivatePage() {
// Save settings.
// It is a producer so it must prepare data for consumers
// Save processor properties
propsEditor.saveEditorValues();
Map<String, Object> processorProperties = propertySource.getPropertiesWithDefaults();
DataTransferSettings dtSettings = getWizard().getSettings();
dtSettings.setProcessorProperties(processorProperties);
final StreamProducerSettings producerSettings = getWizard().getPageSettings(this, StreamProducerSettings.class);
if (producerSettings != null) {
producerSettings.setProcessorProperties(processorProperties);
}
// Update column mappings for database consumers
IDataTransferSettings consumerSettings = getWizard().getSettings().getNodeSettings(getWizard().getSettings().getConsumer());
try {
getWizard().getRunnableContext().run(true, true, monitor -> {
for (DataTransferPipe pipe : dtSettings.getDataPipes()) {
if (pipe.getProducer() instanceof StreamTransferProducer) {
StreamTransferProducer producer = (StreamTransferProducer) pipe.getProducer();
producerSettings.updateProducerSettingsFromStream(monitor, producer, dtSettings);
if (consumerSettings instanceof DatabaseConsumerSettings) {
DatabaseMappingContainer mapping = ((DatabaseConsumerSettings) consumerSettings).getDataMapping(producer.getDatabaseObject());
if (mapping != null) {
mapping.getAttributeMappings(monitor);
}
}
}
}
});
} catch (InvocationTargetException e) {
DBWorkbench.getPlatformUI().showError("Error updating stream settings", "Error updating settings", e.getTargetException());
} catch (InterruptedException e) {
// ignore
}
super.deactivatePage();
}
Aggregations