]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/formula/FormulaError2.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.spreadsheet.graph / src / org / simantics / spreadsheet / graph / formula / FormulaError2.java
diff --git a/bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/formula/FormulaError2.java b/bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/formula/FormulaError2.java
new file mode 100644 (file)
index 0000000..cb54334
--- /dev/null
@@ -0,0 +1,54 @@
+package org.simantics.spreadsheet.graph.formula;\r
+\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+import org.apache.poi.util.Internal;\r
+import org.simantics.databoard.binding.mutable.Variant;\r
+\r
+public enum FormulaError2{\r
+       @Internal\r
+       _NO_ERROR(-1, "(no error)"),NULL(0x00, "#NULL"),DIV0(0x07,"#DIV/0!"),VALUE(0x0F,\r
+       "#VALUE!"),REF(0x17,"#REF!"),NAME(0x1D,"#NAME?"),NUM(0x24,"#NUM!"),NA(0x2A, "#N/A"),\r
+       CIRCULAR_REF(0xFFFFFFC4, "~CIRCULAR~REF~"),FUNCTION_NOT_IMPLEMENTED(0xFFFFFFE2,"~FUNCTION~NOT~IMPLEMENTED~");\r
+       \r
+       private final String text;\r
+       //private final Integer longType;\r
+       //private final byte shortType;\r
+       \r
+       private static Map<String, FormulaError2> smap = new HashMap<String, FormulaError2>();\r
+       \r
+       private FormulaError2(int type, String text){\r
+               //this.longType = type;\r
+               //this.shortType = (byte)type;\r
+               this.text = text;\r
+       }\r
+       \r
+       static {\r
+               for(FormulaError2 error : values()) {\r
+                       smap.put(error.getString(), error);\r
+               }\r
+       }\r
+       \r
+       public String getString(){\r
+               return this.text;\r
+       }\r
+       \r
+       public static FormulaError2 forString(String errorName){\r
+        FormulaError2 err = smap.get(errorName);\r
+        return err;\r
+    }\r
+       \r
+       public static FormulaError2 forObject(Object errorObj){\r
+               if(errorObj instanceof Variant)\r
+                       return forString(((Variant)errorObj).getValue().toString());\r
+               else\r
+                       return forString(errorObj.toString());\r
+       }\r
+       \r
+       public static String handleErrorCall(Object value){\r
+               if(value==null) return VALUE.getString();\r
+               FormulaError2 error = FormulaError2.forObject(value);\r
+               if(error!=null) return error.getString();\r
+               return VALUE.getString();\r
+       }\r
+}
\ No newline at end of file