public List<Event> convertLabelPlaceToEventList(List<LabelPlaceTraces> traces) { List<Event> eventList = new ArrayList<Event>(); Place preLoc = null; int preExitTime = 0; for (int i = 0; i < traces.size(); i++) { Place curPlace = dictionary.getPlace(traces.get(i).id); if (curPlace == null && preLoc != null) { // exit Event event = new Event( new State(preLoc, traces.get(i - 1).timeInMin / 30), "exit", traces.get(i - 1).timeInMin); eventList.add(event); } /* Entry */ if ((preLoc == null && curPlace != null)) { Event event = new Event( new State(curPlace, traces.get(i).timeInMin / 30), "entry", traces.get(i).timeInMin); eventList.add(event); } if ((preLoc != null && curPlace != null && preLoc.id != curPlace.id)) { Event event = new Event( new State(preLoc, traces.get(i - 1).timeInMin / 30), "exit", traces.get(i - 1).timeInMin + 2); eventList.add(event); event = new Event( new State(curPlace, traces.get(i).timeInMin / 30), "entry", traces.get(i).timeInMin); eventList.add(event); } preLoc = curPlace; } return eventList; }