X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cadi%2Fcore%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fcadi%2Futil%2FCSV.java;h=a834db51ff064544231b08b78228ad2a9c10ed87;hb=59ffb7d529245c3bd0233dbf6cb0ae9fe9ccb856;hp=c7fada74437fa9d54304940be20a951c58f97b41;hpb=190372539017be0ab732655817845fbc6fb48fd2;p=aaf%2Fauthz.git diff --git a/cadi/core/src/main/java/org/onap/aaf/cadi/util/CSV.java b/cadi/core/src/main/java/org/onap/aaf/cadi/util/CSV.java index c7fada74..a834db51 100644 --- a/cadi/core/src/main/java/org/onap/aaf/cadi/util/CSV.java +++ b/cadi/core/src/main/java/org/onap/aaf/cadi/util/CSV.java @@ -30,7 +30,9 @@ import java.io.PrintStream; import java.util.ArrayList; import java.util.List; +import org.onap.aaf.cadi.Access; import org.onap.aaf.cadi.CadiException; +import org.onap.aaf.cadi.Access.Level; /** * Read CSV file for various purposes @@ -40,17 +42,26 @@ import org.onap.aaf.cadi.CadiException; */ public class CSV { private File csv; + private Access access; + private boolean processAll; - public CSV(File file) { + public CSV(Access access, File file) { + this.access = access; csv = file; + processAll = false; } - public CSV(String csvFilename) { + public CSV(Access access, String csvFilename) { + this.access = access; csv = new File(csvFilename); + processAll = false; } - - /** + public CSV processAll() { + processAll = true; + return this; + } + /* * Create your code to accept the List row. * * Your code may keep the List... CSV does not hold onto it. @@ -117,7 +128,15 @@ public class CSV { row.add(sb.toString()); sb.setLength(0); } - visitor.visit(row); + try { + visitor.visit(row); + } catch (CadiException e) { + if(processAll) { + access.log(Level.ERROR,e); + } else { + throw e; + } + } } } } finally { @@ -138,33 +157,42 @@ public class CSV { private Writer(final boolean append) throws FileNotFoundException { ps = new PrintStream(new FileOutputStream(csv,append)); } - public void row(Object ... strings) { - if(strings.length>0) { + public void row(Object ... objs) { + if(objs.length>0) { boolean first = true; - boolean quote; - String s; - for(Object o : strings) { + for(Object o : objs) { if(first) { first = false; } else { ps.append(','); } - s = o.toString(); - quote = s.matches(".*[,|\"].*"); - if(quote) { - ps.append('"'); - ps.print(s.replace("\"", "\"\"") - .replace("'", "''") - .replace("\\", "\\\\")); - ps.append('"'); + if(o == null) { + } else if(o instanceof String[]) { + for(String str : (String[])o) { + print(str); + } } else { - ps.append(s); + print(o.toString()); } } ps.println(); } } + private void print(String s) { + boolean quote = s.matches(".*[,|\"].*"); + if(quote) { + ps.append('"'); + ps.print(s.replace("\"", "\"\"") + .replace("'", "''") + .replace("\\", "\\\\")); + ps.append('"'); + } else { + ps.append(s); + } + + + } /** * Note: CSV files do not actually support Comments as a standard, but it is useful * @param comment