package module7;
import gate.*;
import gate.creole.*;
import gate.creole.metadata.CreoleResource;
@CreoleResource(name = "Corpus statistics")
public class CorpusStats extends AbstractLanguageAnalyser implements ControllerAwarePR {
private int totalTokens;
public void execute() throws ExecutionException {
int tokens = document.getAnnotations().get("Token").size();
document.getFeatures().put("token_count", tokens);
totalTokens += tokens;
}
public void controllerExecutionStarted(Controller c) {
System.out.println("Executing " + this.getName() + " in controller " +
c.getName());
totalTokens = 0;
}
public void controllerExecutionFinished(Controller c) {
if(c instanceof CorpusController) {
FeatureMap corpusFeatures = ((CorpusController)c).getCorpus().getFeatures();
corpusFeatures.put("token_count", totalTokens);
}
}
public void controllerExecutionAborted(Controller c, Throwable t) {
System.out.println("Controller execution aborted with a " + t);
}
}