package com.google.cloud.solutions;

import org.joda.time.Instant;

class LogEntry {
    private Instant timestamp;
    private int httpStatusCode;
    private double responseTime;
    private String source;
    private String httpMethod;
    private String destination;

    public LogEntry(Instant timestamp, int httpStatusCode, double responseTime,
                    String source, String httpMethod, String destination) {
        this.timestamp = timestamp;
        this.httpStatusCode = httpStatusCode;
        this.responseTime = responseTime;
        this.source = source;
        this.httpMethod = httpMethod;
        this.destination = destination;
    }

    public Instant getTimestamp() {
        return timestamp;
    }

    public int getHttpStatusCode() {
        return httpStatusCode;
    }

    public double getResponseTime() {
        return responseTime;
    }

    public String getSource() {
        return source;
    }

    public String getHttpMethod() {
        return httpMethod;
    }

    public String getDestination() {
        return destination;
    }
}

@@ -41,31 +41,216 @@
 ort 
-org.joda.time.Instant;%0A
+com.google.cloud.dataflow.sdk.coders.AvroCoder;%0Aimport com.google.cloud.dataflow.sdk.coders.DefaultCoder;%0Aimport org.apache.avro.reflect.Nullable;%0Aimport org.joda.time.Instant;%0A%0A@DefaultCoder(AvroCoder.class)
 %0Acla
@@ -263,24 +263,34 @@
 Entry %7B%0A    
+@Nullable 
 private Inst
@@ -304,24 +304,34 @@
 estamp;%0A    
+@Nullable 
 private int 
@@ -346,24 +346,34 @@
 usCode;%0A    
+@Nullable 
 private doub
@@ -389,24 +389,34 @@
 seTime;%0A    
+@Nullable 
 private Stri
@@ -426,24 +426,34 @@
 source;%0A    
+@Nullable 
 private Stri
@@ -471,16 +471,26 @@
 od;%0A    
+@Nullable 
 private 
@@ -956,16 +956,21 @@
  return 
+this.
 timestam
@@ -1027,24 +1027,29 @@
      return 
+this.
 httpStatusCo
@@ -1112,16 +1112,21 @@
  return 
+this.
 response
@@ -1185,16 +1185,21 @@
  return 
+this.
 source;%0A
@@ -1256,16 +1256,21 @@
  return 
+this.
 httpMeth
@@ -1332,16 +1332,21 @@
  return 
+this.
 destinat

set DefaultCoder to AvroCoder