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 String MEDIA_PARAM = "media";
14      private static final String IEONLY_PARAM = "ieonly";
15  
16      private static final List<String> HANDLED_PARAMETERS = Arrays.asList("title", MEDIA_PARAM, "charset");
17  
18      public boolean matches(String name)
19      {
20          return name != null && name.endsWith(CSS_EXTENSION);
21      }
22  
23      public String formatResource(String url, Map<String, String> params)
24      {
25          StringBuffer buffer = new StringBuffer();
26          buffer.append("<link type=\"text/css\" rel=\"stylesheet\" href=\"").append(url).append("\"");
27          List attributes = getParametersAsAttributes(params);
28          if (attributes != null && attributes.size() > 0)
29          {
30              buffer.append(" ").append(StringUtils.join(attributes.iterator(), " "));
31          }
32  
33          // default media to all
34          if (!params.containsKey(MEDIA_PARAM))
35          {
36              buffer.append(" media=\"all\"");
37          }
38          buffer.append("/>\n");
39  
40          // ie conditional commment
41          if (BooleanUtils.toBoolean(params.get(IEONLY_PARAM)))
42          {
43              buffer.insert(0, "<!--[if IE]>\n");
44              buffer.append("<![endif]-->\n");
45          }
46  
47          return buffer.toString();
48      }
49  
50      protected List<String> getAttributeParameters()
51      {
52          return HANDLED_PARAMETERS;
53      }
54  }