View Javadoc

1   package com.atlassian.plugin.web.model;
2   
3   import com.atlassian.plugin.web.ContextProvider;
4   import com.atlassian.plugin.web.WebFragmentHelper;
5   import com.atlassian.plugin.web.descriptors.WebFragmentModuleDescriptor;
6   import com.atlassian.plugin.loaders.LoaderUtils;
7   
8   import java.util.Map;
9   import java.util.TreeMap;
10  import java.util.SortedMap;
11  
12  import org.dom4j.Element;
13  
14  /**
15   * Represents a sorted map of parameters. Individual value of the param can be rendered using velocity.
16   */
17  public class DefaultWebParam extends AbstractWebItem implements WebParam
18  {
19      /**
20       * parameters are sorted in order for the i18n arguments to be in order
21       */
22      protected SortedMap params;
23  
24      public DefaultWebParam(Element element, WebFragmentHelper webFragmentHelper, ContextProvider contextProvider, WebFragmentModuleDescriptor descriptor)
25      {
26          super(webFragmentHelper, contextProvider, descriptor);
27          this.params =  new TreeMap(LoaderUtils.getParams(element));
28      }
29  
30      public DefaultWebParam(Map params, WebFragmentHelper webFragmentHelper, ContextProvider contextProvider, WebFragmentModuleDescriptor descriptor)
31      {
32          super(webFragmentHelper, contextProvider, descriptor);
33          this.params = new TreeMap(params);
34      }
35  
36      public SortedMap getParams()
37      {
38          return params;
39      }
40  
41      public Object get(String key)
42      {
43          return params.get(key);
44      }
45  
46      public String getRenderedParam(String paramKey, Map context)
47      {
48          context.putAll(getContextMap(context));
49          return getWebFragmentHelper().renderVelocityFragment((String) params.get(paramKey), context);
50      }
51  }