package com.github.ryhmrt.mssqldiff.csv; import java.io.FileOutputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.List; import au.com.bytecode.opencsv.CSVWriter; public class SchemaCsvWriter { private String path; public SchemaCsvWriter(String path) { this.path = path; } public void write(List<SchemaCsv> data) { try { OutputStream output = new FileOutputStream(path); Writer iwriter = new OutputStreamWriter(output, "UTF-8"); CSVWriter writer = new CSVWriter(iwriter,',','"'); try { writer.writeNext(SchemaCsv.COLUMNS); for (SchemaCsv csv : data) { String[] values = new String[SchemaCsv.COLUMNS.length]; values[0] = csv.getObjectType(); values[1] = csv.getTableName(); values[2] = csv.getColumnName(); values[3] = csv.getColumnType(); values[4] = Integer.toString(csv.getLength()); values[5] = Boolean.toString(csv.isPk()); values[6] = Boolean.toString(csv.isIdentity()); values[7] = Boolean.toString(csv.isNullable()); values[8] = csv.getDefaultValue(); values[9] = csv.getTableDescription(); values[10] = csv.getColumnDescription(); values[11] = csv.getUserName(); values[12] = Boolean.toString(csv.isCanSelect()); values[13] = Boolean.toString(csv.isCanInsert()); values[14] = Boolean.toString(csv.isCanUpdate()); values[15] = Boolean.toString(csv.isCanDelete()); writer.writeNext(values); } } finally { writer.close(); } } catch (Exception e) { throw new RuntimeException(e); } } }