Coverage Report - liquibase.util.csv.CSVWriter
 
Classes in this File Line Coverage Branch Coverage Complexity
CSVWriter
0%
0/34
0%
0/14
2.375
 
 1  
 package liquibase.util.csv;
 2  
 
 3  
 import liquibase.util.ISODateFormat;
 4  
 
 5  
 import java.io.IOException;
 6  
 import java.io.Writer;
 7  
 import java.sql.ResultSet;
 8  
 import java.sql.ResultSetMetaData;
 9  
 import java.sql.SQLException;
 10  
 
 11  
 public class CSVWriter extends liquibase.util.csv.opencsv.CSVWriter {
 12  0
     private static final ISODateFormat ISO_DATE_FORMAT = new ISODateFormat();
 13  
 
 14  
     public CSVWriter(Writer writer) {
 15  0
         super(writer);
 16  0
     }
 17  
 
 18  
     public CSVWriter(Writer writer, char c) {
 19  0
         super(writer, c);
 20  0
     }
 21  
 
 22  
     public CSVWriter(Writer writer, char c, char c1) {
 23  0
         super(writer, c, c1);
 24  0
     }
 25  
 
 26  
     public CSVWriter(Writer writer, char c, char c1, char c2) {
 27  0
         super(writer, c, c1, c2);
 28  0
     }
 29  
 
 30  
     public CSVWriter(Writer writer, char c, char c1, String s) {
 31  0
         super(writer, c, c1, s);
 32  0
     }
 33  
 
 34  
     public CSVWriter(Writer writer, char c, char c1, char c2, String s) {
 35  0
         super(writer, c, c1, c2, s);
 36  0
     }
 37  
 
 38  
     @Override
 39  
     public void writeAll(ResultSet rs, boolean includeColumnNames) throws SQLException, IOException {
 40  0
         ResultSetMetaData metadata = rs.getMetaData();
 41  
 
 42  0
         if (includeColumnNames) {
 43  0
             writeColumnNames(metadata);
 44  
         }
 45  
 
 46  0
         int columnCount = metadata.getColumnCount();
 47  
 
 48  0
         while (rs.next()) {
 49  0
             String[] nextLine = new String[columnCount];
 50  
 
 51  0
             for (int i = 0; i < columnCount; i++) {
 52  0
                 nextLine[i] = getColumnValue(rs, metadata.getColumnType(i + 1), i + 1);
 53  
             }
 54  
 
 55  0
             writeNext(nextLine);
 56  0
         }
 57  0
     }
 58  
 
 59  
     private String getColumnValue(ResultSet rs, int colType, int colIndex) throws SQLException, IOException {
 60  
 
 61  0
         Object value = rs.getObject(colIndex);
 62  0
         if (rs.wasNull()) {
 63  0
             return "NULL";
 64  
         }
 65  
 
 66  0
         if (value instanceof java.sql.Date) {
 67  0
             return ISO_DATE_FORMAT.format((java.sql.Date) value);
 68  0
         } else if (value instanceof java.sql.Time) {
 69  0
             return ISO_DATE_FORMAT.format((java.sql.Time) value);
 70  0
         } else if (value instanceof java.sql.Timestamp) {
 71  0
             return ISO_DATE_FORMAT.format((java.sql.Timestamp) value);
 72  
             // } else if (value instanceof oracle.sql.TIMESTAMP) {
 73  
             // return ISO_DATE_FORMAT.format((oracle.sql.TIMESTAMP) value);
 74  
         } else {
 75  0
             return value.toString();
 76  
         }
 77  
 
 78  
         // if (colType == Types.BIT) {
 79  
         // Object bit = rs.getObject(colIndex);
 80  
         // if (rs.wasNull()) {
 81  
         // return null;
 82  
         // } else {
 83  
         // return String.valueOf(bit);
 84  
         // }
 85  
         // } else if (colType == Types.BOOLEAN) {
 86  
         // boolean b = rs.getBoolean(colIndex);
 87  
         // if (rs.wasNull()) {
 88  
         // return null;
 89  
         // } else {
 90  
         // return Boolean.valueOf(b).toString();
 91  
         // }
 92  
         // } else if (colType == Types.CLOB) {
 93  
         // Clob c = rs.getClob(colIndex);
 94  
         // if (rs.wasNull()) {
 95  
         // return null;
 96  
         // } else {
 97  
         // return read(c);
 98  
         // }
 99  
         // } else if (colType == Types.BIGINT
 100  
         // || colType == Types.DECIMAL
 101  
         // || colType == Types.DOUBLE
 102  
         // || colType == Types.FLOAT
 103  
         // || colType == Types.REAL
 104  
         // || colType == Types.NUMERIC) {
 105  
         // BigDecimal bd = rs.getBigDecimal(colIndex);
 106  
         // if (rs.wasNull()) {
 107  
         // return null;
 108  
         // } else {
 109  
         // return String.valueOf(bd.doubleValue());
 110  
         // }
 111  
         //
 112  
         // } else if (colType == Types.INTEGER
 113  
         // || colType == Types.TINYINT
 114  
         // || colType == Types.SMALLINT) {
 115  
         // int intValue = rs.getInt(colIndex);
 116  
         // if (rs.wasNull()) {
 117  
         // return null;
 118  
         // } else {
 119  
         // return String.valueOf(intValue);
 120  
         // }
 121  
         // }
 122  
         //
 123  
         // case Types.JAVA_OBJECT:
 124  
         // Object obj = rs.getObject(colIndex);
 125  
         // if (obj != null) {
 126  
         // value = String.valueOf(obj);
 127  
         // }
 128  
         // break;
 129  
         // case Types.DATE:
 130  
         // java.sql.Date date = rs.getDate(colIndex);
 131  
         // if (date != null) {
 132  
         // value = ISO_DATE_FORMAT.format(date);
 133  
         // ;
 134  
         // }
 135  
         // break;
 136  
         // case Types.TIME:
 137  
         // Time t = rs.getTime(colIndex);
 138  
         // if (t != null) {
 139  
         // value = t.toString();
 140  
         // }
 141  
         // break;
 142  
         // case Types.TIMESTAMP:
 143  
         // Timestamp tstamp = rs.getTimestamp(colIndex);
 144  
         // if (tstamp != null) {
 145  
         // value = ISO_DATE_FORMAT.format(tstamp);
 146  
         // }
 147  
         // break;
 148  
         // case Types.LONGVARCHAR:
 149  
         // case Types.VARCHAR:
 150  
         // case Types.CHAR:
 151  
         // value = rs.getString(colIndex);
 152  
         // break;
 153  
         // default:
 154  
         // value = "";
 155  
         // }
 156  
 
 157  
         // if (value == null)
 158  
         //
 159  
         // {
 160  
         // value = "";
 161  
         // }
 162  
         //
 163  
         // return value;
 164  
 
 165  
     }
 166  
 
 167  
     // private static String read(Clob c) throws SQLException, IOException {
 168  
     // StringBuffer sb = new StringBuffer((int) c.length());
 169  
     // Reader r = c.getCharacterStream();
 170  
     // char[] cbuf = new char[2048];
 171  
     // int n = 0;
 172  
     // while ((n = r.read(cbuf, 0, cbuf.length)) != -1) {
 173  
     // if (n > 0) {
 174  
     // sb.append(cbuf, 0, n);
 175  
     // }
 176  
     // }
 177  
     // return sb.toString();
 178  
     // }
 179  
 
 180  
 }