package com.maxmind.geoip2;

import java.lang.*;
import java.util.*;
import java.io.*;
import org.json.*;

public class LocationRecord
{
  private double longitude;
  private double latitude;
  private String postalCode;
  private String timeZone;
  private int metroCode;
  LocationRecord(JSONObject json) {
    try {
      postalCode = json.getString("postal_code");
      timeZone = json.getString("time_zone");
      longitude = json.getDouble("longitude");
      latitude = json.getDouble("latitude");
      metroCode = json.getInt("metro_code");
    } catch (JSONException e) {
      e.printStackTrace();
    }  
  }
  public String getPostalCode() {
    return postalCode;
  }
  public String getTimeZone() {
    return timeZone;
  }
  public double getLongitude() {
    return longitude;
  }
  public double getLatitude() {
    return latitude;
  }
  public int getMetroCode() {
    return metroCode;
  }
}



@@ -136,25 +136,25 @@
 %7B%0A  private 
-d
+D
 ouble longit
@@ -168,17 +168,17 @@
 private 
-d
+D
 ouble la
@@ -210,24 +210,60 @@
 postalCode;%0A
+  private Integer postalConfidence;%0A
   private St
@@ -287,19 +287,23 @@
 private 
-i
+I
 nt
+eger
  metroCo
@@ -306,16 +306,50 @@
 roCode;%0A
+  private Integer accuracyRadius;%0A
   Locati
@@ -414,33 +414,171 @@
 son.
-getString(%22postal_code%22);
+optString(%22postal_code%22,null);%0A      if (json.has(%22postal_confidence%22)) %7B%0A        postalConfidence = new Integer(json.getInt(%22postal_confidence%22));        %0A      %7D
 %0A   
@@ -596,18 +596,18 @@
  = json.
-ge
+op
 tString(
@@ -617,19 +617,61 @@
 me_zone%22
+,null
 );%0A
+      if (json.has(%22longitude%22)) %7B%0A  
       lo
@@ -672,32 +672,43 @@
     longitude = 
+new Double(
 json.getDouble(%22
@@ -718,24 +718,25 @@
 gitude%22)
+)
 ;%0A      
 latitude
@@ -731,19 +731,74 @@
     
-latitude = 
+%7D%0A      if (json.has(%22latitude%22)) %7B%0A        latitude = new Double(
 json
@@ -819,24 +819,25 @@
 titude%22)
+)
 ;%0A      
 metroCod
@@ -832,20 +832,78 @@
     
-metroCode = 
+%7D%0A      if (json.has(%22metro_code%22)) %7B%0A        metroCode = new Integer(
 json
@@ -927,76 +927,348 @@
 de%22)
+)
 ;%0A    
-%7D catch (JSONException e) %7B%0A      e.printStackTrace();%0A    %7D  
+  %7D%0A      if (json.has(%22accuracy_radius%22)) %7B%0A        accuracyRadius = new Integer(json.getInt(%22accuracy_radius%22));%0A      %7D%0A    %7D catch (JSONException e) %7B%0A      e.printStackTrace();%0A    %7D  %0A  %7D%0A  public Integer getAccuracyRadius() %7B%0A    return accuracyRadius;%0A  %7D%0A  public Integer getPostalConfidence() %7B%0A    return postalConfidence;
 %0A  %7D
@@ -1387,33 +1387,33 @@
 e;%0A  %7D%0A  public 
-d
+D
 ouble getLongitu
@@ -1454,17 +1454,17 @@
  public 
-d
+D
 ouble ge
@@ -1511,19 +1511,23 @@
  public 
-i
+I
 nt
+eger
  getMetr

add new fields