/** * Adds an event to this object. * @param event the event to add. */ public void addEvent (Event event) { if (!event.isNoop()) events.add(event); }
/** * Inserts an event in this object at the specified position. * @param event the event to insert. * @param index index at which the event is to be inserted. */ public void addEvent (Event event, int index) { if (!event.isNoop()) events.add(index, event); }
@Override public List<Event> convertToList(Event event) { List<Event> list = new LinkedList<Event>(); Event me = convert(event); if (me.isMultiEvent()) { for (Event e : me.getMultiEvent()) { if (e.isNoop()) continue; list.add(e); } } else { list.add(me); } return list; }
private MultiEvent assignIDs(MultiEvent me, IResource resource) { int counter = 0; for (Event event : me) { if (event.isNoop()) continue; IResource res = event.getResource(); String resId = resource.getId(); if (res instanceof DocumentPart && !(resource instanceof DocumentPart)) { String id = ""; if (counter++ == 0) id = resId; else id = String.format("%s_%d", resId, counter++); res.setId("" + String.format("dp_%s", id)); } else { res.setId(resId); if (res instanceof BaseNameable && resource instanceof BaseNameable) { ResourceUtil.copyProperties((BaseNameable) resource, (BaseNameable) res); } } } return me; }
private Event expandEvent(Event event, IPipelineStep currentStep) { // We send each of the events in MULTI_EVENT down the pipeline before // processing any other events but only if the event is configured for multi-event propagation if (event.getEventType() == EventType.MULTI_EVENT && !(((MultiEvent) event.getResource()).isPropagateAsSingleEvent())) { // add the remaining steps to a temp list - these are the steps that will receive the expanded // MULT_EVENTS List<IPipelineStep> remainingSteps = steps.subList(steps.indexOf(currentStep) + 1, steps.size()); for (Event me : ((MultiEvent)event.getResource())) { event = me; // send the current event from MULTI_EVENT down the remaining steps in the pipeline for (IPipelineStep remainingStep : remainingSteps) { event = remainingStep.handleEvent(event); event = expandEvent(event, remainingStep); if (event.isNoop()) break; // The event has been processed in expandEvent(), no need to process further here } // notify observers that the final step has sent an Event // always filter out NO_OP events if (!event.isNoop()) { notifyObservers(event); notifiedObserver = true; } } return Event.NOOP_EVENT; // All events have been propagated and processed by remaining steps } return event; }
private Event processEvent(Event event) { if (!isCollectingEvents || isReferentGroup) return convertEvent(event); Event ev = convertEvent(event); // Subclass invocation if (ev.isMultiEvent()) { for (Event e : ev.getMultiEvent()) { if (e.isNoop()) continue; group.addEvent(e); } } else { group.addEvent(ev); } return ev; }
if (event.isNoop()) continue;
if (group != null) for (Event event : group) { if (event.isNoop()) continue;
throw new InvalidParameterException("Event cannot be null"); if (event.isNoop()) return event;