]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.databoard/src/org/simantics/databoard/binding/impl/UnsignedLongBinding.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.databoard / src / org / simantics / databoard / binding / impl / UnsignedLongBinding.java
1 package org.simantics.databoard.binding.impl;\r
2 \r
3 import org.simantics.databoard.binding.LongBinding;\r
4 import org.simantics.databoard.binding.error.BindingException;\r
5 import org.simantics.databoard.primitives.UnsignedLong;\r
6 import org.simantics.databoard.type.LongType;\r
7 \r
8 /**\r
9  * Binding of {@link UnsignedLong} to long type.\r
10  * This is bitwise binding, i.e. high values are negative.\r
11  * \r
12  * @author Toni Kalajainen <toni.kalajainen@iki.fi>\r
13  */\r
14 public abstract class UnsignedLongBinding extends LongBinding {\r
15 \r
16         UnsignedLongBinding(LongType type) {\r
17                 super(type);\r
18         }\r
19         \r
20         public static class Immutable extends UnsignedLongBinding {\r
21 \r
22                 public Immutable(LongType type) {\r
23                         super(type);\r
24                 }\r
25 \r
26                 @Override\r
27                 public Object create(Number value) throws BindingException {\r
28                         return UnsignedLong.fromBits(value.longValue());\r
29                 }\r
30 \r
31                 @Override\r
32                 public Object create(String value) throws BindingException {\r
33                         try {\r
34                                 return new UnsignedLong.Immutable(value);\r
35                         } catch (java.lang.IllegalArgumentException e) {\r
36                                 throw new BindingException( e );\r
37                         }\r
38                 }\r
39 \r
40                 @Override\r
41                 public Object create(long value) throws BindingException {\r
42                         return UnsignedLong.fromBits(value);\r
43                 }\r
44 \r
45                 @Override\r
46                 public Object create(Long value) throws BindingException {\r
47                         return UnsignedLong.fromBits(value);\r
48                 }\r
49 \r
50                 @Override\r
51                 public void setValue(Object obj, long value) throws BindingException {\r
52                         throw new BindingException("UnsignedLong is immutable class");\r
53                 }\r
54 \r
55                 @Override\r
56                 public void setValue(Object obj, Number value) throws BindingException {\r
57                         throw new BindingException("UnsignedLong is immutable class");\r
58                 }\r
59                 \r
60                 @Override\r
61                 public boolean isImmutable() {\r
62                         return true;\r
63                 }\r
64                 \r
65                 @Override\r
66                 public boolean isInstance(Object obj) {\r
67                         return obj instanceof UnsignedLong.Immutable;\r
68                 }\r
69                 \r
70         }\r
71 \r
72         public static class Mutable extends UnsignedLongBinding {\r
73 \r
74                 public Mutable(LongType type) {\r
75                         super(type);\r
76                 }\r
77 \r
78                 @Override\r
79                 public Object create(Number value) throws BindingException {\r
80                         return UnsignedLong.Mutable.fromBits(value.longValue());\r
81                 }\r
82 \r
83                 @Override\r
84                 public Object create(String value) throws BindingException {\r
85                         return new UnsignedLong.Mutable(value);\r
86                 }\r
87 \r
88                 @Override\r
89                 public void setValue(Object obj, Number value) throws BindingException {\r
90                         UnsignedLong.Mutable v = (UnsignedLong.Mutable) obj;\r
91                         v.setValue(value.longValue());\r
92                 }\r
93                 \r
94                 @Override\r
95                 public boolean isImmutable() {\r
96                         return false;\r
97                 }\r
98 \r
99                 @Override\r
100                 public Object create(long value) throws BindingException {\r
101                         return UnsignedLong.Mutable.fromBits(value);\r
102                 }\r
103 \r
104                 @Override\r
105                 public Object create(Long value) throws BindingException {\r
106                         return UnsignedLong.Mutable.fromBits(value);\r
107                 }\r
108 \r
109                 @Override\r
110                 public void setValue(Object obj, long value) throws BindingException {\r
111                         UnsignedLong.Mutable v = (UnsignedLong.Mutable) obj;\r
112                         v.setValue(value);\r
113                 }\r
114 \r
115                 @Override\r
116                 public boolean isInstance(Object obj) {\r
117                         return obj instanceof UnsignedLong.Mutable;\r
118                 }\r
119                 \r
120         }       \r
121         \r
122         @Override\r
123         public String toString(Object value) throws BindingException {\r
124                 return value.toString();\r
125         }\r
126 \r
127         @Override\r
128         public Long getValue(Object o) throws BindingException {\r
129                 UnsignedLong v = (UnsignedLong) o;\r
130                 return v.toBits();\r
131         }\r
132 \r
133         @Override\r
134         public long getValue_(Object o) throws BindingException {\r
135                 UnsignedLong v = (UnsignedLong) o;\r
136                 return v.toBits();\r
137         }\r
138 \r
139 }\r