use of org.jkiss.dbeaver.tools.transfer.registry.DataTransferProcessorDescriptor in project dbeaver by dbeaver.
the class StreamProducerPageSettings method activatePage.
@Override
public void activatePage() {
// Initialize property editor
DataTransferProcessorDescriptor processor = getProducerProcessor();
DBPPropertyDescriptor[] properties = processor == null ? new DBPPropertyDescriptor[0] : processor.getProperties();
propertySource = new PropertySourceCustom(properties, getWizard().getSettings().getProcessorProperties());
propsEditor.loadProperties(propertySource);
// Init pipes
reloadPipes();
updatePageCompletion();
UIUtils.asyncExec(() -> UIUtils.packColumns(filesTable, true));
}
use of org.jkiss.dbeaver.tools.transfer.registry.DataTransferProcessorDescriptor in project dbeaver by dbeaver.
the class DataImportHandler method getProcessorByFile.
private DataTransferProcessorDescriptor getProcessorByFile(IFile file) {
String extension = file.getFileExtension();
if (CommonUtils.isEmpty(extension)) {
return null;
}
extension = extension.toLowerCase(Locale.ENGLISH);
DataTransferNodeDescriptor producerDesc = DataTransferRegistry.getInstance().getNodeById(StreamTransferProducer.NODE_ID);
if (producerDesc != null) {
for (DataTransferProcessorDescriptor processor : producerDesc.getProcessors()) {
DBPPropertyDescriptor extList = processor.getProperty("extension");
if (extList == null) {
continue;
}
String[] defExtensions = CommonUtils.split(CommonUtils.toString(extList.getDefaultValue()), ",");
if (ArrayUtils.contains(defExtensions, extension)) {
return processor;
}
}
}
return null;
}
use of org.jkiss.dbeaver.tools.transfer.registry.DataTransferProcessorDescriptor in project dbeaver by dbeaver.
the class DataTransferSettings method loadSettings.
public void loadSettings(DBRProgressMonitor monitor, Map<String, Object> config) {
this.setMaxJobCount(CommonUtils.toInt(config.get("maxJobCount"), DataTransferSettings.DEFAULT_THREADS_NUM));
this.setShowFinalMessage(CommonUtils.getBoolean(config.get("showFinalMessage"), this.isShowFinalMessage()));
DataTransferNodeDescriptor savedConsumer = null, savedProducer = null, processorNode = null;
{
// Restore consumer/producer from saved configuration
// Do this only if consumer/producer weren't set explicitly
{
String consumerId = CommonUtils.toString(config.get("consumer"));
if (!CommonUtils.isEmpty(consumerId)) {
DataTransferNodeDescriptor consumerNode = DataTransferRegistry.getInstance().getNodeById(consumerId);
// Check that this consumer is allowed
if (!CommonUtils.isEmpty(initObjects)) {
if (!DataTransferRegistry.getInstance().getAvailableConsumers(initObjects).contains(consumerNode)) {
consumerNode = null;
}
}
if (consumerNode != null) {
if (this.consumer == null) {
savedConsumer = consumerNode;
this.setConsumer(consumerNode);
} else {
savedConsumer = this.consumer;
}
if (consumerNode.hasProcessors()) {
processorNode = consumerNode;
}
}
}
}
{
String producerId = CommonUtils.toString(config.get("producer"));
if (!CommonUtils.isEmpty(producerId)) {
DataTransferNodeDescriptor producerNode = DataTransferRegistry.getInstance().getNodeById(producerId);
// Check that this producer is allowed
if (!CommonUtils.isEmpty(initObjects)) {
if (!DataTransferRegistry.getInstance().getAvailableProducers(initObjects).contains(producerNode)) {
producerNode = null;
}
}
if (producerNode != null) {
if (this.producer == null) {
savedProducer = producerNode;
this.setProducer(producerNode);
} else {
savedProducer = this.producer;
}
if (producerNode.hasProcessors()) {
processorNode = producerNode;
}
}
}
}
}
DataTransferProcessorDescriptor savedProcessor = null;
if (processorNode != null) {
String processorId = CommonUtils.toString(config.get("processor"));
if (!CommonUtils.isEmpty(processorId)) {
savedProcessor = processorNode.getProcessor(processorId);
if (savedProcessor == null) {
state.addError(new DBException("Processor '" + processorId + "' not found in '" + processorNode.getName() + "'"));
}
}
}
if (this.consumerOptional && savedConsumer != null) {
this.selectConsumer(savedConsumer, savedProcessor, false);
}
if (this.producerOptional && savedProducer != null) {
this.selectProducer(savedProducer, savedProcessor, false);
}
if (processorNode == producer) {
producerProcessor = true;
} else if (processorNode == consumer) {
producerProcessor = false;
}
// Load processor properties
Map<String, Object> processorsSection = JSONUtils.getObject(config, "processors");
{
for (Map.Entry<String, Object> procIter : processorsSection.entrySet()) {
Map<String, Object> procSection = (Map<String, Object>) procIter.getValue();
String processorId = procIter.getKey();
String nodeId = CommonUtils.toString(procSection.get("@node"));
if (CommonUtils.isEmpty(nodeId)) {
// Legacy code support
int divPos = processorId.indexOf(':');
if (divPos != -1) {
nodeId = processorId.substring(0, divPos);
processorId = processorId.substring(divPos + 1);
}
}
String propNamesId = CommonUtils.toString(procSection.get("@propNames"));
DataTransferNodeDescriptor node = DataTransferRegistry.getInstance().getNodeById(nodeId);
if (node != null) {
Map<String, Object> props = new HashMap<>();
DataTransferProcessorDescriptor nodeProcessor = node.getProcessor(processorId);
if (nodeProcessor != null) {
for (String prop : CommonUtils.splitString(propNamesId, ',')) {
props.put(prop, procSection.get(prop));
}
processorPropsHistory.put(nodeProcessor, props);
}
}
}
}
// Load nodes' settings (key is impl class simple name, value is descriptor)
Map<String, DataTransferNodeDescriptor> nodeNames = new LinkedHashMap<>();
if (producer != null) {
nodeNames.put(producer.getNodeClass().getSimpleName(), producer);
}
if (consumer != null) {
nodeNames.put(consumer.getNodeClass().getSimpleName(), consumer);
}
MonitorRunnableContext runnableContext = new MonitorRunnableContext(monitor);
for (Map.Entry<String, DataTransferNodeDescriptor> node : nodeNames.entrySet()) {
Map<String, Object> nodeSection = JSONUtils.getObject(config, node.getKey());
IDataTransferSettings nodeSettings = this.getNodeSettings(node.getValue());
if (nodeSettings != null) {
nodeSettings.loadSettings(runnableContext, this, nodeSection);
}
}
// Initialize pipes with loaded settings
for (int i = 0; i < dataPipes.size(); i++) {
DataTransferPipe pipe = dataPipes.get(i);
if (pipe.getProducer() != null && pipe.getConsumer() != null) {
try {
pipe.initPipe(this, i, dataPipes.size());
} catch (Exception e) {
state.addError(e);
}
}
}
}
use of org.jkiss.dbeaver.tools.transfer.registry.DataTransferProcessorDescriptor in project dbeaver by dbeaver.
the class StreamConsumerPageSettings method activatePage.
@Override
public void activatePage() {
final StreamConsumerSettings settings = getWizard().getPageSettings(this, StreamConsumerSettings.class);
DataTransferProcessorDescriptor processor = getWizard().getSettings().getProcessor();
propertySource = new PropertySourceCustom(processor.getProperties(), getWizard().getSettings().getProcessorProperties());
propsEditor.loadProperties(propertySource);
switch(settings.getLobExtractType()) {
case SKIP:
lobExtractType.select(EXTRACT_LOB_SKIP);
break;
case FILES:
lobExtractType.select(EXTRACT_LOB_FILES);
break;
case INLINE:
lobExtractType.select(EXTRACT_LOB_INLINE);
break;
}
switch(settings.getLobEncoding()) {
case BASE64:
lobEncodingCombo.select(LOB_ENCODING_BASE64);
break;
case HEX:
lobEncodingCombo.select(LOB_ENCODING_HEX);
break;
case BINARY:
lobEncodingCombo.select(LOB_ENCODING_BINARY);
break;
case NATIVE:
lobEncodingCombo.select(LOB_ENCODING_NATIVE);
break;
}
updatePageCompletion();
}
use of org.jkiss.dbeaver.tools.transfer.registry.DataTransferProcessorDescriptor in project dbeaver by dbeaver.
the class DataTransferPagePipes method loadProducers.
private void loadProducers() {
DataTransferSettings settings = getWizard().getSettings();
Collection<DBSObject> objects = settings.getSourceObjects();
List<TransferTarget> transferTargets = new ArrayList<>();
for (DataTransferNodeDescriptor producer : DataTransferRegistry.getInstance().getAvailableProducers(objects)) {
Collection<DataTransferProcessorDescriptor> processors = producer.getAvailableProcessors(objects);
if (CommonUtils.isEmpty(processors)) {
transferTargets.add(new TransferTarget(producer, null));
} else {
for (DataTransferProcessorDescriptor processor : processors) {
transferTargets.add(new TransferTarget(producer, processor));
}
}
}
nodesTable.setInput(transferTargets);
}
Aggregations