private String processDataBindings( DataProvenanceItem provenanceItem, ProvenanceProcessor provenanceProcessor) { // TODO: Cache known provenaneItems and avoid registering again String dataBindingId = UUID.randomUUID().toString(); boolean isInput = provenanceItem instanceof InputDataProvenanceItem; for (Entry<String, T2Reference> entry : provenanceItem.getDataMap().entrySet()) { DataBinding dataBinding = new DataBinding(); dataBinding.setDataBindingId(dataBindingId); Port port = findPort(provenanceProcessor, entry.getKey(), isInput); // findPort if (port == null) { logger.warn("Could not find port for " + entry.getKey()); continue; } dataBinding.setPort(port); dataBinding.setT2Reference(entry.getValue().toUri().toASCIIString()); dataBinding.setWorkflowRunId(workflowRunId); try { getPw().addDataBinding(dataBinding); } catch (SQLException e) { logger.warn("Could not register data binding for " + port, e); } } return dataBindingId; }