mirror of https://github.com/sipwise/jitsi.git
parent
54950b2812
commit
9256299117
@ -0,0 +1,107 @@
|
||||
/*
|
||||
* 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.impl.protocol.icq;
|
||||
|
||||
import net.java.sip.communicator.service.protocol.*;
|
||||
import net.java.sip.communicator.util.*;
|
||||
import net.kano.joustsim.Screenname;
|
||||
|
||||
/**
|
||||
* Contains methods that would allow service users to re-request authorizations
|
||||
* to add a contact to their contact list or, send them an authorization before
|
||||
* having been asked.
|
||||
*
|
||||
* @author Damian Minkov
|
||||
*/
|
||||
public class OperationSetExtendedAuthorizationsIcqImpl
|
||||
implements OperationSetExtendedAuthorizations
|
||||
{
|
||||
private static final Logger logger =
|
||||
Logger.getLogger(OperationSetExtendedAuthorizationsIcqImpl.class);
|
||||
|
||||
/**
|
||||
* A callback to the ICQ provider that created us.
|
||||
*/
|
||||
private ProtocolProviderServiceIcqImpl icqProvider = null;
|
||||
|
||||
|
||||
/**
|
||||
* Creates a new instance of OperationSetExtendedAuthorizationsIcqImpl
|
||||
* @param icqProvider IcqProtocolProviderServiceImpl
|
||||
*/
|
||||
public OperationSetExtendedAuthorizationsIcqImpl(
|
||||
ProtocolProviderServiceIcqImpl icqProvider)
|
||||
{
|
||||
this.icqProvider = icqProvider;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send an authorization request, requesting <tt>contact</tt> to add them
|
||||
* to our contact list?
|
||||
*
|
||||
* @param request the <tt>AuthorizationRequest</tt> that we'd like the
|
||||
* protocol provider to send to <tt>contact</tt>.
|
||||
* @param contact the <tt>Contact</tt> who we'd be asking for an
|
||||
* authorization.
|
||||
* @throws OperationFailedException if we fail sending the authorization
|
||||
* request.
|
||||
*/
|
||||
public void reRequestAuthorization(AuthorizationRequest request, Contact contact)
|
||||
throws OperationFailedException
|
||||
{
|
||||
assertConnected();
|
||||
|
||||
if(! (contact instanceof ContactIcqImpl) )
|
||||
throw new IllegalArgumentException(
|
||||
"Argument is not an icq contact (contact=" + contact + ")");
|
||||
|
||||
icqProvider.getAimConnection().getSsiService().requestBuddyAuthorization(
|
||||
new Screenname(contact.getAddress()),
|
||||
request.getReason());
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a positive authorization to <tt>contact</tt> thus allowing them to
|
||||
* add us to their contact list without needing to first request an
|
||||
* authorization.
|
||||
*
|
||||
* @param contact the <tt>Contact</tt> whom we're granting authorization
|
||||
* prior to receiving a request.
|
||||
* @throws OperationFailedException if we fail sending the authorization.
|
||||
*/
|
||||
public void explicitAuthorize(Contact contact)
|
||||
throws OperationFailedException
|
||||
{
|
||||
assertConnected();
|
||||
|
||||
if(! (contact instanceof ContactIcqImpl) )
|
||||
throw new IllegalArgumentException(
|
||||
"Argument is not an icq contact (contact=" + contact + ")");
|
||||
|
||||
icqProvider.getAimConnection().getSsiService().sendFutureBuddyAuthorization(
|
||||
new Screenname(contact.getAddress()),
|
||||
"");
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility method throwing an exception if the icq stack is not properly
|
||||
* initialized.
|
||||
* @throws java.lang.IllegalStateException if the underlying ICQ stack is
|
||||
* not registered and initialized.
|
||||
*/
|
||||
private void assertConnected() throws IllegalStateException
|
||||
{
|
||||
if (icqProvider == null)
|
||||
throw new IllegalStateException(
|
||||
"The icq provider must be non-null and signed on the ICQ "
|
||||
+"service before being able to communicate.");
|
||||
if (!icqProvider.isRegistered())
|
||||
throw new IllegalStateException(
|
||||
"The icq provider must be signed on the ICQ service before "
|
||||
+"being able to communicate.");
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue