View Javadoc

1   package com.atlassian.plugin.web.descriptors;
2   
3   import java.util.List;
4   import java.util.Map;
5   
6   import org.dom4j.Element;
7   
8   import com.atlassian.plugin.Plugin;
9   import com.atlassian.plugin.PluginParseException;
10  import com.atlassian.plugin.StateAware;
11  import com.atlassian.plugin.elements.ResourceDescriptor;
12  import com.atlassian.plugin.elements.ResourceLocation;
13  import com.atlassian.plugin.web.Condition;
14  import com.atlassian.plugin.web.ContextProvider;
15  import com.atlassian.plugin.web.WebInterfaceManager;
16  import com.atlassian.plugin.web.model.WebLabel;
17  import com.atlassian.plugin.web.model.WebParam;
18  
19  /**
20   * Wrapper for {@link WebFragmentModuleDescriptor}, so that it could be extended
21   * by application specific wrappers to provide additional methods.
22   */
23  public class DefaultAbstractWebFragmentModuleDescriptor<T> implements StateAware, WebFragmentModuleDescriptor<T>
24  {
25      private final WebFragmentModuleDescriptor<T> decoratedDescriptor;
26  
27      public DefaultAbstractWebFragmentModuleDescriptor(final WebFragmentModuleDescriptor<T> abstractDescriptor)
28      {
29          decoratedDescriptor = abstractDescriptor;
30      }
31  
32      public void enabled()
33      {
34          decoratedDescriptor.enabled();
35      }
36  
37      public void disabled()
38      {
39          decoratedDescriptor.disabled();
40      }
41  
42      protected WebFragmentModuleDescriptor getDecoratedDescriptor()
43      {
44          return decoratedDescriptor;
45      }
46  
47      public int getWeight()
48      {
49          return decoratedDescriptor.getWeight();
50      }
51  
52      public String getKey()
53      {
54          return decoratedDescriptor.getKey();
55      }
56  
57      public T getModule()
58      {
59          return null;
60      }
61  
62      public String getI18nNameKey()
63      {
64          return decoratedDescriptor.getI18nNameKey();
65      }
66  
67      public String getDescriptionKey()
68      {
69          return decoratedDescriptor.getDescriptionKey();
70      }
71  
72      public Plugin getPlugin()
73      {
74          return decoratedDescriptor.getPlugin();
75      }
76  
77      public WebLabel getWebLabel()
78      {
79          return decoratedDescriptor.getWebLabel();
80      }
81  
82      public WebLabel getTooltip()
83      {
84          return decoratedDescriptor.getTooltip();
85      }
86  
87      public void setWebInterfaceManager(final WebInterfaceManager webInterfaceManager)
88      {
89          // bit of a hack but it works :)
90          if (decoratedDescriptor instanceof AbstractWebFragmentModuleDescriptor)
91          {
92              final AbstractWebFragmentModuleDescriptor abstractWebFragmentModuleDescriptor = (AbstractWebFragmentModuleDescriptor) decoratedDescriptor;
93              abstractWebFragmentModuleDescriptor.setWebInterfaceManager(webInterfaceManager);
94          }
95      }
96  
97      public Condition getCondition()
98      {
99          return decoratedDescriptor.getCondition();
100     }
101 
102     public ContextProvider getContextProvider()
103     {
104         return decoratedDescriptor.getContextProvider();
105     }
106 
107     public WebParam getWebParams()
108     {
109         return decoratedDescriptor.getWebParams();
110     }
111 
112     // -----------------------------------------------------------------------------------------
113     // ModuleDescriptor methods
114     public String getCompleteKey()
115     {
116         return decoratedDescriptor.getCompleteKey();
117     }
118 
119     public String getPluginKey()
120     {
121         return decoratedDescriptor.getPluginKey();
122     }
123 
124     public String getName()
125     {
126         return decoratedDescriptor.getName();
127     }
128 
129     public String getDescription()
130     {
131         return decoratedDescriptor.getDescription();
132     }
133 
134     public Class<T> getModuleClass()
135     {
136         return decoratedDescriptor.getModuleClass();
137     }
138 
139     public void init(final Plugin plugin, final Element element) throws PluginParseException
140     {
141         decoratedDescriptor.init(plugin, element);
142     }
143 
144     public boolean isEnabledByDefault()
145     {
146         return decoratedDescriptor.isEnabledByDefault();
147     }
148 
149     public boolean isSystemModule()
150     {
151         return decoratedDescriptor.isSystemModule();
152     }
153 
154     public void destroy(final Plugin plugin)
155     {
156         decoratedDescriptor.destroy(plugin);
157     }
158 
159     public Float getMinJavaVersion()
160     {
161         return decoratedDescriptor.getMinJavaVersion();
162     }
163 
164     public boolean satisfiesMinJavaVersion()
165     {
166         return decoratedDescriptor.satisfiesMinJavaVersion();
167     }
168 
169     public Map<String, String> getParams()
170     {
171         return decoratedDescriptor.getParams();
172     }
173 
174     // ------------------------------------------------------------------------------------------------
175     // Resourced methods
176 
177     public List<ResourceDescriptor> getResourceDescriptors()
178     {
179         return decoratedDescriptor.getResourceDescriptors();
180     }
181 
182     /**
183      * @deprecated since 2.5.0 use {@link #getResourceDescriptors()} and filter
184      *             as required
185      */
186     @Deprecated
187     public List<ResourceDescriptor> getResourceDescriptors(final String type)
188     {
189         return decoratedDescriptor.getResourceDescriptors(type);
190     }
191 
192     public ResourceLocation getResourceLocation(final String type, final String name)
193     {
194         return decoratedDescriptor.getResourceLocation(type, name);
195     }
196 
197     public ResourceDescriptor getResourceDescriptor(final String type, final String name)
198     {
199         return decoratedDescriptor.getResourceDescriptor(type, name);
200     }
201 
202     @Override
203     public String toString()
204     {
205         return decoratedDescriptor.toString();
206     }
207 }