@Override public RowAnnotationFactory createRowAnnotationFactory() { // TODO: Create a persistent RowAnnotationFactory return new InMemoryRowAnnotationFactory2(); } }
@Override public ReferentialIntegrityAnalyzerResult reduce( final Collection<? extends ReferentialIntegrityAnalyzerResult> partialResults) { if (partialResults.isEmpty()) { return null; } final RowAnnotation reducerAnnotation = new RowAnnotationImpl(); final InMemoryRowAnnotationFactory2 reducerAnnotationFactory = new InMemoryRowAnnotationFactory2(); InputColumn<?>[] highlightedColumns = null; for (final ReferentialIntegrityAnalyzerResult partialResult : partialResults) { final List<InputRow> partialRows = partialResult.getSampleRows(); for (final InputRow partialRow : partialRows) { reducerAnnotationFactory.annotate(partialRow, reducerAnnotation); } highlightedColumns = partialResult.getHighlightedColumns(); } return new ReferentialIntegrityAnalyzerResult(reducerAnnotation, reducerAnnotationFactory, highlightedColumns); }
@Override public void transferAnnotations(final RowAnnotation from, final RowAnnotation to) { super.transferAnnotations(from, to); final Collection<InputRow> fromCollection = _storage.get(from); if (fromCollection == null || fromCollection.isEmpty()) { return; } final Collection<InputRow> toCollection = getInputRowCollection(fromCollection.size(), to); addInputRowsToCollection(toCollection, fromCollection); _storage.remove(from); }
@Override public void annotate(final InputRow row, final RowAnnotation annotation) { super.annotate(row, annotation); final Collection<InputRow> rowCollection = getInputRowCollection(10, annotation); if (rowCollection != null) { synchronized (rowCollection) { if (rowCollection.size() >= _maxSampleRecords) { return; } rowCollection.add(row); } } }
public static RowAnnotationFactory getInMemoryFactory(final int maxSampleSets, final int maxSampledRecords) { return new InMemoryRowAnnotationFactory2(maxSampleSets, maxSampledRecords); } }