diff options
Diffstat (limited to 'jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/ExceptionCollector.java')
-rw-r--r-- | jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/ExceptionCollector.java | 64 |
1 files changed, 54 insertions, 10 deletions
diff --git a/jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/ExceptionCollector.java b/jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/ExceptionCollector.java index 07dabf8..b810e87 100644 --- a/jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/ExceptionCollector.java +++ b/jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/ExceptionCollector.java @@ -1,6 +1,7 @@ package org.openecomp.sdc.toscaparser.api.common; import java.util.ArrayList; +import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -13,13 +14,15 @@ public class ExceptionCollector { //private static boolean isCollecting = false; private static ArrayList<String> exceptionStrings = new ArrayList<>(); - private static ArrayList<String> traceStrings = new ArrayList<>(); + private static ArrayList<String> exceptionTraceStrings = new ArrayList<>(); + private static ArrayList<String> warningStrings = new ArrayList<>(); + private static ArrayList<String> warningTraceStrings = new ArrayList<>(); private static boolean bWantTrace = true; /*public static void start() { if(exceptionStrings == null) { exceptionStrings = new ArrayList<String>(); - traceStrings = new ArrayList<String>(); + exceptionTraceStrings = new ArrayList<String>(); } isCollecting = true; }*/ @@ -30,7 +33,9 @@ public class ExceptionCollector { public static void clear() { exceptionStrings = new ArrayList<>(); - traceStrings = new ArrayList<>(); + exceptionTraceStrings = new ArrayList<>(); + warningStrings = new ArrayList<>(); + warningTraceStrings = new ArrayList<>(); } public static void appendException(String strExc) { // throws Exception { @@ -50,28 +55,67 @@ public class ExceptionCollector { sb.append(String.format(" %s(%s:%d)%s",ste[i].getClassName(),ste[i].getFileName(), ste[i].getLineNumber(),i==ste.length-1?" ":"\n")); } - traceStrings.add(sb.toString()); + exceptionTraceStrings.add(sb.toString()); } } + + public static void appendWarning(String strExc) { // throws Exception { - public static ArrayList<String> getExceptionReport() { + /*if(!isCollecting) { + // throw new Exception("Can't append exception " + strExc); + log.error("ExceptionCollector - appendException - Can't append exception {}", strExc); + }*/ + + if(!warningStrings.contains(strExc)) { + warningStrings.add(strExc); + // get stack trace + StackTraceElement[] ste = Thread.currentThread().getStackTrace(); + StringBuilder sb = new StringBuilder(); + // skip the last 2 (getStackTrace and this) + for(int i=2; i<ste.length; i++) { + sb.append(String.format(" %s(%s:%d)%s",ste[i].getClassName(),ste[i].getFileName(), + ste[i].getLineNumber(),i==ste.length-1?" ":"\n")); + } + warningTraceStrings.add(sb.toString()); + } + } + + public static List<String> getCriticalsReport() { + + List<String> res = new ArrayList<>(); if(exceptionStrings.size() > 0) { - ArrayList<String> report = new ArrayList<>(); for(int i=0; i<exceptionStrings.size(); i++) { - report.add(exceptionStrings.get(i)); + res.add(exceptionStrings.get(i)); + if(bWantTrace) { + res.add(exceptionTraceStrings.get(i)); + } + } + } + return res; + } + + public static List<String> getWarningsReport() { + + List<String> res = new ArrayList<>(); + if(warningStrings.size() > 0) { + for(int i=0; i<warningStrings.size(); i++) { + res.add(warningStrings.get(i)); if(bWantTrace) { - report.add(traceStrings.get(i)); + res.add(warningTraceStrings.get(i)); } } - return report; } - return new ArrayList<>(); + return res; } public static int errorsCaught() { return exceptionStrings.size(); } + public static int warningsCaught() { + return warningStrings.size(); + } + public static void setWantTrace(boolean b) { bWantTrace = b; } |