View Javadoc

1   package com.atlassian.plugin.webresource;
2   
3   import org.apache.commons.lang.StringUtils;
4   import org.apache.commons.lang.BooleanUtils;
5   
6   import java.util.Map;
7   import java.util.List;
8   import java.util.Arrays;
9   
10  class CssWebResourceFormatter extends AbstractWebResourceFormatter
11  {
12      private static final String CSS_EXTENSION = ".css";
13      private static final List<String> HANDLED_PARAMETERS = Arrays.asList("title", "media", "charset");
14  
15      public boolean matches(String name)
16      {
17          return name != null && name.endsWith(CSS_EXTENSION);
18      }
19  
20      public String formatResource(String url, Map<String, String> params)
21      {
22          StringBuffer buffer = new StringBuffer();
23          buffer.append("<link type=\"text/css\" rel=\"stylesheet\" href=\"").append(url).append("\"");
24          List attributes = getParametersAsAttributes(params);
25          if (attributes != null && attributes.size() > 0)
26          {
27              buffer.append(" ").append(StringUtils.join(attributes.iterator(), " "));
28          }
29  
30          // default media to all
31          if (!params.containsKey("media"))
32          {
33              buffer.append(" media=\"all\"");
34          }
35          buffer.append("/>\n");
36  
37          // ie conditional commment
38          if(BooleanUtils.toBoolean(params.get("ieonly")))
39          {
40              buffer.insert(0, "<!--[if IE]>\n");
41              buffer.append("<![endif]-->\n");
42          }
43  
44          return buffer.toString();
45      }
46  
47      protected List<String> getAttributeParameters()
48      {
49          return HANDLED_PARAMETERS;
50      }
51  }