From efa06527c9a4f2080f383ee09beafd16b02a20f4 Mon Sep 17 00:00:00 2001
From: akwizgran <akwizgran@users.sourceforge.net>
Date: Tue, 8 Mar 2016 16:18:52 +0000
Subject: [PATCH] Moved validation interfaces into respective managers.

---
 .../api/clients/MessageQueueManager.java        | 14 ++++++++++++++
 .../api/clients/QueueMessageValidator.java      | 13 -------------
 .../briarproject/api/sync/MessageValidator.java | 12 ------------
 .../api/sync/ValidationManager.java             | 13 +++++++++++++
 .../clients/BdfMessageValidator.java            |  6 +++---
 .../clients/MessageQueueManagerImpl.java        |  4 +---
 .../sync/ValidationManagerImpl.java             |  4 ++--
 .../sync/ValidationManagerImplTest.java         | 17 +++++++++++------
 8 files changed, 44 insertions(+), 39 deletions(-)
 delete mode 100644 briar-api/src/org/briarproject/api/clients/QueueMessageValidator.java
 delete mode 100644 briar-api/src/org/briarproject/api/sync/MessageValidator.java

diff --git a/briar-api/src/org/briarproject/api/clients/MessageQueueManager.java b/briar-api/src/org/briarproject/api/clients/MessageQueueManager.java
index def27a6674..52bb298ac4 100644
--- a/briar-api/src/org/briarproject/api/clients/MessageQueueManager.java
+++ b/briar-api/src/org/briarproject/api/clients/MessageQueueManager.java
@@ -31,7 +31,21 @@ public interface MessageQueueManager {
 	 */
 	void registerIncomingMessageHook(ClientId c, IncomingQueueMessageHook hook);
 
+	interface QueueMessageValidator {
+
+		/**
+		 * Validates the given message and returns its metadata if the message
+		 * is valid, or null if the message is invalid.
+		 */
+		Metadata validateMessage(QueueMessage q, Group g);
+	}
+
 	interface IncomingQueueMessageHook {
+
+		/**
+		 * Called once for each incoming message that passes validation.
+		 * Messages are passed to the hook in order.
+		 */
 		void incomingMessage(Transaction txn, QueueMessage q, Metadata meta)
 				throws DbException;
 	}
diff --git a/briar-api/src/org/briarproject/api/clients/QueueMessageValidator.java b/briar-api/src/org/briarproject/api/clients/QueueMessageValidator.java
deleted file mode 100644
index 1d25b2039d..0000000000
--- a/briar-api/src/org/briarproject/api/clients/QueueMessageValidator.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.briarproject.api.clients;
-
-import org.briarproject.api.db.Metadata;
-import org.briarproject.api.sync.Group;
-
-public interface QueueMessageValidator {
-
-	/**
-	 * Validates the given message and returns its metadata if the message
-	 * is valid, or null if the message is invalid.
-	 */
-	Metadata validateMessage(QueueMessage q, Group g);
-}
diff --git a/briar-api/src/org/briarproject/api/sync/MessageValidator.java b/briar-api/src/org/briarproject/api/sync/MessageValidator.java
deleted file mode 100644
index 58ee5dc2b9..0000000000
--- a/briar-api/src/org/briarproject/api/sync/MessageValidator.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.briarproject.api.sync;
-
-import org.briarproject.api.db.Metadata;
-
-public interface MessageValidator {
-
-	/**
-	 * Validates the given message and returns its metadata if the message
-	 * is valid, or null if the message is invalid.
-	 */
-	Metadata validateMessage(Message m, Group g);
-}
diff --git a/briar-api/src/org/briarproject/api/sync/ValidationManager.java b/briar-api/src/org/briarproject/api/sync/ValidationManager.java
index 2342afdbc2..abea827e2b 100644
--- a/briar-api/src/org/briarproject/api/sync/ValidationManager.java
+++ b/briar-api/src/org/briarproject/api/sync/ValidationManager.java
@@ -41,7 +41,20 @@ public interface ValidationManager {
 	 */
 	void registerIncomingMessageHook(ClientId c, IncomingMessageHook hook);
 
+	interface MessageValidator {
+
+		/**
+		 * Validates the given message and returns its metadata if the message
+		 * is valid, or null if the message is invalid.
+		 */
+		Metadata validateMessage(Message m, Group g);
+	}
+
 	interface IncomingMessageHook {
+
+		/**
+		 * Called once for each incoming message that passes validation.
+		 */
 		void incomingMessage(Transaction txn, Message m, Metadata meta)
 				throws DbException;
 	}
diff --git a/briar-core/src/org/briarproject/clients/BdfMessageValidator.java b/briar-core/src/org/briarproject/clients/BdfMessageValidator.java
index abf9d344a9..a2d97cfd31 100644
--- a/briar-core/src/org/briarproject/clients/BdfMessageValidator.java
+++ b/briar-core/src/org/briarproject/clients/BdfMessageValidator.java
@@ -2,15 +2,15 @@ package org.briarproject.clients;
 
 import org.briarproject.api.FormatException;
 import org.briarproject.api.clients.ClientHelper;
+import org.briarproject.api.clients.MessageQueueManager.QueueMessageValidator;
 import org.briarproject.api.clients.QueueMessage;
-import org.briarproject.api.clients.QueueMessageValidator;
 import org.briarproject.api.data.BdfDictionary;
 import org.briarproject.api.data.BdfList;
 import org.briarproject.api.data.MetadataEncoder;
 import org.briarproject.api.db.Metadata;
 import org.briarproject.api.sync.Group;
 import org.briarproject.api.sync.Message;
-import org.briarproject.api.sync.MessageValidator;
+import org.briarproject.api.sync.ValidationManager.MessageValidator;
 import org.briarproject.api.system.Clock;
 import org.briarproject.util.StringUtils;
 
@@ -104,7 +104,7 @@ public abstract class BdfMessageValidator implements MessageValidator,
 	}
 
 	protected void checkSize(BdfList list, int minSize, int maxSize)
-		throws FormatException {
+			throws FormatException {
 		if (list != null) {
 			if (list.size() < minSize) throw new FormatException();
 			if (list.size() > maxSize) throw new FormatException();
diff --git a/briar-core/src/org/briarproject/clients/MessageQueueManagerImpl.java b/briar-core/src/org/briarproject/clients/MessageQueueManagerImpl.java
index 5889cecdfc..2ff63133a3 100644
--- a/briar-core/src/org/briarproject/clients/MessageQueueManagerImpl.java
+++ b/briar-core/src/org/briarproject/clients/MessageQueueManagerImpl.java
@@ -5,7 +5,6 @@ import org.briarproject.api.clients.ClientHelper;
 import org.briarproject.api.clients.MessageQueueManager;
 import org.briarproject.api.clients.QueueMessage;
 import org.briarproject.api.clients.QueueMessageFactory;
-import org.briarproject.api.clients.QueueMessageValidator;
 import org.briarproject.api.data.BdfDictionary;
 import org.briarproject.api.data.BdfList;
 import org.briarproject.api.db.DatabaseComponent;
@@ -17,7 +16,6 @@ import org.briarproject.api.sync.Group;
 import org.briarproject.api.sync.GroupId;
 import org.briarproject.api.sync.Message;
 import org.briarproject.api.sync.MessageId;
-import org.briarproject.api.sync.MessageValidator;
 import org.briarproject.api.sync.ValidationManager;
 import org.briarproject.api.sync.ValidationManager.IncomingMessageHook;
 import org.briarproject.util.ByteUtils;
@@ -146,7 +144,7 @@ class MessageQueueManagerImpl implements MessageQueueManager {
 	}
 
 	private static class DelegatingMessageValidator
-			implements MessageValidator {
+			implements ValidationManager.MessageValidator {
 
 		private final QueueMessageValidator delegate;
 
diff --git a/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java b/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java
index c6196944d5..949dcc516e 100644
--- a/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java
+++ b/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java
@@ -20,7 +20,6 @@ import org.briarproject.api.sync.Group;
 import org.briarproject.api.sync.GroupId;
 import org.briarproject.api.sync.Message;
 import org.briarproject.api.sync.MessageId;
-import org.briarproject.api.sync.MessageValidator;
 import org.briarproject.api.sync.ValidationManager;
 import org.briarproject.util.ByteUtils;
 
@@ -74,7 +73,8 @@ class ValidationManagerImpl implements ValidationManager, Service,
 	}
 
 	@Override
-	public void registerIncomingMessageHook(ClientId c, IncomingMessageHook hook) {
+	public void registerIncomingMessageHook(ClientId c,
+			IncomingMessageHook hook) {
 		hooks.put(c, hook);
 	}
 
diff --git a/briar-tests/src/org/briarproject/sync/ValidationManagerImplTest.java b/briar-tests/src/org/briarproject/sync/ValidationManagerImplTest.java
index a3058745e8..d883a1ef20 100644
--- a/briar-tests/src/org/briarproject/sync/ValidationManagerImplTest.java
+++ b/briar-tests/src/org/briarproject/sync/ValidationManagerImplTest.java
@@ -16,8 +16,8 @@ import org.briarproject.api.sync.Group;
 import org.briarproject.api.sync.GroupId;
 import org.briarproject.api.sync.Message;
 import org.briarproject.api.sync.MessageId;
-import org.briarproject.api.sync.MessageValidator;
 import org.briarproject.api.sync.ValidationManager.IncomingMessageHook;
+import org.briarproject.api.sync.ValidationManager.MessageValidator;
 import org.briarproject.util.ByteUtils;
 import org.jmock.Expectations;
 import org.jmock.Mockery;
@@ -56,7 +56,8 @@ public class ValidationManagerImplTest extends BriarTestCase {
 		final Executor dbExecutor = new ImmediateExecutor();
 		final Executor cryptoExecutor = new ImmediateExecutor();
 		final MessageValidator validator = context.mock(MessageValidator.class);
-		final IncomingMessageHook hook = context.mock(IncomingMessageHook.class);
+		final IncomingMessageHook hook =
+				context.mock(IncomingMessageHook.class);
 		final Transaction txn = new Transaction(null);
 		final Transaction txn1 = new Transaction(null);
 		final Transaction txn2 = new Transaction(null);
@@ -124,7 +125,8 @@ public class ValidationManagerImplTest extends BriarTestCase {
 		final Executor dbExecutor = new ImmediateExecutor();
 		final Executor cryptoExecutor = new ImmediateExecutor();
 		final MessageValidator validator = context.mock(MessageValidator.class);
-		final IncomingMessageHook hook = context.mock(IncomingMessageHook.class);
+		final IncomingMessageHook hook =
+				context.mock(IncomingMessageHook.class);
 		final Transaction txn = new Transaction(null);
 		final Transaction txn1 = new Transaction(null);
 		final Transaction txn2 = new Transaction(null);
@@ -177,7 +179,8 @@ public class ValidationManagerImplTest extends BriarTestCase {
 		final Executor dbExecutor = new ImmediateExecutor();
 		final Executor cryptoExecutor = new ImmediateExecutor();
 		final MessageValidator validator = context.mock(MessageValidator.class);
-		final IncomingMessageHook hook = context.mock(IncomingMessageHook.class);
+		final IncomingMessageHook hook =
+				context.mock(IncomingMessageHook.class);
 		final Transaction txn = new Transaction(null);
 		final Transaction txn1 = new Transaction(null);
 		final Transaction txn2 = new Transaction(null);
@@ -232,7 +235,8 @@ public class ValidationManagerImplTest extends BriarTestCase {
 		final Executor dbExecutor = new ImmediateExecutor();
 		final Executor cryptoExecutor = new ImmediateExecutor();
 		final MessageValidator validator = context.mock(MessageValidator.class);
-		final IncomingMessageHook hook = context.mock(IncomingMessageHook.class);
+		final IncomingMessageHook hook =
+				context.mock(IncomingMessageHook.class);
 		final Transaction txn = new Transaction(null);
 		final Transaction txn1 = new Transaction(null);
 		context.checking(new Expectations() {{
@@ -272,7 +276,8 @@ public class ValidationManagerImplTest extends BriarTestCase {
 		final Executor dbExecutor = new ImmediateExecutor();
 		final Executor cryptoExecutor = new ImmediateExecutor();
 		final MessageValidator validator = context.mock(MessageValidator.class);
-		final IncomingMessageHook hook = context.mock(IncomingMessageHook.class);
+		final IncomingMessageHook hook =
+				context.mock(IncomingMessageHook.class);
 
 		ValidationManagerImpl vm = new ValidationManagerImpl(db, dbExecutor,
 				cryptoExecutor);
-- 
GitLab