//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.testing;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
import org.apache.uima.fit.descriptor.ExternalResource;
import org.apache.uima.fit.util.JCasUtil;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.tcas.Annotation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import uk.gov.dstl.baleen.core.history.BaleenHistory;
import uk.gov.dstl.baleen.core.history.HistoryEvents;
import uk.gov.dstl.baleen.core.history.Recordable;
import uk.gov.dstl.baleen.core.pipelines.PipelineBuilder;
/**
* Dummy consumer, that logs the entity count per document
*
*
*/
public class DummyConsumer extends JCasAnnotator_ImplBase {
private static final Logger LOGGER = LoggerFactory.getLogger(DummyConsumer.class);
public static class FakeRecordable extends Annotation implements Recordable {
public FakeRecordable(JCas jCas) {
super(jCas);
}
@Override
public long getInternalId() {
return 1;
}
}
@ExternalResource(key=PipelineBuilder.BALEEN_HISTORY)
private BaleenHistory history;
@Override
public void process(JCas aJCas) throws AnalysisEngineProcessException {
LOGGER.info("Document contains {} entities", JCasUtil.selectAll(aJCas).size());
FakeRecordable fakeRecordable = new FakeRecordable(aJCas);
history.getHistory("fake").add(HistoryEvents.createAdded(fakeRecordable, DummyAnnotator1.class.getName()));
}
}