Clover Coverage Report - XWiki Rendering - Parent POM 4.0-SNAPSHOT (Aggregated)
Coverage timestamp: Mon Mar 12 2012 18:03:13 CET
../../../../../../img/srcFileCovDistChart9.png 55% of files have more coverage
42   173   24   2.47
14   117   0.57   17
17     1.41  
1    
 
  AbstractRadeoxMacroConverter       Line # 35 42 0% 24 7 90.4% 0.9041096
 
  (92)
 
1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
19    */
20    package org.xwiki.rendering.parser.xwiki10.macro;
21   
22    import java.util.ArrayList;
23    import java.util.LinkedHashMap;
24    import java.util.List;
25    import java.util.Map;
26   
27    import org.xwiki.rendering.parser.xwiki10.FilterContext;
28   
29    /**
30    * Base class for Radeox macros converters.
31    *
32    * @version $Id: 5ed83948ea18f1380bba34ffc215283b6cc009e0 $
33    * @since 1.8M1
34    */
 
35    public abstract class AbstractRadeoxMacroConverter implements RadeoxMacroConverter
36    {
37    private String name;
38   
39    private List<Object[]> parametersNames = new ArrayList<Object[]>();
40   
 
41  98 toggle protected AbstractRadeoxMacroConverter()
42    {
43   
44    }
45   
 
46  0 toggle protected AbstractRadeoxMacroConverter(String name)
47    {
48  0 this.name = name;
49    }
50   
 
51  22 toggle @Override
52    public String getParameterName(int parameterIndex)
53    {
54  22 return getParameterName(this.parametersNames.get(parameterIndex));
55    }
56   
 
57  46 toggle @Override
58    public int getParameterType(int parameterIndex)
59    {
60  46 return getParameterType(this.parametersNames.get(parameterIndex));
61    }
62   
 
63  22 toggle private String getParameterName(Object[] objects)
64    {
65  22 return objects == null ? null : (String) objects[0];
66    }
67   
 
68  46 toggle private int getParameterType(Object[] objects)
69    {
70  46 return objects == null ? PARAMETER_SIMPLE : (Integer) objects[1];
71    }
72   
 
73  107 toggle protected void registerParameter(String parameterName)
74    {
75  107 registerParameter(parameterName, PARAMETER_SIMPLE);
76    }
77   
 
78  125 toggle protected void registerParameter(String parameterName, int paramType)
79    {
80  125 this.parametersNames.add(new Object[] {parameterName, paramType});
81    }
82   
 
83  14 toggle @Override
84    public boolean protectResult()
85    {
86  14 return true;
87    }
88   
 
89  40 toggle @Override
90    public boolean isInline()
91    {
92  40 return true;
93    }
94   
 
95  8 toggle protected String convertName(String name)
96    {
97  8 return this.name == null ? name : this.name;
98    }
99   
 
100  10 toggle protected Map<String, String> convertParameters(RadeoxMacroParameters parameters)
101    {
102  10 Map<String, String> parameters20 = new LinkedHashMap<String, String>(parameters.size());
103   
104  10 for (RadeoxMacroParameter radeoxParameter : parameters.values()) {
105  22 convertParameter(parameters20, radeoxParameter);
106    }
107   
108  10 return parameters20;
109    }
110   
 
111  22 toggle protected void convertParameter(Map<String, String> parameters20, RadeoxMacroParameter radeoxParameter)
112    {
113  22 convertParameter(parameters20, radeoxParameter.getName(), radeoxParameter.getValue());
114    }
115   
 
116  22 toggle protected void convertParameter(Map<String, String> parameters20, String key, String value)
117    {
118  22 parameters20.put(key, value);
119    }
120   
 
121  4 toggle protected String convertContent(String content, RadeoxMacroParameters parameters, FilterContext filterContext)
122    {
123  4 return content;
124    }
125   
 
126  4 toggle @Override
127    public String convert(String name, RadeoxMacroParameters parameters, String content, FilterContext filterContext)
128    {
129  4 StringBuffer result = new StringBuffer();
130   
131  4 result.append("{{");
132  4 result.append(convertName(name));
133  4 if (parameters.size() > 0) {
134  1 result.append(' ');
135  1 appendParameters(result, convertParameters(parameters));
136    }
137   
138  4 if (content != null) {
139  4 result.append("}}");
140   
141  4 String macroContent = convertContent(content, parameters, filterContext);
142  4 if (macroContent.indexOf("\n") != -1) {
143  2 result.append("\n" + macroContent + "\n");
144    } else {
145  2 result.append(macroContent);
146    }
147   
148  4 result.append("{{/");
149  4 result.append(convertName(name));
150    } else {
151  0 result.append("/");
152    }
153   
154  4 result.append("}}");
155   
156  4 return result.toString();
157    }
158   
 
159  9 toggle protected void appendParameters(StringBuffer result, Map<String, String> parameters)
160    {
161  9 StringBuffer parametersSB = new StringBuffer();
162  9 for (Map.Entry<String, String> parameter : parameters.entrySet()) {
163  14 if (parametersSB.length() > 0) {
164  5 parametersSB.append(" ");
165    }
166  14 parametersSB.append(parameter.getKey());
167  14 parametersSB.append("=");
168  14 parametersSB.append("\"" + parameter.getValue() + "\"");
169    }
170   
171  9 result.append(parametersSB);
172    }
173    }