1
2
3 package org.galagosearch.core.parse;
4
5 import java.io.IOException;
6 import org.galagosearch.core.types.DocumentData;
7 import org.galagosearch.tupleflow.InputClass;
8 import org.galagosearch.tupleflow.OutputClass;
9 import org.galagosearch.tupleflow.StandardStep;
10 import org.galagosearch.tupleflow.execution.Verified;
11 import org.galagosearch.tupleflow.types.XMLFragment;
12
13 /***
14 *
15 * @author trevor
16 */
17 @Verified
18 @InputClass(className = "org.galagosearch.core.types.DocumentData")
19 @OutputClass(className = "org.galagosearch.tupleflow.types.XMLFragment")
20 public class CollectionLengthCounter extends StandardStep<DocumentData, XMLFragment> {
21 long collectionLength = 0;
22 long documentCount = 0;
23
24 public void process(DocumentData data) {
25 collectionLength += data.textLength;
26 documentCount += 1;
27 }
28
29 @Override
30 public void close() throws IOException {
31 processor.process(new XMLFragment("collectionLength", Long.toString(collectionLength)));
32 processor.process(new XMLFragment("documentCount", Long.toString(documentCount)));
33 super.close();
34 }
35 }