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 }