Mercurial > projects > dwt2
comparison org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/NumberToStringConverter.d @ 88:9e0ab372d5d8
Revert from TypeInfo/ClassInfo to java.lang.Class
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sun, 19 Apr 2009 11:10:09 +0200 |
parents | 6be48cf9f95c |
children |
comparison
equal
deleted
inserted
replaced
87:8594250b1d1c | 88:9e0ab372d5d8 |
---|---|
11 | 11 |
12 module org.eclipse.core.databinding.conversion.NumberToStringConverter; | 12 module org.eclipse.core.databinding.conversion.NumberToStringConverter; |
13 import org.eclipse.core.databinding.conversion.Converter; | 13 import org.eclipse.core.databinding.conversion.Converter; |
14 | 14 |
15 import java.lang.all; | 15 import java.lang.all; |
16 import java.nonstandard.RuntimeTraits; | |
17 | 16 |
18 import java.math.BigInteger; | 17 import java.math.BigInteger; |
19 | 18 |
20 import com.ibm.icu.text.NumberFormat; | 19 import com.ibm.icu.text.NumberFormat; |
21 | 20 |
25 * | 24 * |
26 * @since 1.0 | 25 * @since 1.0 |
27 */ | 26 */ |
28 public class NumberToStringConverter : Converter { | 27 public class NumberToStringConverter : Converter { |
29 private final NumberFormat numberFormat; | 28 private final NumberFormat numberFormat; |
30 private final TypeInfo fromType; | 29 private final Class fromType; |
31 private bool fromTypeIsLong; | 30 private bool fromTypeIsLong; |
32 private bool fromTypeIsDecimalType; | 31 private bool fromTypeIsDecimalType; |
33 private bool fromTypeIsBigInteger; | 32 private bool fromTypeIsBigInteger; |
34 | 33 |
35 /** | 34 /** |
39 * </p> | 38 * </p> |
40 * | 39 * |
41 * @param numberFormat | 40 * @param numberFormat |
42 * @param fromType | 41 * @param fromType |
43 */ | 42 */ |
44 private this(NumberFormat numberFormat, TypeInfo fromType) { | 43 private this(NumberFormat numberFormat, Class fromType) { |
45 super(fromType, typeid(StringCls)); | 44 super(fromType, Class.fromType!(StringCls)); |
46 | 45 |
47 this.numberFormat = numberFormat; | 46 this.numberFormat = numberFormat; |
48 this.fromType = fromType; | 47 this.fromType = fromType; |
49 | 48 |
50 if (typeid(Integer) is fromType || Integer.TYPE is fromType | 49 if (Class.fromType!(Integer) is fromType || Integer.TYPE is fromType |
51 || typeid(Long) is (fromType) || Long.TYPE is (fromType)) { | 50 || Class.fromType!(Long) is (fromType) || Long.TYPE is (fromType)) { |
52 fromTypeIsLong = true; | 51 fromTypeIsLong = true; |
53 } else if (typeid(Float) is (fromType) || Float.TYPE is (fromType) | 52 } else if (Class.fromType!(Float) is (fromType) || Float.TYPE is (fromType) |
54 || typeid(Double) is (fromType) | 53 || Class.fromType!(Double) is (fromType) |
55 || Double.TYPE is (fromType)) { | 54 || Double.TYPE is (fromType)) { |
56 fromTypeIsDecimalType = true; | 55 fromTypeIsDecimalType = true; |
57 } else if (typeid(BigInteger) is (fromType)) { | 56 } else if (Class.fromType!(BigInteger) is (fromType)) { |
58 fromTypeIsBigInteger = true; | 57 fromTypeIsBigInteger = true; |
59 } | 58 } |
60 } | 59 } |
61 | 60 |
62 /** | 61 /** |
70 * was constructed for a non primitive type. | 69 * was constructed for a non primitive type. |
71 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object) | 70 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object) |
72 */ | 71 */ |
73 public Object convert(Object fromObject) { | 72 public Object convert(Object fromObject) { |
74 // Null is allowed when the type is not primitve. | 73 // Null is allowed when the type is not primitve. |
75 if (fromObject is null && !isJavaPrimitive(fromType)) { | 74 if (fromObject is null && !fromType.isPrimitive()) { |
76 return stringcast(""); //$NON-NLS-1$ | 75 return stringcast(""); //$NON-NLS-1$ |
77 } | 76 } |
78 | 77 |
79 Number number = cast(Number) fromObject; | 78 Number number = cast(Number) fromObject; |
80 String result = null; | 79 String result = null; |
110 * @return Double converter with the provided numberFormat | 109 * @return Double converter with the provided numberFormat |
111 */ | 110 */ |
112 public static NumberToStringConverter fromDouble(NumberFormat numberFormat, | 111 public static NumberToStringConverter fromDouble(NumberFormat numberFormat, |
113 bool primitive) { | 112 bool primitive) { |
114 return new NumberToStringConverter(numberFormat, | 113 return new NumberToStringConverter(numberFormat, |
115 (primitive) ? Double.TYPE : typeid(Double)); | 114 (primitive) ? Double.TYPE : Class.fromType!(Double)); |
116 } | 115 } |
117 | 116 |
118 /** | 117 /** |
119 * @param primitive | 118 * @param primitive |
120 * <code>true</code> if the type is a long | 119 * <code>true</code> if the type is a long |
130 * @return Long convert with the provided numberFormat | 129 * @return Long convert with the provided numberFormat |
131 */ | 130 */ |
132 public static NumberToStringConverter fromLong(NumberFormat numberFormat, | 131 public static NumberToStringConverter fromLong(NumberFormat numberFormat, |
133 bool primitive) { | 132 bool primitive) { |
134 return new NumberToStringConverter(numberFormat, | 133 return new NumberToStringConverter(numberFormat, |
135 (primitive) ? Long.TYPE : typeid(Long)); | 134 (primitive) ? Long.TYPE : Class.fromType!(Long)); |
136 } | 135 } |
137 | 136 |
138 /** | 137 /** |
139 * @param primitive | 138 * @param primitive |
140 * <code>true</code> if the type is a float | 139 * <code>true</code> if the type is a float |
150 * @return Float converter with the provided numberFormat | 149 * @return Float converter with the provided numberFormat |
151 */ | 150 */ |
152 public static NumberToStringConverter fromFloat(NumberFormat numberFormat, | 151 public static NumberToStringConverter fromFloat(NumberFormat numberFormat, |
153 bool primitive) { | 152 bool primitive) { |
154 return new NumberToStringConverter(numberFormat, | 153 return new NumberToStringConverter(numberFormat, |
155 (primitive) ? Float.TYPE : typeid(Float)); | 154 (primitive) ? Float.TYPE : Class.fromType!(Float)); |
156 } | 155 } |
157 | 156 |
158 /** | 157 /** |
159 * @param primitive | 158 * @param primitive |
160 * <code>true</code> if the type is a int | 159 * <code>true</code> if the type is a int |
170 * @return Integer converter with the provided numberFormat | 169 * @return Integer converter with the provided numberFormat |
171 */ | 170 */ |
172 public static NumberToStringConverter fromInteger( | 171 public static NumberToStringConverter fromInteger( |
173 NumberFormat numberFormat, bool primitive) { | 172 NumberFormat numberFormat, bool primitive) { |
174 return new NumberToStringConverter(numberFormat, | 173 return new NumberToStringConverter(numberFormat, |
175 (primitive) ? Integer.TYPE : typeid(Integer)); | 174 (primitive) ? Integer.TYPE : Class.fromType!(Integer)); |
176 } | 175 } |
177 | 176 |
178 /** | 177 /** |
179 * @return BigInteger convert for the default locale | 178 * @return BigInteger convert for the default locale |
180 */ | 179 */ |
186 * @param numberFormat | 185 * @param numberFormat |
187 * @return BigInteger converter with the provided numberFormat | 186 * @return BigInteger converter with the provided numberFormat |
188 */ | 187 */ |
189 public static NumberToStringConverter fromBigInteger( | 188 public static NumberToStringConverter fromBigInteger( |
190 NumberFormat numberFormat) { | 189 NumberFormat numberFormat) { |
191 return new NumberToStringConverter(numberFormat, typeid(BigInteger)); | 190 return new NumberToStringConverter(numberFormat, Class.fromType!(BigInteger)); |
192 } | 191 } |
193 } | 192 } |