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