1 package com.atlassian.plugin.manager;
2
3 import com.atlassian.plugin.Plugin;
4 import com.atlassian.plugin.PluginRegistry;
5 import io.atlassian.util.concurrent.CopyOnWriteMap;
6
7 import java.util.Collection;
8 import java.util.Map;
9
10 public final class PluginRegistryImpl implements PluginRegistry.ReadWrite {
11 private final Map<String, Plugin> plugins;
12
13 public PluginRegistryImpl() {
14 this.plugins = CopyOnWriteMap.<String, Plugin>builder().stableViews().newHashMap();
15 }
16
17 @Override
18 public Collection<Plugin> getAll() {
19 return plugins.values();
20 }
21
22 public Plugin get(final String pluginKey) {
23 return plugins.get(pluginKey);
24 }
25
26 @Override
27 public void clear() {
28 plugins.clear();
29 }
30
31 @Override
32 public void put(final Plugin plugin) {
33 plugins.put(plugin.getKey(), plugin);
34 }
35
36 @Override
37 public Plugin remove(final String key) {
38 return plugins.remove(key);
39 }
40 }