]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.spreadsheet/src/org/simantics/spreadsheet/solver/formula/FormulaError2.java
Adopt spreadsheet changes made in Balas development
[simantics/platform.git] / bundles / org.simantics.spreadsheet / src / org / simantics / spreadsheet / solver / formula / FormulaError2.java
1 package org.simantics.spreadsheet.solver.formula;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
6 import org.apache.poi.util.Internal;
7 import org.simantics.databoard.binding.mutable.Variant;
8
9 public enum FormulaError2{
10     @Internal
11     _NO_ERROR(-1, "(no error)"),NULL(0x00, "#NULL"),DIV0(0x07,"#DIV/0!"),VALUE(0x0F,
12             "#VALUE!"),REF(0x17,"#REF!"),NAME(0x1D,"#NAME?"),NUM(0x24,"#NUM!"),NA(0x2A, "#N/A"),
13     CIRCULAR_REF(0xFFFFFFC4, "~CIRCULAR~REF~"),FUNCTION_NOT_IMPLEMENTED(0xFFFFFFE2,"~FUNCTION~NOT~IMPLEMENTED~");
14
15     private final String text;
16     //private final Integer longType;
17     //private final byte shortType;
18
19     private static Map<String, FormulaError2> smap = new HashMap<String, FormulaError2>();
20
21     private FormulaError2(int type, String text){
22         //this.longType = type;
23         //this.shortType = (byte)type;
24         this.text = text;
25     }
26
27     static {
28         for(FormulaError2 error : values()) {
29             smap.put(error.getString(), error);
30         }
31     }
32
33     public String getString(){
34         return this.text;
35     }
36
37     public static FormulaError2 forString(String errorName){
38         FormulaError2 err = smap.get(errorName);
39         return err;
40     }
41
42     public static FormulaError2 forObject(Object errorObj){
43         if(errorObj instanceof Variant)
44             return forString(((Variant)errorObj).getValue().toString());
45         else
46             return forString(errorObj.toString());
47     }
48
49     public static String handleErrorCall(Object value){
50         if(value==null) return VALUE.getString();
51         FormulaError2 error = FormulaError2.forObject(value);
52         if(error!=null) return error.getString();
53         return VALUE.getString();
54     }
55 }