1 21 package com.jaspersoft.jasperserver.war.common; 22 23 import java.sql.Connection ; 24 import java.sql.DriverManager ; 25 import java.sql.SQLException ; 26 import java.text.DateFormat ; 27 import java.text.SimpleDateFormat ; 28 import java.util.Locale ; 29 import java.util.regex.Matcher ; 30 import java.util.regex.Pattern ; 31 import java.util.regex.PatternSyntaxException ; 32 33 import javax.naming.InitialContext ; 34 import javax.naming.NamingException ; 35 import javax.servlet.http.HttpServletRequest ; 36 import javax.sql.DataSource ; 37 38 import net.sf.jasperreports.engine.JRException; 39 import net.sf.jasperreports.engine.JRExporterParameter; 40 import net.sf.jasperreports.engine.JasperPrint; 41 import net.sf.jasperreports.engine.export.JRHtmlExporter; 42 import net.sf.jasperreports.engine.export.JRHtmlExporterParameter; 43 44 import org.apache.commons.logging.Log; 45 import org.apache.commons.logging.LogFactory; 46 import org.springframework.context.MessageSource; 47 import org.springframework.context.i18n.LocaleContextHolder; 48 import org.springframework.web.servlet.support.RequestContextUtils; 49 import org.springframework.webflow.RequestContext; 50 51 import com.jaspersoft.jasperserver.api.common.domain.ExecutionContext; 52 import com.jaspersoft.jasperserver.api.common.domain.impl.ExecutionContextImpl; 53 import com.jaspersoft.jasperserver.api.metadata.common.domain.Folder; 54 import com.jaspersoft.jasperserver.api.metadata.common.domain.client.FolderImpl; 55 import com.jaspersoft.jasperserver.api.metadata.common.service.RepositoryService; 56 import com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.ReportUnit; 57 import com.jaspersoft.jasperserver.api.metadata.user.domain.Role; 58 import com.jaspersoft.jasperserver.api.metadata.user.domain.User; 59 60 64 public class JasperServerUtil { 65 66 private static final Log log = LogFactory.getLog(JasperServerUtil.class); 67 68 72 public static Connection getJSDatabaseConnection () throws ClassNotFoundException , SQLException , NamingException { 73 boolean sqlExcpn = false; 74 Connection con = null; 75 try { 76 InitialContext cxt = new InitialContext (); 77 DataSource ds = (DataSource )cxt.lookup(JasperServerConstImpl.getJSDataSrc()); 78 con = ds.getConnection(); 79 return con; 80 } catch(Exception _ex) { 81 if (log.isErrorEnabled()) 82 log.error(_ex, _ex); 83 sqlExcpn = true; 84 } finally { 85 if(sqlExcpn) { 86 Class.forName(JasperServerConstImpl.getJSConnector()); 87 con = DriverManager.getConnection(JasperServerConstImpl.getJSUrl(), 88 JasperServerConstImpl.getJSDbUser(), 89 JasperServerConstImpl.getJSDbPasswd()); 90 return con; 91 } 92 } 93 return con; 94 } 95 96 101 public static JRHtmlExporter exportJRToHtml(JasperPrint jasperPrint, StringBuffer reportContent) throws JRException { 102 JRHtmlExporter exporter = new JRHtmlExporter(); 103 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 104 exporter.setParameter(JRExporterParameter.OUTPUT_STRING_BUFFER, reportContent); 105 exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE); 107 exporter.setParameter(JRExporterParameter.PAGE_INDEX, new Integer (0)); 108 exporter.setParameter(JRHtmlExporterParameter.HTML_HEADER, ""); 109 exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, ""); 110 exporter.setParameter(JRHtmlExporterParameter.HTML_FOOTER, ""); 111 exporter.exportReport(); 112 return exporter; 113 } 114 115 120 public String parseFileName(String fullName) { 121 int lastIndex = fullName.lastIndexOf(System.getProperty("file.separator")); 122 fullName = fullName.substring(lastIndex+1); 123 return fullName; 124 } 125 126 132 public static boolean createNewReportUnit(RepositoryService repository, 133 ReportUnit unit) throws Exception { 134 repository.saveResource(null, unit); 135 return true; 136 } 137 138 144 public static Folder createNewFolder(RepositoryService repository, 145 String folderName,String parentUri) throws Exception { 146 Folder folder=new FolderImpl(); 147 folder.setName(folderName); 148 folder.setLabel(folderName); 149 folder.setParentFolder(parentUri); 150 repository.saveFolder(null,folder); 151 return folder; 152 } 153 154 159 public static boolean uploadToRepository(ReportUnit rpunit, String fileName) throws Exception { 160 161 169 return true; 170 } 171 172 private static final Pattern PATTERN_NAME = Pattern.compile("[a-zA-Z]+([a-zA-Z0-9])*(((\\_)|(\\.)){1}[a-zA-Z0-9]+)*"); 173 174 181 public static boolean regExValidateName(String inp) throws PatternSyntaxException { 182 Matcher mat = PATTERN_NAME.matcher(inp.trim()); 183 return mat.matches(); 184 } 185 186 193 public static boolean regExValidateLabel(String inp) throws PatternSyntaxException { 194 195 Pattern pat = Pattern.compile("([a-zA-Z]+([a-zA-Z0-9])*(((\\s)|(\\_)){1}[a-zA-Z0-9]+)*)"); 196 Matcher mat = pat.matcher(inp.trim()); 197 if(mat.matches()) 198 return true; 199 else 200 return false; 201 } 202 203 209 public static boolean regExValidateEmail(String email) throws PatternSyntaxException { 210 211 Pattern pat = Pattern.compile("([a-zA-Z]+[a-zA-Z0-9]*(((\\_)|(\\.)){1}[a-zA-Z0-9]+)*@{1}([a-zA-Z]{1,}[a-zA-Z0-9]*(((\\-)|(\\_)){1}[a-zA-Z0-9]+)*((\\.)[a-zA-Z]{2,5}){1,}))"); 212 Matcher mat = pat.matcher(email.trim()); 213 if(mat.matches()) 214 return true; 215 else 216 return false; 217 } 218 219 225 public static boolean regExValidateFolder(String folderName) throws PatternSyntaxException { 226 return regExValidateName(folderName.trim()); 227 } 228 229 230 236 public static boolean regExValidateJndiServiceName(String jndiName) throws PatternSyntaxException { 237 Pattern pat = Pattern.compile("([a-zA-Z]+(((\\:)|(\\/)){1}[a-zA-Z0-9]+)*)"); 238 Matcher mat = pat.matcher(jndiName.trim()); 239 if(mat.matches()) 240 return true; 241 else 242 return false; 243 } 244 245 251 public static boolean regExValidateDbDriver(String driverName) throws PatternSyntaxException { 252 Pattern pat = Pattern.compile("([a-zA-Z]+((\\.){1}[a-zA-Z0-9]+)*)"); 253 Matcher mat = pat.matcher(driverName.trim()); 254 if(mat.matches()) 255 return true; 256 else 257 return false; 258 } 259 260 267 public static boolean regExValidateJdbcURL(String jdbcUrl) throws PatternSyntaxException { 268 269 return true; 271 272 280 281 } 282 283 288 public static boolean regExValidateReportName(String reportName) throws PatternSyntaxException { 289 290 Pattern pat = Pattern.compile("[a-zA-Z0-9]+((\\_){1}[a-zA-Z0-9]+)*"); 291 Matcher mat = pat.matcher(reportName.trim()); 292 if(mat.matches()) 293 return true; 294 else 295 return false; 296 } 297 298 public static ExecutionContext getExecutionContext(HttpServletRequest request) { 299 return getExecutionContext(RequestContextUtils.getLocale(request)); 300 } 301 302 public static ExecutionContext getExecutionContext(Locale locale) { 303 ExecutionContextImpl context = new ExecutionContextImpl(); 304 context.setLocale(locale); 305 return context; 306 } 307 308 public static ExecutionContext getExecutionContext(RequestContext context) { 309 return getExecutionContext(LocaleContextHolder.getLocale()); 310 } 311 312 318 public static void trimDTOFieldSpaces(Object object) { 319 320 if(object instanceof User) { 321 User user = (User)object; 322 user.setUsername(user.getUsername().trim()); 323 user.setFullName(user.getFullName().trim()); 324 user.setEmailAddress(user.getEmailAddress().trim()); 325 } else if(object instanceof Role) { 326 Role role = (Role)object; 327 role.setRoleName(role.getRoleName().trim()); 328 } else { 329 } 331 332 } 333 334 public static DateFormat createCalendarDateFormat(MessageSource messages, Locale locale) { 335 String pattern = messages.getMessage("date.format", null, locale); 336 return new SimpleDateFormat (pattern); 337 } 338 339 public static DateFormat createCalendarDateFormat(MessageSource messages) { 340 return createCalendarDateFormat(messages, LocaleContextHolder.getLocale()); 341 } 342 343 public static DateFormat createCalendarDateTimeFormat(MessageSource messages, Locale locale) { 344 String pattern = messages.getMessage("datetime.format", null, locale); 345 return new SimpleDateFormat (pattern); 346 } 347 348 public static DateFormat createCalendarDateTimeFormat(MessageSource messages) { 349 return createCalendarDateTimeFormat(messages, LocaleContextHolder.getLocale()); 350 } 351 } 352 | Popular Tags |