Class UserLocationHistory

java.lang.Object
com.iizix.server.geo.UserLocationHistory
All Implemented Interfaces:
IUserLocationHistory

public class UserLocationHistory extends Object implements IUserLocationHistory
The implementation of the user location history.
Author:
Christopher Mindus
  • Constructor Details

    • UserLocationHistory

      public UserLocationHistory(AuthenticatedUser user)
      Constructor.
      Parameters:
      user - The authenticated user.
  • Method Details

    • getUserInformation

      public AuthenticatedUser getUserInformation()
      Returns the authenticated user.
      Specified by:
      getUserInformation in interface IUserLocationHistory
      Returns:
      The user.
    • getLocations

      public DeviceLocation[] getLocations()
      Returns the array of user locations.
      Specified by:
      getLocations in interface IUserLocationHistory
      Returns:
      The array of user locations.
    • getLatestLocation

      public DeviceLocation getLatestLocation()
      Returns the latest known location of the user received by the server (approximation). Two locations with very close timestamp might be interchanged. This method returns the last added location from an array of locations.
      Specified by:
      getLatestLocation in interface IUserLocationHistory
      Returns:
      The most up-to-date location of the user, or null if none is found.
    • findNearbyUsers

      public List<Nearby> findNearbyUsers(double maximumDistance, long maximumAge, boolean useAltitude)
      Finds nearby users from the latest known location in history with a max given distance and a maximum age of the users location.

      The distance uses the Haversine method for calculation.

      Specified by:
      findNearbyUsers in interface IUserLocationHistory
      Parameters:
      maximumDistance - The maximum distance in meters.
      maximumAge - The maximum age of the users location in milliseconds.
      useAltitude - Flag to use the altitude in the distance calculation or not.
      Returns:
      A list of nearby users. Do not assume that the list is sorted by timestamp.
    • addLocationListener

      public boolean addLocationListener(IAppSessionGyro appGyro, IUserLocationListener listener)
      Adds a listener for changes in the user's location. This method will add a dispose listener to the client session and remove the listener if not already done.

      Calling this method twice with the same listener will not cause it to be added again.

      Specified by:
      addLocationListener in interface IUserLocationHistory
      Parameters:
      appGyro - The client session owning the listener.
      listener - The listener.
      Returns:
      true for success, false if listener is already added or if client session is disposed of.
    • addLocationListener

      public boolean addLocationListener(IClientSessionGyro clientGyro, IUserLocationListener listener)
      Adds a listener for changes in the user's location. This method will add a dispose listener to the client session and remove the listener if not already done.

      Calling this method twice with the same listener will not cause it to be added again.

      Specified by:
      addLocationListener in interface IUserLocationHistory
      Parameters:
      clientGyro - The client session owning the listener.
      listener - The listener.
      Returns:
      true for success, false if listener is already added or if client session is disposed of.
    • removeLocationListener

      public boolean removeLocationListener(IUserLocationListener listener)
      Removes a listener for changes in the user's location.
      Specified by:
      removeLocationListener in interface IUserLocationHistory
      Parameters:
      listener - The listener.
      Returns:
      true for success, false if listener is not previously added or has been removed.
    • equals

      public boolean equals(Object o)
      Checks for equality.
      Overrides:
      equals in class Object
      Parameters:
      o - The object to compare with.
      Returns:
      When equals, false otherwise.
    • hashCode

      public int hashCode()
      Gets the hash code.
      Overrides:
      hashCode in class Object
      Returns:
      The hash code is the Object's original hash code.
    • toString

      public String toString()
      String representation of the class.
      Overrides:
      toString in class Object
      Returns:
      A string with user and distance.