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  
36          // support valid HTML 4.01
37          if (!BooleanUtils.toBoolean(params.get("html4")))
38          {
39              buffer.append("/");
40          }
41          buffer.append(">\n");
42          
43          // ie conditional commment
44          if (BooleanUtils.toBoolean(params.get("ieonly")))
45          {
46              buffer.insert(0, "<!--[if IE]>\n");
47              buffer.append("<![endif]-->\n");
48          }
49  
50  
51  
52          return buffer.toString();
53      }
54  
55      protected List<String> getAttributeParameters()
56      {
57          return HANDLED_PARAMETERS;
58      }
59  }