@Override public void visitEvent(Event event) { this.contextStack.push(event); visitSubject(event); Date date = event.getDate(); if (date != null) { date.accept(this); } PlaceReference place = event.getPlace(); if (place != null) { place.accept(this); } List<EventRole> roles = event.getRoles(); if (roles != null) { for (EventRole role : roles) { if (role != null) { role.accept(this); } } } this.contextStack.pop(); }