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
;
9 * Provides checks for {@link com.google.appengine.api.search.GeoPoint}.
13 public class GeoPointChecker
{
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;
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;
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;
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() {
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
);
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
);
78 public static DocumentPb
.FieldValue
.Geo
checkValid(DocumentPb
.FieldValue
.Geo geoPb
) {
79 checkLatitude(geoPb
.getLat());
80 checkLongitude(geoPb
.getLng());