1 package com.atlassian.messagequeue.internal.core;
2
3 import com.atlassian.messagequeue.MessageValidatorKey;
4 import com.atlassian.messagequeue.registry.MessageValidator;
5 import com.atlassian.messagequeue.registry.MessageValidatorRegistryService;
6
7 import javax.annotation.concurrent.ThreadSafe;
8 import java.util.Collection;
9 import java.util.concurrent.ConcurrentHashMap;
10 import java.util.concurrent.ConcurrentMap;
11
12
13
14
15
16
17
18 @ThreadSafe
19 public class DefaultMessageValidatorRegistryService implements MessageValidatorRegistryService, MessageValidatorRegistryHelper {
20 private final ConcurrentMap<MessageValidatorKey, MessageValidator> registry;
21
22 public DefaultMessageValidatorRegistryService() {
23 this.registry = new ConcurrentHashMap<>();
24 }
25
26 @Override
27 public void registerMessageValidator(MessageValidatorKey messageRunnerKey, MessageValidator messageRunner) {
28 registry.put(messageRunnerKey, messageRunner);
29 }
30
31 @Override
32 public void unregisterMessageValidator(MessageValidatorKey messageRunnerKey) {
33 registry.remove(messageRunnerKey);
34 }
35
36 @Override
37 public Collection<MessageValidator> getAllValidators() {
38 return registry.values();
39 }
40 }