class GelfOperation implements EventOperation {

  public InternalEvent perform(InternalEvent ievent) {
    /*
     * Substitute
     */
    ievent = subOp.perform(ievent);

    /*
     * Flatten
     */
    ievent = flattenOp.perform(ievent);

    /*
     * Prefix
     */
    ievent = prefix(ievent);

    /*
     * Rewrite the timestamp field from the Internal Event time
     */
    ievent = setTimestamp(ievent);

    return ievent;
  }

  public  GelfOperation(List<Substitution> substitutions);

}