class Ip implements Comparable<Ip>, Serializable {

  public static Ip create(long ipAsLong) {
    checkArgument(ipAsLong <= 0xFFFFFFFFL, "Invalid IP value: %s", ipAsLong);
    Ip ip = new Ip(ipAsLong);
    return CACHE.getUnchecked(ip);
  }

  private  Ip(long ipAsLong);

}