com.backendless.geo.GeoPoint Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of android Show documentation
Show all versions of android Show documentation
Android SDK used by developers to provide Backendless API in apps.
/*
* ********************************************************************************************************************
*
* BACKENDLESS.COM CONFIDENTIAL
*
* ********************************************************************************************************************
*
* Copyright 2012 BACKENDLESS.COM. All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains the property of Backendless.com and its suppliers,
* if any. The intellectual and technical concepts contained herein are proprietary to Backendless.com and its
* suppliers and may be covered by U.S. and Foreign Patents, patents in process, and are protected by trade secret
* or copyright law. Dissemination of this information or reproduction of this material is strictly forbidden
* unless prior written permission is obtained from Backendless.com.
*
* ********************************************************************************************************************
*/
package com.backendless.geo;
import com.backendless.commons.geo.BaseGeoPoint;
import java.io.Serializable;
import java.util.*;
public class GeoPoint extends BaseGeoPoint implements Serializable
{
private static final long serialVersionUID = -4982310969493523406L;
private final static int multiplier = 1000000;
public GeoPoint()
{
}
public GeoPoint( double latitude, double longitude )
{
this.latitude = latitude;
this.longitude = longitude;
}
public GeoPoint( int latitudeE6, int longitudeE6 )
{
this.latitude = (double) latitudeE6 / multiplier;
this.longitude = (double) longitudeE6 / multiplier;
}
public GeoPoint( double latitude, double longitude, List categories, Map metadata )
{
this.latitude = latitude;
this.longitude = longitude;
this.categories = categories;
this.setMetadata( metadata );
}
public GeoPoint( int latitudeE6, int longitudeE6, List categories, Map metadata )
{
this.latitude = (double) latitudeE6 / multiplier;
this.longitude = (double) longitudeE6 / multiplier;
this.categories = categories;
this.setMetadata( metadata );
}
public int getLatitudeE6()
{
return (int) (latitude * multiplier);
}
public void setLatitudeE6( int latitudeE6 )
{
this.latitude = (double) latitudeE6 / multiplier;
}
public int getLongitudeE6()
{
return (int) (longitude * multiplier);
}
public void setLongitudeE6( int longitudeE6 )
{
this.longitude = (double) longitudeE6 / multiplier;
}
/* Removing since the same accessor is declared in the base class.
public Collection getCategories()
{
if( categories == null )
return categories = new HashSet();
return new HashSet( categories );
}*/
public void addCategory( String category )
{
if( categories == null )
categories = new ArrayList();
categories.add( category );
}
public Object getMetadata( String key )
{
if( metadata == null )
return null;
return metadata.get( key );
}
public void putMetadata( String key, Object value )
{
addMetadata( key, value );
}
public void putAllMetadata( Map metadata )
{
super.setMetadata( metadata );
}
public void clearMetadata()
{
if( this.metadata != null )
metadata.clear();
}
public void setCategories( Collection categories )
{
this.categories = new HashSet( categories );
}
public Double getDistance()
{
return distance;
}
public void setDistance( Double distance )
{
this.distance = distance;
}
@Override
public boolean equals( Object o )
{
if( this == o )
{
return true;
}
if( o == null || this.getClass() != o.getClass() )
{
return false;
}
GeoPoint geoPoint = (GeoPoint) o;
if( Double.compare( geoPoint.latitude, latitude ) != 0 )
{
return false;
}
if( Double.compare( geoPoint.longitude, longitude ) != 0 )
{
return false;
}
if( categories != null ? !categories.equals( geoPoint.categories ) : geoPoint.categories != null )
{
return false;
}
if( distance != null ? !distance.equals( geoPoint.distance ) : geoPoint.distance != null )
{
return false;
}
if( metadata != null ? !metadata.equals( geoPoint.metadata ) : geoPoint.metadata != null )
{
return false;
}
if( objectId != null ? !objectId.equals( geoPoint.objectId ) : geoPoint.objectId != null )
{
return false;
}
return true;
}
@Override
public int hashCode()
{
int result;
long temp;
result = objectId != null ? objectId.hashCode() : 0;
temp = Double.doubleToLongBits( latitude );
result = 31 * result + (int) (temp ^ (temp >>> 32));
temp = Double.doubleToLongBits( longitude );
result = 31 * result + (int) (temp ^ (temp >>> 32));
result = 31 * result + (categories != null ? categories.hashCode() : 0);
result = 31 * result + (metadata != null ? metadata.hashCode() : 0);
result = 31 * result + (distance != null ? distance.hashCode() : 0);
return result;
}
@Override
public String toString()
{
final StringBuilder sb = new StringBuilder( "GeoPoint{" );
sb.append( "objectId='" ).append( objectId ).append( '\'' );
sb.append( ", latitude=" ).append( latitude );
sb.append( ", longitude=" ).append( longitude );
sb.append( ", categories=" ).append( categories );
sb.append( ", metadata=" ).append( metadata );
sb.append( ", distance=" ).append( distance );
sb.append( '}' );
return sb.toString();
}
}