From 52720c5c041c64953551425b97fb3d9d5dc7474c Mon Sep 17 00:00:00 2001
From: akwizgran <akwizgran@users.sourceforge.net>
Date: Wed, 16 Dec 2015 14:16:17 +0000
Subject: [PATCH] Pass-through implementations of UI/DB interfaces.

---
 briar-android/res/values/roboguice.xml        |  6 +-
 .../contact/ContactManagerImpl.java           | 44 +++++++++
 .../briarproject/contact/ContactModule.java   | 13 +++
 .../briarproject/forum/ForumManagerImpl.java  | 93 +++++++++++++++++++
 .../org/briarproject/forum/ForumModule.java   | 13 +++
 .../identity/IdentityManagerImpl.java         | 41 ++++++++
 .../briarproject/identity/IdentityModule.java | 13 +++
 .../messaging/MessagingManagerImpl.java       | 66 +++++++++++++
 .../messaging/MessagingModule.java            | 13 +++
 .../{MessagingModule.java => SyncModule.java} |  2 +-
 .../briarproject/ProtocolIntegrationTest.java |  4 +-
 .../org/briarproject/sync/ConstantsTest.java  |  2 +-
 .../sync/SimplexMessagingIntegrationTest.java |  2 +-
 13 files changed, 306 insertions(+), 6 deletions(-)
 create mode 100644 briar-core/src/org/briarproject/contact/ContactManagerImpl.java
 create mode 100644 briar-core/src/org/briarproject/contact/ContactModule.java
 create mode 100644 briar-core/src/org/briarproject/forum/ForumManagerImpl.java
 create mode 100644 briar-core/src/org/briarproject/forum/ForumModule.java
 create mode 100644 briar-core/src/org/briarproject/identity/IdentityManagerImpl.java
 create mode 100644 briar-core/src/org/briarproject/identity/IdentityModule.java
 create mode 100644 briar-core/src/org/briarproject/messaging/MessagingManagerImpl.java
 create mode 100644 briar-core/src/org/briarproject/messaging/MessagingModule.java
 rename briar-core/src/org/briarproject/sync/{MessagingModule.java => SyncModule.java} (97%)

diff --git a/briar-android/res/values/roboguice.xml b/briar-android/res/values/roboguice.xml
index 92220cc843..7f33cf6d5c 100644
--- a/briar-android/res/values/roboguice.xml
+++ b/briar-android/res/values/roboguice.xml
@@ -2,14 +2,18 @@
 <resources>
 	<string-array name="roboguice_modules">
 		<item>org.briarproject.android.AndroidModule</item>
+		<item>org.briarproject.contact.ContactModule</item>
 		<item>org.briarproject.crypto.CryptoModule</item>
 		<item>org.briarproject.data.DataModule</item>
 		<item>org.briarproject.db.DatabaseModule</item>
 		<item>org.briarproject.event.EventModule</item>
+		<item>org.briarproject.forum.ForumModule</item>
+		<item>org.briarproject.identity.IdentityModule</item>
 		<item>org.briarproject.invitation.InvitationModule</item>
 		<item>org.briarproject.lifecycle.LifecycleModule</item>
-		<item>org.briarproject.sync.MessagingModule</item>
+		<item>org.briarproject.messaging.MessagingModule</item>
 		<item>org.briarproject.plugins.AndroidPluginsModule</item>
+		<item>org.briarproject.sync.SyncModule</item>
 		<item>org.briarproject.system.AndroidSystemModule</item>
 		<item>org.briarproject.transport.TransportModule</item>
 	</string-array>
diff --git a/briar-core/src/org/briarproject/contact/ContactManagerImpl.java b/briar-core/src/org/briarproject/contact/ContactManagerImpl.java
new file mode 100644
index 0000000000..3a1648f16c
--- /dev/null
+++ b/briar-core/src/org/briarproject/contact/ContactManagerImpl.java
@@ -0,0 +1,44 @@
+package org.briarproject.contact;
+
+import com.google.inject.Inject;
+
+import org.briarproject.api.contact.Contact;
+import org.briarproject.api.contact.ContactId;
+import org.briarproject.api.contact.ContactManager;
+import org.briarproject.api.db.DatabaseComponent;
+import org.briarproject.api.db.DbException;
+import org.briarproject.api.identity.Author;
+import org.briarproject.api.identity.AuthorId;
+
+import java.util.Collection;
+
+class ContactManagerImpl implements ContactManager {
+
+	private final DatabaseComponent db;
+
+	@Inject
+	ContactManagerImpl(DatabaseComponent db) {
+		this.db = db;
+	}
+
+	@Override
+	public ContactId addContact(Author remote, AuthorId local)
+			throws DbException {
+		return db.addContact(remote, local);
+	}
+
+	@Override
+	public Contact getContact(ContactId c) throws DbException {
+		return db.getContact(c);
+	}
+
+	@Override
+	public Collection<Contact> getContacts() throws DbException {
+		return db.getContacts();
+	}
+
+	@Override
+	public void removeContact(ContactId c) throws DbException {
+		db.removeContact(c);
+	}
+}
diff --git a/briar-core/src/org/briarproject/contact/ContactModule.java b/briar-core/src/org/briarproject/contact/ContactModule.java
new file mode 100644
index 0000000000..6bd786aa3b
--- /dev/null
+++ b/briar-core/src/org/briarproject/contact/ContactModule.java
@@ -0,0 +1,13 @@
+package org.briarproject.contact;
+
+import com.google.inject.AbstractModule;
+
+import org.briarproject.api.contact.ContactManager;
+
+public class ContactModule extends AbstractModule {
+
+	@Override
+	protected void configure() {
+		bind(ContactManager.class).to(ContactManagerImpl.class);
+	}
+}
diff --git a/briar-core/src/org/briarproject/forum/ForumManagerImpl.java b/briar-core/src/org/briarproject/forum/ForumManagerImpl.java
new file mode 100644
index 0000000000..06c902c98a
--- /dev/null
+++ b/briar-core/src/org/briarproject/forum/ForumManagerImpl.java
@@ -0,0 +1,93 @@
+package org.briarproject.forum;
+
+import com.google.inject.Inject;
+
+import org.briarproject.api.contact.Contact;
+import org.briarproject.api.contact.ContactId;
+import org.briarproject.api.db.DatabaseComponent;
+import org.briarproject.api.db.DbException;
+import org.briarproject.api.forum.ForumManager;
+import org.briarproject.api.sync.Group;
+import org.briarproject.api.sync.GroupId;
+import org.briarproject.api.sync.Message;
+import org.briarproject.api.sync.MessageHeader;
+import org.briarproject.api.sync.MessageId;
+
+import java.util.Collection;
+
+class ForumManagerImpl implements ForumManager {
+
+	private final DatabaseComponent db;
+
+	@Inject
+	ForumManagerImpl(DatabaseComponent db) {
+		this.db = db;
+	}
+
+	@Override
+	public boolean addGroup(Group g) throws DbException {
+		return db.addGroup(g);
+	}
+
+	@Override
+	public void addLocalMessage(Message m) throws DbException {
+		db.addLocalMessage(m);
+	}
+
+	@Override
+	public Collection<Group> getAvailableGroups() throws DbException {
+		return db.getAvailableGroups();
+	}
+
+	@Override
+	public Group getGroup(GroupId g) throws DbException {
+		return db.getGroup(g);
+	}
+
+	@Override
+	public Collection<Group> getGroups() throws DbException {
+		return db.getGroups();
+	}
+
+	@Override
+	public byte[] getMessageBody(MessageId m) throws DbException {
+		return db.getMessageBody(m);
+	}
+
+	@Override
+	public Collection<MessageHeader> getMessageHeaders(GroupId g)
+			throws DbException {
+		return db.getMessageHeaders(g);
+	}
+
+	@Override
+	public Collection<Contact> getSubscribers(GroupId g) throws DbException {
+		return db.getSubscribers(g);
+	}
+
+	@Override
+	public Collection<ContactId> getVisibility(GroupId g) throws DbException {
+		return db.getVisibility(g);
+	}
+
+	@Override
+	public void removeGroup(Group g) throws DbException {
+		db.removeGroup(g);
+	}
+
+	@Override
+	public void setReadFlag(MessageId m, boolean read) throws DbException {
+		db.setReadFlag(m, read);
+	}
+
+	@Override
+	public void setVisibility(GroupId g, Collection<ContactId> visible)
+			throws DbException {
+		db.setVisibility(g, visible);
+	}
+
+	@Override
+	public void setVisibleToAll(GroupId g, boolean all) throws DbException {
+		db.setVisibleToAll(g, all);
+	}
+}
diff --git a/briar-core/src/org/briarproject/forum/ForumModule.java b/briar-core/src/org/briarproject/forum/ForumModule.java
new file mode 100644
index 0000000000..0015457c1b
--- /dev/null
+++ b/briar-core/src/org/briarproject/forum/ForumModule.java
@@ -0,0 +1,13 @@
+package org.briarproject.forum;
+
+import com.google.inject.AbstractModule;
+
+import org.briarproject.api.forum.ForumManager;
+
+public class ForumModule extends AbstractModule {
+
+	@Override
+	protected void configure() {
+		bind(ForumManager.class).to(ForumManagerImpl.class);
+	}
+}
diff --git a/briar-core/src/org/briarproject/identity/IdentityManagerImpl.java b/briar-core/src/org/briarproject/identity/IdentityManagerImpl.java
new file mode 100644
index 0000000000..89e4f324d3
--- /dev/null
+++ b/briar-core/src/org/briarproject/identity/IdentityManagerImpl.java
@@ -0,0 +1,41 @@
+package org.briarproject.identity;
+
+import com.google.inject.Inject;
+
+import org.briarproject.api.db.DatabaseComponent;
+import org.briarproject.api.db.DbException;
+import org.briarproject.api.identity.AuthorId;
+import org.briarproject.api.identity.IdentityManager;
+import org.briarproject.api.identity.LocalAuthor;
+
+import java.util.Collection;
+
+class IdentityManagerImpl implements IdentityManager {
+
+	private final DatabaseComponent db;
+
+	@Inject
+	IdentityManagerImpl(DatabaseComponent db) {
+		this.db = db;
+	}
+
+	@Override
+	public void addLocalAuthor(LocalAuthor a) throws DbException {
+		db.addLocalAuthor(a);
+	}
+
+	@Override
+	public LocalAuthor getLocalAuthor(AuthorId a) throws DbException {
+		return db.getLocalAuthor(a);
+	}
+
+	@Override
+	public Collection<LocalAuthor> getLocalAuthors() throws DbException {
+		return db.getLocalAuthors();
+	}
+
+	@Override
+	public void removeLocalAuthor(AuthorId a) throws DbException {
+		db.removeLocalAuthor(a);
+	}
+}
diff --git a/briar-core/src/org/briarproject/identity/IdentityModule.java b/briar-core/src/org/briarproject/identity/IdentityModule.java
new file mode 100644
index 0000000000..98134d1992
--- /dev/null
+++ b/briar-core/src/org/briarproject/identity/IdentityModule.java
@@ -0,0 +1,13 @@
+package org.briarproject.identity;
+
+import com.google.inject.AbstractModule;
+
+import org.briarproject.api.identity.IdentityManager;
+
+public class IdentityModule extends AbstractModule {
+
+	@Override
+	protected void configure() {
+		bind(IdentityManager.class).to(IdentityManagerImpl.class);
+	}
+}
diff --git a/briar-core/src/org/briarproject/messaging/MessagingManagerImpl.java b/briar-core/src/org/briarproject/messaging/MessagingManagerImpl.java
new file mode 100644
index 0000000000..b3929a1ed7
--- /dev/null
+++ b/briar-core/src/org/briarproject/messaging/MessagingManagerImpl.java
@@ -0,0 +1,66 @@
+package org.briarproject.messaging;
+
+import com.google.inject.Inject;
+
+import org.briarproject.api.contact.ContactId;
+import org.briarproject.api.db.DatabaseComponent;
+import org.briarproject.api.db.DbException;
+import org.briarproject.api.messaging.MessagingManager;
+import org.briarproject.api.sync.Group;
+import org.briarproject.api.sync.GroupId;
+import org.briarproject.api.sync.Message;
+import org.briarproject.api.sync.MessageHeader;
+import org.briarproject.api.sync.MessageId;
+
+import java.util.Collection;
+
+class MessagingManagerImpl implements MessagingManager {
+
+	private final DatabaseComponent db;
+
+	@Inject
+	MessagingManagerImpl(DatabaseComponent db) {
+		this.db = db;
+	}
+
+	@Override
+	public boolean addGroup(Group g) throws DbException {
+		return db.addGroup(g);
+	}
+
+	@Override
+	public void addLocalMessage(Message m) throws DbException {
+		db.addLocalMessage(m);
+	}
+
+	@Override
+	public Group getGroup(GroupId g) throws DbException {
+		return db.getGroup(g);
+	}
+
+	@Override
+	public GroupId getInboxGroupId(ContactId c) throws DbException {
+		return db.getInboxGroupId(c);
+	}
+
+	@Override
+	public Collection<MessageHeader> getInboxMessageHeaders(ContactId c)
+			throws DbException {
+		return db.getInboxMessageHeaders(c);
+	}
+
+	@Override
+	public byte[] getMessageBody(MessageId m) throws DbException {
+		return db.getMessageBody(m);
+	}
+
+	@Override
+	public void setInboxGroup(ContactId c, Group g) throws DbException {
+		db.setInboxGroup(c, g);
+	}
+
+	@Override
+	public void setReadFlag(MessageId m, boolean read) throws DbException {
+		db.setReadFlag(m, read);
+	}
+}
diff --git a/briar-core/src/org/briarproject/messaging/MessagingModule.java b/briar-core/src/org/briarproject/messaging/MessagingModule.java
new file mode 100644
index 0000000000..762e9c76dc
--- /dev/null
+++ b/briar-core/src/org/briarproject/messaging/MessagingModule.java
@@ -0,0 +1,13 @@
+package org.briarproject.messaging;
+
+import com.google.inject.AbstractModule;
+
+import org.briarproject.api.messaging.MessagingManager;
+
+public class MessagingModule extends AbstractModule {
+
+	@Override
+	protected void configure() {
+		bind(MessagingManager.class).to(MessagingManagerImpl.class);
+	}
+}
diff --git a/briar-core/src/org/briarproject/sync/MessagingModule.java b/briar-core/src/org/briarproject/sync/SyncModule.java
similarity index 97%
rename from briar-core/src/org/briarproject/sync/MessagingModule.java
rename to briar-core/src/org/briarproject/sync/SyncModule.java
index d73de1a7c5..1caef5bf1f 100644
--- a/briar-core/src/org/briarproject/sync/MessagingModule.java
+++ b/briar-core/src/org/briarproject/sync/SyncModule.java
@@ -19,7 +19,7 @@ import org.briarproject.api.sync.UnverifiedMessage;
 
 import javax.inject.Singleton;
 
-public class MessagingModule extends AbstractModule {
+public class SyncModule extends AbstractModule {
 
 	@Override
 	protected void configure() {
diff --git a/briar-tests/src/org/briarproject/ProtocolIntegrationTest.java b/briar-tests/src/org/briarproject/ProtocolIntegrationTest.java
index d942de487f..807b04c185 100644
--- a/briar-tests/src/org/briarproject/ProtocolIntegrationTest.java
+++ b/briar-tests/src/org/briarproject/ProtocolIntegrationTest.java
@@ -34,7 +34,7 @@ import org.briarproject.crypto.CryptoModule;
 import org.briarproject.data.DataModule;
 import org.briarproject.db.DatabaseModule;
 import org.briarproject.event.EventModule;
-import org.briarproject.sync.MessagingModule;
+import org.briarproject.sync.SyncModule;
 import org.briarproject.transport.TransportModule;
 import org.junit.Test;
 
@@ -72,7 +72,7 @@ public class ProtocolIntegrationTest extends BriarTestCase {
 		Injector i = Guice.createInjector(new TestDatabaseModule(),
 				new TestLifecycleModule(), new TestSystemModule(),
 				new CryptoModule(), new DatabaseModule(), new EventModule(),
-				new MessagingModule(), new DataModule(),
+				new SyncModule(), new DataModule(),
 				new TransportModule());
 		streamReaderFactory = i.getInstance(StreamReaderFactory.class);
 		streamWriterFactory = i.getInstance(StreamWriterFactory.class);
diff --git a/briar-tests/src/org/briarproject/sync/ConstantsTest.java b/briar-tests/src/org/briarproject/sync/ConstantsTest.java
index c823206a49..00149a8a01 100644
--- a/briar-tests/src/org/briarproject/sync/ConstantsTest.java
+++ b/briar-tests/src/org/briarproject/sync/ConstantsTest.java
@@ -65,7 +65,7 @@ public class ConstantsTest extends BriarTestCase {
 		Injector i = Guice.createInjector(new TestDatabaseModule(),
 				new TestLifecycleModule(), new TestSystemModule(),
 				new CryptoModule(), new DatabaseModule(), new EventModule(),
-				new org.briarproject.sync.MessagingModule(), new DataModule());
+				new SyncModule(), new DataModule());
 		crypto = i.getInstance(CryptoComponent.class);
 		groupFactory = i.getInstance(GroupFactory.class);
 		authorFactory = i.getInstance(AuthorFactory.class);
diff --git a/briar-tests/src/org/briarproject/sync/SimplexMessagingIntegrationTest.java b/briar-tests/src/org/briarproject/sync/SimplexMessagingIntegrationTest.java
index 04db6db752..7cb2ed9b35 100644
--- a/briar-tests/src/org/briarproject/sync/SimplexMessagingIntegrationTest.java
+++ b/briar-tests/src/org/briarproject/sync/SimplexMessagingIntegrationTest.java
@@ -87,7 +87,7 @@ public class SimplexMessagingIntegrationTest extends BriarTestCase {
 		return Guice.createInjector(new TestDatabaseModule(dir),
 				new TestLifecycleModule(), new TestSystemModule(),
 				new CryptoModule(), new DatabaseModule(), new EventModule(),
-				new org.briarproject.sync.MessagingModule(), new DataModule(),
+				new SyncModule(), new DataModule(),
 				new TransportModule());
 	}
 
-- 
GitLab