package com.fp.report.util; import java.io.BufferedReader; import java.io.IOException; import java.math.BigDecimal; import java.sql.Clob; import java.sql.SQLException; import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; import org.apache.commons.lang.StringUtils; /** * Clase que se encarga de ofrecer utilidades para ser utilizadas por iReports * * @author scastillo */ public class Utilities { /** * Formato ISO */ private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat( "yyyy-MM-dd"); /** * */ private static GregorianCalendar gregorianCalendar = new GregorianCalendar(); /** * Constructor por defecto de la clase */ public Utilities() { } /** * Metodo que devuelve la fecha de expiracion para manejo de reportes * * @return java.util.Date */ public static java.util.Date getDefaultExpiryDate() { java.util.Date date = null; try { date = Utilities.simpleDateFormat.parse("2999-12-31"); } catch (ParseException ex) { return null; } return date; } /** * Método que devuelve la fecha de expiracion para manejo de reportes * * @return java.sql.Timestamp */ public static java.sql.Timestamp getDefaultExpiryTimestamp() { return java.sql.Timestamp.valueOf("2999-12-31 00:00:00.000"); } /** * Metodo que se encarga de devolver * * @param pDate * String que contiene la fecha en formato yyyy-MM-dd * @return java.util.Date */ public static java.util.Date StringToDate(String pDate) { java.util.Date date = null; try { date = Utilities.simpleDateFormat.parse(pDate); } catch (ParseException ex) { return null; } return date; } /** * Metodo que agrega dias en una fecha * * @param pDate * Fecha en formato yyyy-MM-dd * @param daysnumber * Número de dias a sumar o restar * @return */ public static java.util.Date addDays(String pDate, int daysnumber) { try { java.util.Date date = Utilities.simpleDateFormat.parse(pDate); Utilities.gregorianCalendar.setTime(date); Utilities.gregorianCalendar.add(Calendar.DAY_OF_YEAR, daysnumber); return new java.util.Date(Utilities.gregorianCalendar.getTime() .getTime()); } catch (ParseException ex) { return null; } } /** * Metodo que suma/resta meses a una fecha * * @param pDate * Fecha en formato yyyy-MM-dd * @param Monthsnumber * Número de mese a sumar o restar. Si se resta enviar un número * entero negativo * @return */ public static java.util.Date addMonths(String pDate, int Monthsnumber) { try { java.util.Date date = Utilities.simpleDateFormat.parse(pDate); Utilities.gregorianCalendar.setTime(date); Utilities.gregorianCalendar.add(Calendar.MONTH, Monthsnumber); return new java.util.Date(Utilities.gregorianCalendar.getTime() .getTime()); } catch (ParseException ex) { return null; } } /** * Metodo que convierte un clob a string * * @param clb * Clob a convertir * @return */ public static String clobToString(Clob clb) { if (clb == null) { return null; } StringBuilder str = new StringBuilder(); String strng; BufferedReader bufferRead; try { bufferRead = new BufferedReader(clb.getCharacterStream()); } catch (SQLException ex) { return null; } try { while ((strng = bufferRead.readLine()) != null) { str.append(strng); } } catch (IOException ex) { return null; } return str.toString(); } /** * Metodo que devuelve la particion * * @param pDate * @return */ public static String getPartition(String pDate) { if ((pDate != null) && (pDate.compareTo("") != 0)) { pDate = pDate.replaceAll("\\-", ""); pDate = pDate.substring(0, 6); return pDate; } else { return null; } } public static String lpad(String pData, char pFiller, int pLength) { return StringUtils.leftPad(pData, pLength, pFiller); } public static String rpad(String pData, char pFiller, int pLength) { String st = ""; if (pData.length() > pLength) { st = pData.substring(0, pLength); } else { st = StringUtils.rightPad(pData, pLength, pFiller); } return st; } public static String removeCurrencySeparatorsSymbol(BigDecimal pData, int pLengthDecimal) { BigDecimal value = pData.setScale(pLengthDecimal, BigDecimal.ROUND_HALF_UP); return value.toString().replaceAll("\\.", "").replaceAll("\\,", ""); } public static String formatCurrency(BigDecimal pData, String format) { DecimalFormat frmt = new DecimalFormat(format); String formatted = frmt.format(pData.doubleValue()); return formatted; } public static String getFormatedDate(java.util.Date pDate, String format) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); String date = null; date = simpleDateFormat.format(pDate); return date; } public static String getFormatedDate(java.sql.Date pDate, String format) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); String date = null; date = simpleDateFormat.format(pDate); return date; } }