1 package org.jahia.clipbuilder.html.XML; 2 3 import org.jdom.*; 4 import java.util.*; 5 import org.jahia.clipbuilder.html.util.*; 6 7 12 public class ElementBuilder { 13 14 17 private static ElementBuilder instance; 18 19 20 27 public Element buildClipper(String name, String description) { 28 Element ele = new Element(Label.CLIPPER); 30 31 Element nameEle = new Element(Label.NAME); 33 nameEle.setText(name); 34 ele.addContent(nameEle); 35 36 Element descriptionEle = new Element(Label.DESCRIPTION); 38 if (description != null && !description.equals("")) { 39 descriptionEle.setText(description); 40 } 41 ele.addContent(descriptionEle); 42 43 ele.addContent(new Comment( 45 "All the url visited by the clipper (ranged by order)")); 46 47 ele.addContent(new Element(Label.SEQUENCEURL)); 48 49 return ele; 50 } 51 52 53 60 public Element buildFilter(String type, Map keysMap) { 61 Element filterEle = new Element(Label.FILTER); 63 filterEle.setAttribute(Label.FILTER_TYPE, type); 64 65 Iterator it = keysMap.keySet().iterator(); 66 while (it.hasNext()) { 67 String name = (String ) it.next(); 68 String value = (String ) keysMap.get(name); 69 70 Element keyEle = new Element(Label.KEY); 72 keyEle.setAttribute(Label.KEY_NAME, name); 73 keyEle.setText(value); 74 filterEle.addContent(keyEle); 75 76 } 77 78 return filterEle; 79 } 80 81 82 98 public Element buildConfiguration(String proxy, 99 String browserJavascriptEvent, 100 String browserJavascriptCode, 101 String enableSSL, String enableJavascript, 102 String client, String htmlDocument, 103 String enableCSS, String portletEnableSSL, 104 String portletContinualClipping, String portletCacheExpiration, 105 String portletCacheContext) { 106 107 Element configureEle = new Element(Label.CONFIGURATION); 109 110 Element proxyEle = new Element(Label.PROXY); 112 proxyEle.setText(proxy); 113 114 Element enableSSLEle = new Element(Label.ENABLESSL); 116 enableSSLEle.setText(enableSSL); 117 118 Element browserJavascriptCodeEle = new Element( 120 Label.BROWSER_JAVASCRIPT_CODE); 121 browserJavascriptCodeEle.setText(browserJavascriptCode); 122 Element browserJavascriptEventEle = new Element( 123 Label.BROWSER_JAVASCRIPT_EVENT); 124 browserJavascriptEventEle.setText(browserJavascriptEvent); 125 126 Element clientEle = new Element(Label.CLIENT); 128 clientEle.setText(client); 129 130 Element htmlDocumentEle = new Element(Label.HTMLDOCUMENT); 132 htmlDocumentEle.setText(htmlDocument); 133 Element enableCssEle = new Element(Label.ENABLECSS); 134 enableCssEle.setText(enableCSS); 135 136 Element enableJavascriptEle = new Element(Label.ENABLEJAVASCRIPT); 138 enableJavascriptEle.setText(enableJavascript); 139 140 Element portletSSLEle = new Element(Label.PORTLET_SSL); 142 portletSSLEle.setText(portletEnableSSL); 143 144 Element portletClippingEle = new Element(Label.PORTLET_CLIPPING); 146 portletClippingEle.setText(portletContinualClipping); 147 148 Element portletCacheExpirationEle = new Element(Label.PORTLET_CACHE_EXPIRATION); 150 portletCacheExpirationEle.setText(portletCacheExpiration); 151 152 Element portletCacheContextEle = new Element(Label.PORTLET_CACHE_CONTEXT); 154 portletCacheContextEle.setText(portletCacheContext); 155 156 157 configureEle.addContent(proxyEle); 159 configureEle.addContent(enableSSLEle); 160 configureEle.addContent(clientEle); 161 configureEle.addContent(htmlDocumentEle); 162 configureEle.addContent(enableCssEle); 163 configureEle.addContent(enableJavascriptEle); 164 configureEle.addContent(browserJavascriptCodeEle); 165 configureEle.addContent(browserJavascriptEventEle); 166 configureEle.addContent(portletSSLEle); 167 configureEle.addContent(portletClippingEle); 168 configureEle.addContent(portletCacheExpirationEle); 169 configureEle.addContent(portletCacheContextEle); 170 171 return configureEle; 172 } 173 174 175 185 public Element buildURL(String baseUrl, String redirectUrl, 186 String finalValue, String from, String hash) { 187 Element urlEle = new Element(Label.URL); 189 urlEle.setAttribute(Label.URL_FROM, from); 190 urlEle.setAttribute(Label.URL_HASH, hash); 191 192 Element baseEle = new Element(Label.BASE); 194 baseEle.setText(baseUrl); 195 urlEle.addContent(baseEle); 196 197 Element valueEle = new Element(Label.VALUE); 199 valueEle.setText(redirectUrl); 200 urlEle.addContent(valueEle); 201 202 Element redirectValueEle = new Element(Label.FINAL_VALUE); 204 redirectValueEle.setText(finalValue); 205 urlEle.addContent(redirectValueEle); 206 207 urlEle.addContent(new Comment("Query parameter for the request")); 209 Element queryParam = new Element(Label.QUERYPARAM); 210 urlEle.addContent(queryParam); 211 212 urlEle.addContent(new Comment("Parameters found in forms tag")); 214 Element userParam = new Element(Label.USERPARAM); 215 urlEle.addContent(userParam); 216 217 return urlEle; 218 } 219 220 221 236 public Element buildUserParam(String formParentName, String formParentId, 237 int formParentPos, String name, 238 String mapping, String type, 239 ArrayList possibleValues, String visibility, 240 String update, int position) { 241 Element ele = new Element(Label.PARAMETER); 243 ele.setAttribute(Label.PARAMETER_NAME, name); 245 ele.setAttribute(Label.PARAMETER_MAPPING, mapping); 246 ele.setAttribute(Label.PARAMETER_TYPE, type); 247 248 ele.setAttribute(Label.PARAMETER_VISIBILITY, visibility); 249 ele.setAttribute(Label.PARAMETER_UPDATE, update); 250 ele.setAttribute(Label.PARAMETER_POSITION, "" + position); 251 ele.setAttribute(Label.FORM_PARENT_NAME, formParentName); 252 ele.setAttribute(Label.FORM_PARENT_ID, formParentId); 253 ele.setAttribute(Label.FORM_PARENT_POSITION, "" + formParentPos); 254 255 for (int i = 0; i < possibleValues.size(); i++) { 257 Element valueEle = new Element(Label.PARAMETER_VALUE); 258 valueEle.setText((String ) possibleValues.get(i)); 259 ele.addContent(valueEle); 260 } 261 262 return ele; 263 } 264 265 266 275 public Element buildQueryParam(String name, String defaultValue, int position, String useAsDefault) { 276 Element ele = new Element(Label.PARAMETER); 278 279 ele.setAttribute(Label.PARAMETER_NAME, name); 281 if (useAsDefault.equalsIgnoreCase("true")) { 282 String encrypted = DESUtilities.getInstance().encrypt(Label.KEY_ENCRYPT, defaultValue); 283 ele.setAttribute(Label.PARAMETER_DEFAULT, encrypted); 284 } 285 ele.setAttribute(Label.PARAMETER_POSITION, "" + position); 286 287 return ele; 288 } 289 290 291 296 public static ElementBuilder getInstance() { 297 if (instance == null) { 298 instance = new ElementBuilder(); 299 } 300 return instance; 301 } 302 303 } 304 | Popular Tags |