/** * Imports the datastore, components and configuration of a * {@link AnalysisJob} into this builder. * * @param job */ public void importJob(final AnalysisJob job) { final AnalysisJobBuilderImportHelper helper = new AnalysisJobBuilderImportHelper(this); helper.importJob(job); }
private Object findImportedInputColumns(final Object originalInputColumnValue, final Map<ComponentJob, ComponentBuilder> componentBuilders, final SourceColumnFinder sourceColumnFinder) { if (originalInputColumnValue == null) { return null; } if (originalInputColumnValue instanceof InputColumn) { return findImportedInputColumn((InputColumn<?>) originalInputColumnValue, componentBuilders, sourceColumnFinder); } if (originalInputColumnValue.getClass().isArray()) { final int length = Array.getLength(originalInputColumnValue); final InputColumn<?>[] value = new InputColumn[length]; for (int i = 0; i < value.length; i++) { final InputColumn<?> element = (InputColumn<?>) Array.get(originalInputColumnValue, i); value[i] = findImportedInputColumn(element, componentBuilders, sourceColumnFinder); } return value; } throw new UnsupportedOperationException("Unknown input column value type: " + originalInputColumnValue); }
addComponentBuilders(job.getFilterJobs(), componentBuilders); addComponentBuilders(job.getTransformerJobs(), componentBuilders); addComponentBuilders(job.getAnalyzerJobs(), componentBuilders); final ComponentRequirement originalRequirement = componentJob.getComponentRequirement(); final ComponentRequirement componentRequirement = findImportedRequirement(originalRequirement, componentBuilders); builder.setComponentRequirement(componentRequirement); componentJob.getConfiguration().getProperty(inputColumnProperty); final Object newInputColumnValue = findImportedInputColumns(originalInputColumnValue, componentBuilders, sourceColumnFinder); builder.setConfiguredProperty(inputColumnProperty, newInputColumnValue); new AnalysisJobBuilderImportHelper(outputDataStreamJobBuilder); helper.importJob(outputDataStreamJob.getJob());
private ComponentRequirement findImportedRequirement(final ComponentRequirement originalRequirement, final Map<ComponentJob, ComponentBuilder> componentBuilders) { if (originalRequirement == null) { return null; } if (originalRequirement instanceof AnyComponentRequirement) { return AnyComponentRequirement.get(); } if (originalRequirement instanceof SimpleComponentRequirement) { final FilterOutcome originalFilterOutcome = ((SimpleComponentRequirement) originalRequirement).getOutcome(); final FilterOutcome newOutcome = findFilterOutcome(originalFilterOutcome, componentBuilders); return new SimpleComponentRequirement(newOutcome); } if (originalRequirement instanceof CompoundComponentRequirement) { final Set<FilterOutcome> originalOutcomes = ((CompoundComponentRequirement) originalRequirement).getOutcomes(); final Collection<FilterOutcome> newOutcomes = new HashSet<>(); for (final FilterOutcome originalOutcome : originalOutcomes) { final FilterOutcome newOutcome = findFilterOutcome(originalOutcome, componentBuilders); newOutcomes.add(newOutcome); } return new CompoundComponentRequirement(newOutcomes); } throw new UnsupportedOperationException("Unsupported requirement type: " + originalRequirement); }