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