From 42ddfb444edafaf77b1ea1f1af2d180d97320232 Mon Sep 17 00:00:00 2001
From: akwizgran <akwizgran@users.sourceforge.net>
Date: Sat, 29 Oct 2011 09:52:07 +0100
Subject: [PATCH] Added a method to check which plugins support invitations.

---
 api/net/sf/briar/api/plugins/Plugin.java               |  3 +++
 .../sf/briar/plugins/bluetooth/BluetoothPlugin.java    |  4 ++++
 .../sf/briar/plugins/file/RemovableDrivePlugin.java    |  4 ++++
 .../sf/briar/plugins/socket/SimpleSocketPlugin.java    | 10 ++++++----
 4 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/api/net/sf/briar/api/plugins/Plugin.java b/api/net/sf/briar/api/plugins/Plugin.java
index f34fd4b6d4..3358c1ff6a 100644
--- a/api/net/sf/briar/api/plugins/Plugin.java
+++ b/api/net/sf/briar/api/plugins/Plugin.java
@@ -33,4 +33,7 @@ public interface Plugin {
 	 * callback.
 	 */
 	void poll();
+
+	/** Returns true if the plugin supports exchanging invitations. */
+	boolean supportsInvitations();
 }
diff --git a/components/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java b/components/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java
index 78b9c648a8..d1efb602e7 100644
--- a/components/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java
+++ b/components/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java
@@ -264,6 +264,10 @@ class BluetoothPlugin extends AbstractPlugin implements StreamPlugin {
 		return url == null ? null : connect(c, url);
 	}
 
+	public boolean supportsInvitations() {
+		return true;
+	}
+
 	public StreamTransportConnection sendInvitation(int code, long timeout) {
 		return createInvitationConnection(code, timeout);
 	}
diff --git a/components/net/sf/briar/plugins/file/RemovableDrivePlugin.java b/components/net/sf/briar/plugins/file/RemovableDrivePlugin.java
index 9a2633fdc9..64a6763d43 100644
--- a/components/net/sf/briar/plugins/file/RemovableDrivePlugin.java
+++ b/components/net/sf/briar/plugins/file/RemovableDrivePlugin.java
@@ -59,6 +59,10 @@ implements RemovableDriveMonitor.Callback {
 		throw new UnsupportedOperationException();
 	}
 
+	public boolean supportsInvitations() {
+		return true;
+	}
+
 	@Override
 	protected File chooseOutputDirectory() {
 		try {
diff --git a/components/net/sf/briar/plugins/socket/SimpleSocketPlugin.java b/components/net/sf/briar/plugins/socket/SimpleSocketPlugin.java
index 09d2e96fb9..8daeb54cb0 100644
--- a/components/net/sf/briar/plugins/socket/SimpleSocketPlugin.java
+++ b/components/net/sf/briar/plugins/socket/SimpleSocketPlugin.java
@@ -97,13 +97,15 @@ class SimpleSocketPlugin extends SocketPlugin {
 		callback.setLocalProperties(p);
 	}
 
+	public boolean supportsInvitations() {
+		return false;
+	}
+
 	public StreamTransportConnection sendInvitation(int code, long timeout) {
-		// FIXME
-		return null;
+		throw new UnsupportedOperationException();
 	}
 
 	public StreamTransportConnection acceptInvitation(int code, long timeout) {
-		// FIXME
-		return null;
+		throw new UnsupportedOperationException();
 	}
 }
-- 
GitLab