View Javadoc

1   package com.atlassian.plugin.loaders;
2   
3   import com.atlassian.plugin.ModuleDescriptorFactory;
4   import com.atlassian.plugin.Plugin;
5   import com.atlassian.plugin.PluginArtifact;
6   import com.atlassian.plugin.PluginException;
7   import com.atlassian.plugin.PluginParseException;
8   import com.google.common.collect.ForwardingObject;
9   
10  import static com.google.common.base.Preconditions.checkNotNull;
11  
12  abstract class ForwardingPluginLoader extends ForwardingObject implements DynamicPluginLoader
13  {
14      private final PluginLoader delegate;
15  
16      protected ForwardingPluginLoader(PluginLoader delegate)
17      {
18          this.delegate = checkNotNull(delegate);
19      }
20  
21      @Override
22      protected final PluginLoader delegate()
23      {
24          return delegate;
25      }
26  
27      @Override
28      public Iterable<Plugin> loadAllPlugins(ModuleDescriptorFactory moduleDescriptorFactory) throws PluginParseException
29      {
30          return delegate().loadAllPlugins(moduleDescriptorFactory);
31      }
32  
33      @Override
34      public Iterable<Plugin> loadFoundPlugins(ModuleDescriptorFactory moduleDescriptorFactory) throws PluginParseException
35      {
36          return delegate().loadFoundPlugins(moduleDescriptorFactory);
37      }
38  
39      @Override
40      public boolean supportsAddition()
41      {
42          return delegate().supportsAddition();
43      }
44  
45      @Override
46      public boolean supportsRemoval()
47      {
48          return delegate().supportsRemoval();
49      }
50  
51      @Override
52      public void removePlugin(Plugin plugin) throws PluginException
53      {
54          delegate().removePlugin(plugin);
55      }
56  
57      @Override
58      public boolean isDynamicPluginLoader()
59      {
60          return delegate().isDynamicPluginLoader();
61      }
62  
63      @Override
64      public String canLoad(PluginArtifact pluginArtifact) throws PluginParseException
65      {
66          if (isDynamicPluginLoader())
67          {
68              return ((DynamicPluginLoader)delegate()).canLoad(pluginArtifact);
69          }
70          else
71          {
72              throw new IllegalStateException("Should not call on non-dynamic plugin loader");
73          }
74      }
75  }