Adding the geolocation service as defined by Guillaume!

cusax-fix
Emil Ivov 19 years ago
parent f789b9b7ef
commit 4d9c3be0be

@ -0,0 +1,46 @@
/*
* SIP Communicator, the OpenSource Java VoIP and Instant Messaging client.
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package net.java.sip.communicator.service.geolocation;
import java.util.*;
import net.java.sip.communicator.service.geolocation.event.*;
/**
* Instances of GeolocationService allow to retrieve the current geolocation
* for SIP Communicator. You need to use this interface in order to
* implements geolocation services like GPS, GeoIP, etc...
*
* @author Guillaume Schreiner
*/
public interface GeolocationService
{
/**
* Returns the <tt>Geolocation</tt> currently set for the provider
*
* @return the last <tt>Geolocation</tt> that we have set by a geolocation
* backend.
*/
public Map getCurrentGeolocation();
/**
* Registers a listener that would get notifications any time the provider
* geolocation was succesfully refreshed.
*
* @param listener the <tt>ProviderGeolocationPresenceListener</tt> to
* register
*/
public void addGeolocationListener(GeolocationListener listener);
/**
* Remove a listener that would get notifications any time the provider
* geolocation was succesfully refreshed.
*
* @param listener
*/
public void removeGeolocationListener(GeolocationListener listener);
}

@ -0,0 +1,39 @@
/*
* SIP Communicator, the OpenSource Java VoIP and Instant Messaging client.
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package net.java.sip.communicator.service.geolocation.event;
import java.beans.*;
/**
* An event listener that should be implemented by parties interested in changes
* that occur in the state of a ProtocolProvider.
*
* @author Guillaume Schreiner
*/
public interface GeolocationListener extends java.util.EventListener
{
/**
* The method is called by a ProtocolProvider implementation whenever a
* change in the Geolocation of the corresponding provider had occurred.
*
* @param evt
* ProviderGeolocationPresenceChangeEvent the event describing
* the status change.
*/
public void providerStatusChanged(LocalPositionChangeEvent evt);
/**
* The method is called by a ProtocolProvider implementation whenever a
* change in the status message of the corresponding provider has occurred
* and has been confirmed by the server.
*
* @param evt
* a PropertyChangeEvent with a STATUS_MESSAGE property name,
* containing the old and new Geolocation.
*/
public void providerStatusMessageChanged(PropertyChangeEvent evt);
}

@ -0,0 +1,86 @@
/*
* SIP Communicator, the OpenSource Java VoIP and Instant Messaging client.
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package net.java.sip.communicator.service.geolocation.event;
import java.beans.*;
import java.util.*;
import net.java.sip.communicator.service.protocol.*;
/**
* Instances of this class represent a change in the Geolocation of the provider
* that triggerred them.
*
* @author Guillaume Schreiner
*/
public class LocalPositionChangeEvent extends PropertyChangeEvent {
/**
* Creates an event instance indicating a change of the property specified
* by <tt>eventType</tt> from <tt>oldValue</tt> to <tt>newValue</tt>.
*
* @param source
* the provider that generated the event
* @param oldValue
* the Geolocation the source provider was int before entering
* the new state.
* @param newValue
* the Geolocation the source provider is currently in.
*/
public LocalPositionChangeEvent(ProtocolProviderService source,
Map oldValue, Map newValue)
{
super(source, LocalPositionChangeEvent.class.getName(), oldValue,
newValue);
}
/**
* Returns the provider that has genereted this event
*
* @return the provider that generated the event.
*/
public ProtocolProviderService getProvider()
{
return (ProtocolProviderService) getSource();
}
/**
* Returns the Geolocation of the provider before this event took place.
*
* @return a Geolocation instance indicating the event the source provider
* was in before it entered its new state.
*/
public Map getOldGeolocation()
{
return (Map) super.getOldValue();
}
/**
* Returns the Geolocation of the provider after this event took place.
* (i.e. at the time the event is being dispatched).
*
* @return a Geolocation instance indicating the event the source provider
* is in after the Geolocation change occurred.
*/
public Map getNewGeolocation()
{
return (Map) super.getNewValue();
}
/**
* Returns a String representation of this LocalPositionChangeEvent
*
* @return A a String representation of this LocalPositionChangeEvent.
*/
public String toString()
{
StringBuffer buff = new StringBuffer("LocalPositionChangeEvent-[");
return buff.append("OldPosition=").append(getOldGeolocation()).append(
", NewPosition=").append(getNewGeolocation()).append("]")
.toString();
}
}
Loading…
Cancel
Save