Class GeoLocation.Builder

java.lang.Object
co.mindus.ip2location.GeoLocation.Builder
Enclosing class:
GeoLocation

public static final class GeoLocation.Builder extends Object
Builder for creating GeoLocation instances.

This builder allows for fluent construction of GeoLocation objects. At minimum, ip(String) should be set before calling build().

Example

GeoLocation loc = GeoLocation.builder()
    .ip("8.8.8.8")
    .status(GeoLocation.Status.OK)
    .countryCode("US")
    .countryName("United States of America")
    .region("California")
    .city("Mountain View")
    .latitude(37.4056)
    .longitude(-122.0775)
    .zipCode("94043")
    .timeZone("America/Los_Angeles")
    .build();

Thread Safety

Builder instances are not thread-safe. Each thread should use its own builder.

Author:
Christopher Mindus
  • Constructor Details

    • Builder

      public Builder()
      Creates a new Builder with default values.
  • Method Details

    • ip

      public GeoLocation.Builder ip(String ip)
      Sets the IP address.
      Parameters:
      ip - The IP address string
      Returns:
      This builder for chaining
    • status

      public GeoLocation.Builder status(GeoLocation.Status status)
      Sets the status.
      Parameters:
      status - The status enum value
      Returns:
      This builder for chaining
    • countryCode

      public GeoLocation.Builder countryCode(String countryCode)
      Sets the country code.
      Parameters:
      countryCode - ISO 3166-1 alpha-2 country code
      Returns:
      This builder for chaining
    • countryName

      public GeoLocation.Builder countryName(String countryName)
      Sets the country name.
      Parameters:
      countryName - Full country name
      Returns:
      This builder for chaining
    • region

      public GeoLocation.Builder region(String region)
      Sets the region/state name.
      Parameters:
      region - Region or state name
      Returns:
      This builder for chaining
    • city

      public GeoLocation.Builder city(String city)
      Sets the city name.
      Parameters:
      city - City name
      Returns:
      This builder for chaining
    • latitude

      public GeoLocation.Builder latitude(double latitude)
      Sets the latitude.
      Parameters:
      latitude - Latitude in decimal degrees (-90 to 90)
      Returns:
      This builder for chaining
    • longitude

      public GeoLocation.Builder longitude(double longitude)
      Sets the longitude.
      Parameters:
      longitude - Longitude in decimal degrees (-180 to 180)
      Returns:
      This builder for chaining
    • zipCode

      public GeoLocation.Builder zipCode(String zipCode)
      Sets the ZIP/postal code.
      Parameters:
      zipCode - ZIP or postal code
      Returns:
      This builder for chaining
    • timeZone

      public GeoLocation.Builder timeZone(String timeZone)
      Sets the timezone.
      Parameters:
      timeZone - Timezone in tz database format
      Returns:
      This builder for chaining
    • isIPv6

      public GeoLocation.Builder isIPv6(boolean isIPv6)
      Sets whether this is an IPv6 lookup.
      Parameters:
      isIPv6 - true if IPv6
      Returns:
      This builder for chaining
    • build

      public GeoLocation build()
      Builds the GeoLocation instance.
      Returns:
      A new immutable GeoLocation