//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.testing; import java.io.IOException; import java.util.Random; import org.apache.uima.UimaContext; import org.apache.uima.collection.CollectionException; import org.apache.uima.fit.component.JCasCollectionReader_ImplBase; import org.apache.uima.jcas.JCas; import org.apache.uima.resource.ResourceInitializationException; import org.apache.uima.util.Progress; /** * Dummy collection reader that produces produces endless number of documents, with 500ms delay between. * * The documents are have an integer number within them. * * The purpose of this is to mimick the 'endless' collection readers services in baleen, rather * than the finite process N documents in most UIMA implementations. * * */ public class RandomStringCollectionReader extends JCasCollectionReader_ImplBase { private static final int DELAY = 500; private Random random; @Override public void initialize(UimaContext context) throws ResourceInitializationException { random = new Random(); } @Override public void getNext(JCas jCas) throws IOException, CollectionException { int i = random.nextInt(); jCas.setDocumentText("The next value is "+i+"."); } @Override public Progress[] getProgress() { return new Progress[] { }; } @Override public boolean hasNext() throws IOException, CollectionException { try { Thread.sleep(DELAY); } catch(InterruptedException e) { // Do nothing } return true; } }