mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-16 12:12:06 +01:00
Add Manager.getAuthenticatedConnectionOrThrow()
This commit is contained in:
parent
dddba8f08c
commit
1eb315d6b7
2 changed files with 19 additions and 17 deletions
|
@ -18,6 +18,7 @@ package org.jivesoftware.smack;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
|
|
||||||
|
import org.jivesoftware.smack.SmackException.NotLoggedInException;
|
||||||
import org.jivesoftware.smack.util.Objects;
|
import org.jivesoftware.smack.util.Objects;
|
||||||
|
|
||||||
public abstract class Manager {
|
public abstract class Manager {
|
||||||
|
@ -33,4 +34,18 @@ public abstract class Manager {
|
||||||
protected final XMPPConnection connection() {
|
protected final XMPPConnection connection() {
|
||||||
return weakConnection.get();
|
return weakConnection.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the XMPPConnection of this Manager if it's authenticated, i.e. logged in. Otherwise throw a {@link NotLoggedInException}.
|
||||||
|
*
|
||||||
|
* @return the XMPPConnection of this Manager.
|
||||||
|
* @throws NotLoggedInException if the connection is not authenticated.
|
||||||
|
*/
|
||||||
|
protected final XMPPConnection getAuthenticatedConnectionOrThrow() throws NotLoggedInException {
|
||||||
|
XMPPConnection connection = connection();
|
||||||
|
if (!connection.isAuthenticated()) {
|
||||||
|
throw new NotLoggedInException();
|
||||||
|
}
|
||||||
|
return connection;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -287,10 +287,7 @@ public final class Roster extends Manager {
|
||||||
* @throws InterruptedException
|
* @throws InterruptedException
|
||||||
*/
|
*/
|
||||||
public void reload() throws NotLoggedInException, NotConnectedException, InterruptedException{
|
public void reload() throws NotLoggedInException, NotConnectedException, InterruptedException{
|
||||||
final XMPPConnection connection = connection();
|
final XMPPConnection connection = getAuthenticatedConnectionOrThrow();
|
||||||
if (!connection.isAuthenticated()) {
|
|
||||||
throw new NotLoggedInException();
|
|
||||||
}
|
|
||||||
|
|
||||||
RosterPacket packet = new RosterPacket();
|
RosterPacket packet = new RosterPacket();
|
||||||
if (rosterStore != null && isRosterVersioningSupported()) {
|
if (rosterStore != null && isRosterVersioningSupported()) {
|
||||||
|
@ -457,10 +454,7 @@ public final class Roster extends Manager {
|
||||||
* @throws InterruptedException
|
* @throws InterruptedException
|
||||||
*/
|
*/
|
||||||
public void createEntry(Jid user, String name, String[] groups) throws NotLoggedInException, NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
|
public void createEntry(Jid user, String name, String[] groups) throws NotLoggedInException, NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
|
||||||
final XMPPConnection connection = connection();
|
final XMPPConnection connection = getAuthenticatedConnectionOrThrow();
|
||||||
if (!connection.isAuthenticated()) {
|
|
||||||
throw new NotLoggedInException();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create and send roster entry creation packet.
|
// Create and send roster entry creation packet.
|
||||||
RosterPacket rosterPacket = new RosterPacket();
|
RosterPacket rosterPacket = new RosterPacket();
|
||||||
|
@ -532,11 +526,7 @@ public final class Roster extends Manager {
|
||||||
* @since 4.2
|
* @since 4.2
|
||||||
*/
|
*/
|
||||||
public boolean isSubscriptionPreApprovalSupported() throws NotLoggedInException {
|
public boolean isSubscriptionPreApprovalSupported() throws NotLoggedInException {
|
||||||
final XMPPConnection connection = connection();
|
final XMPPConnection connection = getAuthenticatedConnectionOrThrow();
|
||||||
if (!connection.isAuthenticated()) {
|
|
||||||
throw new NotLoggedInException();
|
|
||||||
}
|
|
||||||
|
|
||||||
return connection.hasFeature(SubscriptionPreApproval.ELEMENT, SubscriptionPreApproval.NAMESPACE);
|
return connection.hasFeature(SubscriptionPreApproval.ELEMENT, SubscriptionPreApproval.NAMESPACE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -554,10 +544,7 @@ public final class Roster extends Manager {
|
||||||
* @throws InterruptedException
|
* @throws InterruptedException
|
||||||
*/
|
*/
|
||||||
public void removeEntry(RosterEntry entry) throws NotLoggedInException, NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
|
public void removeEntry(RosterEntry entry) throws NotLoggedInException, NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
|
||||||
final XMPPConnection connection = connection();
|
final XMPPConnection connection = getAuthenticatedConnectionOrThrow();
|
||||||
if (!connection.isAuthenticated()) {
|
|
||||||
throw new NotLoggedInException();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Only remove the entry if it's in the entry list.
|
// Only remove the entry if it's in the entry list.
|
||||||
// The actual removal logic takes place in RosterPacketListenerprocess>>Packet(Packet)
|
// The actual removal logic takes place in RosterPacketListenerprocess>>Packet(Packet)
|
||||||
|
|
Loading…
Reference in a new issue