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(new String[] {"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 name, String url, Map 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((String) 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  }