diff options
Diffstat (limited to 'jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/common')
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; + } + +} + |