aboutsummaryrefslogtreecommitdiffstats
path: root/jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common
diff options
context:
space:
mode:
Diffstat (limited to 'jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common')
-rw-r--r--jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/ExceptionCollector.java80
-rw-r--r--jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/JToscaException.java11
-rw-r--r--jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/TOSCAException.java39
3 files changed, 130 insertions, 0 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
new file mode 100644
index 0000000..9bef6bc
--- /dev/null
+++ b/jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/ExceptionCollector.java
@@ -0,0 +1,80 @@
+package org.openecomp.sdc.toscaparser.api.common;
+
+import org.openecomp.sdc.toscaparser.api.elements.EntityType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+
+// Perfectly good enough...
+
+public class ExceptionCollector {
+
+ private static Logger log = LoggerFactory.getLogger(ExceptionCollector.class.getName());
+
+ private static boolean isCollecting = false;
+ private static ArrayList<String> exceptionStrings = null;
+ private static ArrayList<String> traceStrings = null;
+ private static boolean bWantTrace = true;
+
+ public static void start() {
+ if(exceptionStrings == null) {
+ exceptionStrings = new ArrayList<String>();
+ traceStrings = new ArrayList<String>();
+ }
+ isCollecting = true;
+ }
+
+ public static void stop() {
+ isCollecting = false;
+ }
+
+ public static void clear() {
+ exceptionStrings = null;
+ traceStrings = null;
+ }
+
+ public static void appendException(String strExc) { // throws Exception {
+
+ if(!isCollecting) {
+ // throw new Exception("Can't append exception " + strExc);
+ log.error("ExceptionCollector - appendException - Can't append exception {}", strExc);
+ }
+
+ if(!exceptionStrings.contains(strExc)) {
+ exceptionStrings.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"));
+ }
+ traceStrings.add(sb.toString());
+ }
+ }
+
+ public static ArrayList<String> getExceptionReport() {
+ if(exceptionStrings.size() > 0) {
+ ArrayList<String> report = new ArrayList<>();
+ for(int i=0; i<exceptionStrings.size(); i++) {
+ report.add(exceptionStrings.get(i));
+ if(bWantTrace) {
+ report.add(traceStrings.get(i));
+ }
+ }
+ return report;
+ }
+ return null;
+ }
+
+ public static int errorsCaught() {
+ return exceptionStrings.size();
+ }
+
+ public static void setWantTrace(boolean b) {
+ bWantTrace = b;
+ }
+
+}
diff --git a/jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/JToscaException.java b/jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/JToscaException.java
new file mode 100644
index 0000000..0046aa1
--- /dev/null
+++ b/jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/JToscaException.java
@@ -0,0 +1,11 @@
+package org.openecomp.sdc.toscaparser.api.common;
+
+public class JToscaException extends Exception {
+
+ private static final long serialVersionUID = 1L;
+
+ public JToscaException(String message) {
+ super(message);
+ }
+
+}
diff --git a/jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/TOSCAException.java b/jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/TOSCAException.java
new file mode 100644
index 0000000..cfd7560
--- /dev/null
+++ b/jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common/TOSCAException.java
@@ -0,0 +1,39 @@
+package org.openecomp.sdc.toscaparser.api.common;
+
+import java.util.IllegalFormatException;
+
+public class TOSCAException extends Exception {
+ private String message = "An unkown exception has occurred";
+ private static boolean FATAL_EXCEPTION_FORMAT_ERRORS = false;
+ private String msgFmt = null;
+
+ public TOSCAException(String...strings) {
+ try {
+ message = String.format(msgFmt,(Object[])strings);
+ }
+ catch (IllegalFormatException e) {
+ // TODO log
+
+ if(FATAL_EXCEPTION_FORMAT_ERRORS) {
+ throw e;
+ }
+
+ }
+
+ }
+
+ public String __str__() {
+ return message;
+ }
+
+ public static void generate_inv_schema_property_error(String name, String attr, String value, String valid_values) {
+ //TODO
+
+ }
+
+ public static void setFatalFormatException(boolean flag) {
+ FATAL_EXCEPTION_FORMAT_ERRORS = flag;
+ }
+
+}
+