code: protected void perform(JSONObject json, Coordinator coordinator, Provider provider) {
          logger.trace("Extracting event from JSON.");
          GerritEvent event = GerritJsonEventFactory.getEvent(json);
          if (event != null) {
              if (event instanceof GerritTriggeredEvent) {
                  GerritTriggeredEvent gerritTriggeredEvent = (GerritTriggeredEvent)event;
                  gerritTriggeredEvent.setProvider(provider);
                  gerritTriggeredEvent.setReceivedOn(createdOn);
              }
              logger.debug("Event is: {}", event);
              perform(event, coordinator);
          } else {
              logger.debug("No event extracted!");
          }
      }
docs: Parses the JSONObject into a Java bean and sends the parsed {@link GerritEvent} down the inheritance chain.
  @param json the JSONObject to work on.
  @param coordinator the coordinator.
  @param provider the Gerrit server info