Version 1.7.4
[gae.git] / java / src / main / com / google / appengine / api / search / checkers / GeoPointChecker.java
blobd21576d5c16dce31daca98a66932afb0787c611a
1 // Copyright 2012 Google Inc. All Rights Reserved.
3 package com.google.appengine.api.search.checkers;
5 import com.google.apphosting.api.AppEngineInternal;
6 import com.google.apphosting.api.search.DocumentPb;
8 /**
9 * Provides checks for {@link com.google.appengine.api.search.GeoPoint}.
12 @AppEngineInternal
13 public class GeoPointChecker {
15 /**
16 * The maximum negative degrees for latitude.
17 * @deprecated From 1.7.4, use {@link SearchApiLimits#MAXIMUM_NEGATIVE_LATITUDE}
19 @Deprecated public static final double MAXIMUM_NEGATIVE_LATITUDE = -90.0;
21 /**
22 * The maximum positive degrees for latitude.
23 * @deprecated From 1.7.4, use {@link SearchApiLimits#MAXIMUM_POSITIVE_LATITUDE}
25 @Deprecated public static final double MAXIMUM_POSITIVE_LATITUDE = 90.0;
27 /**
28 * The maximum negative degrees for longitude.
29 * @deprecated From 1.7.4, use {@link SearchApiLimits#MAXIMUM_NEGATIVE_LONGITUDE}
31 @Deprecated public static final double MAXIMUM_NEGATIVE_LONGITUDE = -180.0;
33 /**
34 * The maximum positive degrees for longitude.
35 * @deprecated From 1.7.4, use {@link SearchApiLimits#MAXIMUM_POSITIVE_LONGITUDE}
37 @Deprecated public static final double MAXIMUM_POSITIVE_LONGITUDE = 180.0;
39 public GeoPointChecker() {
42 /**
43 * Checks whether a {@link GoePoint} latitude is valid. The value must be between
44 * -90.0 and 90.0 degrees.
46 * @param latitude the latitude to check
47 * @return the checked latitude
48 * @throws IllegalArgumentException if the latitude is out of range
50 public static double checkLatitude(double latitude) {
51 Preconditions.checkArgument(
52 SearchApiLimits.MAXIMUM_NEGATIVE_LATITUDE <= latitude &&
53 latitude <= SearchApiLimits.MAXIMUM_POSITIVE_LATITUDE,
54 "latitude %f must be between %f and %f", latitude,
55 SearchApiLimits.MAXIMUM_NEGATIVE_LATITUDE,
56 SearchApiLimits.MAXIMUM_POSITIVE_LATITUDE);
57 return latitude;
60 /**
61 * Checks whether a {@link GoePoint} longitude is valid. The value must be between
62 * -180.0 and 180.0 degrees.
64 * @param longitude the longitude to check
65 * @return the checked longitude
66 * @throws IllegalArgumentException if the longitude is out of range
68 public static double checkLongitude(double longitude) {
69 Preconditions.checkArgument(
70 SearchApiLimits.MAXIMUM_NEGATIVE_LONGITUDE <= longitude &&
71 longitude <= SearchApiLimits.MAXIMUM_POSITIVE_LONGITUDE,
72 "longitude %f must be between %f and %f", longitude,
73 SearchApiLimits.MAXIMUM_NEGATIVE_LONGITUDE,
74 SearchApiLimits.MAXIMUM_POSITIVE_LONGITUDE);
75 return longitude;
78 public static DocumentPb.FieldValue.Geo checkValid(DocumentPb.FieldValue.Geo geoPb) {
79 checkLatitude(geoPb.getLat());
80 checkLongitude(geoPb.getLng());
81 return geoPb;