public void receiveJob()

in taverna-workflowmodel-extensions/src/main/java/org/apache/taverna/workflowmodel/processor/dispatch/layers/IntermediateProvenance.java [318:397]


	public void receiveJob(DispatchJobEvent jobEvent) {
			try {
			// FIXME do we need this ProcessProvenanceItem?
			ProcessProvenanceItem provenanceItem;
			String[] split = jobEvent.getOwningProcess().split(":");
			provenanceItem = new ProcessProvenanceItem();
			String parentDataflowId = workflowItem.getParentId();
			provenanceItem.setWorkflowId(parentDataflowId);
			provenanceItem.setFacadeID(split[0]);
			provenanceItem.setDataflowID(split[1]);
			provenanceItem.setProcessId(jobEvent.getOwningProcess());
			provenanceItem.setIdentifier(uuid());
			provenanceItem.setParentId(workflowItem.getIdentifier());
			ProcessorProvenanceItem processorProvItem;
			processorProvItem = new ProcessorProvenanceItem();
			processorProvItem.setWorkflowId(parentDataflowId);
			processorProvItem.setProcessId(jobEvent
					.getOwningProcess());
			processorProvItem.setIdentifier(uuid());
			processorProvItem.setParentId(provenanceItem.getIdentifier());
			provenanceItem.setProcessId(jobEvent.getOwningProcess());
			getReporter().addProvenanceItem(provenanceItem);
			getReporter().addProvenanceItem(processorProvItem);
	
			IterationProvenanceItem iterationProvItem = null;
			iterationProvItem = new IterationProvenanceItem();
			iterationProvItem.setWorkflowId(parentDataflowId);
			iterationProvItem.setIteration(jobEvent.getIndex());
			iterationProvItem.setIdentifier(uuid());
			
			ReferenceService referenceService = jobEvent.getContext()
					.getReferenceService();
	
			InputDataProvenanceItem inputDataItem = new InputDataProvenanceItem();
			inputDataItem.setDataMap(jobEvent.getData());
			inputDataItem.setReferenceService(referenceService);
			inputDataItem.setIdentifier(uuid());
			inputDataItem.setParentId(iterationProvItem.getIdentifier());
			inputDataItem.setProcessId(jobEvent.getOwningProcess());
	
			List<Object> inputIndexOwnerList = new ArrayList<>();
			inputIndexOwnerList.add(jobEvent.getIndex());
			inputIndexOwnerList.add(jobEvent.getOwningProcess());
			inputDataProvenanceItemMap.put(inputDataItem, inputIndexOwnerList);
	
			// inputDataProvenanceItemList.add(inputDataItem);
			iterationProvItem.setInputDataItem(inputDataItem);
			iterationProvItem.setIteration(jobEvent.getIndex());
			iterationProvItem.setProcessId(jobEvent.getOwningProcess());
	
			for (Activity<?> activity : jobEvent.getActivities())
				if (activity instanceof AsynchronousActivity) {
					ActivityProvenanceItem activityProvItem = new ActivityProvenanceItem();
					activityProvItem.setWorkflowId(parentDataflowId);
					activityProvItem.setIdentifier(uuid());
					iterationProvItem.setParentId(activityProvItem.getIdentifier());
					// getConnector().addProvenanceItem(iterationProvItem);
					activityProvItem.setParentId(processorProvItem.getIdentifier());
					// processorProvItem.setActivityProvenanceItem(activityProvItem);
					activityProvItem.setProcessId(jobEvent.getOwningProcess());
					List<Object> activityIndexOwnerList = new ArrayList<>();
					activityIndexOwnerList.add(jobEvent.getOwningProcess());
					activityIndexOwnerList.add(jobEvent.getIndex());
					activityProvenanceItemMap.put(activityProvItem,
							inputIndexOwnerList);
					// activityProvenanceItemList.add(activityProvItem);
					// activityProvItem.setIterationProvenanceItem(iterationProvItem);
					getReporter().addProvenanceItem(activityProvItem);
					break;
				}
			getIndexesByProcess(jobEvent.getOwningProcess()).put(
					indexStr(jobEvent.getIndex()), iterationProvItem);
			iterationProvItem.setEnactmentStarted(new Timestamp(currentTimeMillis()));
			getReporter().addProvenanceItem(iterationProvItem);
		} catch (RuntimeException ex) {
			logger.error("Could not store provenance for " + jobEvent, ex);
		}
		
		super.receiveJob(jobEvent);
	}