class UUIDInterceptor implements Interceptor {

  @Override
  public Event intercept(Event event) {
    Map<String, String> headers = event.getHeaders();
    if (preserveExisting && headers.containsKey(headerName)) {
      // we must preserve the existing id
    } else if (isMatch(event)) {
      headers.put(headerName, generateUUID());
    }
    return event;
  }

  protected  UUIDInterceptor(Context context);

}