1 package com.atlassian.plugin.metadata;
2
3 import com.atlassian.plugin.PluginAccessor;
4 import org.slf4j.Logger;
5 import org.slf4j.LoggerFactory;
6
7 import java.util.Collection;
8 import java.util.HashSet;
9
10 public class DefaultRequiredPluginValidator implements RequiredPluginValidator
11 {
12 private static final Logger log = LoggerFactory.getLogger(DefaultRequiredPluginValidator.class);
13 private final PluginAccessor pluginAccessor;
14 private final RequiredPluginProvider requiredPluginProvider;
15 private final Collection<String> errors;
16
17 public DefaultRequiredPluginValidator(final PluginAccessor pluginAccessor, final RequiredPluginProvider requiredPluginProvider)
18 {
19 this.pluginAccessor = pluginAccessor;
20 this.requiredPluginProvider = requiredPluginProvider;
21 errors = new HashSet<String>();
22 }
23
24 @Override
25 public Collection<String> validate()
26 {
27 for (String key : requiredPluginProvider.getRequiredPluginKeys())
28 {
29 if (!pluginAccessor.isPluginEnabled(key))
30 {
31 log.error("Plugin Not Enabled: " + key);
32 errors.add(key);
33 }
34 }
35
36 for (String key : requiredPluginProvider.getRequiredModuleKeys())
37 {
38 if (!pluginAccessor.isPluginModuleEnabled(key))
39 {
40 log.error("Plugin Module Not Enabled: " + key);
41 errors.add(key);
42 }
43 }
44
45 return errors;
46 }
47 }