package edu.berkeley.nlp.PCFGLA; import java.util.ArrayList; import opennlp.maxent.Event; import opennlp.maxent.EventStream; public class BinaryRuleEventStream implements EventStream { ArrayList<Event> events; int currentIndex; public BinaryRuleEventStream() { events = new ArrayList<Event>(); currentIndex = -1; } @Override public boolean hasNext() { return !(currentIndex == events.size()-1); } @Override public Event nextEvent() { return events.get(++currentIndex); } public void addBinaryRule(BinaryRule binaryRule) { events.add(binaryRuleToEvent(binaryRule)); } public void addEvent(String outcome, String[] context) { events.add(new Event(outcome, context)); } public static String[] getContext(String binaryRule) { return new String[] {binaryRule.split("->")[0]}; } public static Event binaryRuleToEvent(BinaryRule binaryRule) { Event event = new Event(binaryRule.toStringSEIE(), getContext(binaryRule)); return event; } public static String[] getContext(BinaryRule binaryRule) { return new String[] {binaryRule.toStringSEIE().split("->")[0]}; } }