View Javadoc

1   package com.atlassian.plugin.web.descriptors;
2   
3   import com.atlassian.plugin.Plugin;
4   import com.atlassian.plugin.PluginParseException;
5   import com.atlassian.plugin.StateAware;
6   import com.atlassian.plugin.elements.ResourceDescriptor;
7   import com.atlassian.plugin.elements.ResourceLocation;
8   import com.atlassian.plugin.web.Condition;
9   import com.atlassian.plugin.web.ContextProvider;
10  import com.atlassian.plugin.web.WebInterfaceManager;
11  import com.atlassian.plugin.web.model.WebLabel;
12  import com.atlassian.plugin.web.model.WebParam;
13  
14  import org.dom4j.Element;
15  
16  import java.util.List;
17  import java.util.Map;
18  
19  /**
20   * Wrapper for {@link WebFragmentModuleDescriptor}, so that it could be extended by application specific
21   * 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<T> 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 decoratedDescriptor.getModule();
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<T> abstractWebFragmentModuleDescriptor = (AbstractWebFragmentModuleDescriptor<T>) 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     //----------------------------------------------------------------------------------------- ModuleDescriptor methods
113     public String getCompleteKey()
114     {
115         return decoratedDescriptor.getCompleteKey();
116     }
117 
118     public String getPluginKey()
119     {
120         return decoratedDescriptor.getPluginKey();
121     }
122 
123     public String getName()
124     {
125         return decoratedDescriptor.getName();
126     }
127 
128     public String getDescription()
129     {
130         return decoratedDescriptor.getDescription();
131     }
132 
133     public Class<T> getModuleClass()
134     {
135         return decoratedDescriptor.getModuleClass();
136     }
137 
138     public void init(final Plugin plugin, final Element element) throws PluginParseException
139     {
140         decoratedDescriptor.init(plugin, element);
141     }
142 
143     public boolean isEnabledByDefault()
144     {
145         return decoratedDescriptor.isEnabledByDefault();
146     }
147 
148     public boolean isSystemModule()
149     {
150         return decoratedDescriptor.isSystemModule();
151     }
152 
153     public void destroy(final Plugin plugin)
154     {
155         decoratedDescriptor.destroy(plugin);
156     }
157 
158     public Float getMinJavaVersion()
159     {
160         return decoratedDescriptor.getMinJavaVersion();
161     }
162 
163     public boolean satisfiesMinJavaVersion()
164     {
165         return decoratedDescriptor.satisfiesMinJavaVersion();
166     }
167 
168     public Map<String, String> getParams()
169     {
170         return decoratedDescriptor.getParams();
171     }
172 
173     //------------------------------------------------------------------------------------------------ Resourced methods
174 
175     public List<ResourceDescriptor> getResourceDescriptors()
176     {
177         return decoratedDescriptor.getResourceDescriptors();
178     }
179 
180     public List<ResourceDescriptor> getResourceDescriptors(final String type)
181     {
182         return decoratedDescriptor.getResourceDescriptors(type);
183     }
184 
185     public ResourceLocation getResourceLocation(final String type, final String name)
186     {
187         return decoratedDescriptor.getResourceLocation(type, name);
188     }
189 
190     public ResourceDescriptor getResourceDescriptor(final String type, final String name)
191     {
192         return decoratedDescriptor.getResourceDescriptor(type, name);
193     }
194 
195     @Override
196     public String toString()
197     {
198         return decoratedDescriptor.toString();
199     }
200 }