diff org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/NumberToStringConverter.d @ 85:6be48cf9f95c

Work on databinding
author Frank Benoit <benoit@tionex.de>
date Sat, 18 Apr 2009 13:54:50 +0200
parents 383ce7bd736b
children 9e0ab372d5d8
line wrap: on
line diff
--- a/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/NumberToStringConverter.d	Sat Apr 18 09:25:29 2009 +0200
+++ b/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/NumberToStringConverter.d	Sat Apr 18 13:54:50 2009 +0200
@@ -13,6 +13,7 @@
 import org.eclipse.core.databinding.conversion.Converter;
 
 import java.lang.all;
+import java.nonstandard.RuntimeTraits;
 
 import java.math.BigInteger;
 
@@ -26,7 +27,7 @@
  */
 public class NumberToStringConverter : Converter {
     private final NumberFormat numberFormat;
-    private final ClassInfo fromType;
+    private final TypeInfo fromType;
     private bool fromTypeIsLong;
     private bool fromTypeIsDecimalType;
     private bool fromTypeIsBigInteger;
@@ -40,20 +41,20 @@
      * @param numberFormat
      * @param fromType
      */
-    private this(NumberFormat numberFormat, ClassInfo fromType) {
-        super(fromType, String.classinfo);
+    private this(NumberFormat numberFormat, TypeInfo fromType) {
+        super(fromType, typeid(StringCls));
 
         this.numberFormat = numberFormat;
         this.fromType = fromType;
 
-        if (Integer.classinfo.equals(fromType) || Integer.TYPE.equals(fromType)
-                || Long.classinfo.equals(fromType) || Long.TYPE.equals(fromType)) {
+        if (typeid(Integer) is fromType || Integer.TYPE is fromType
+                || typeid(Long) is (fromType) || Long.TYPE is (fromType)) {
             fromTypeIsLong = true;
-        } else if (Float.classinfo.equals(fromType) || Float.TYPE.equals(fromType)
-                || Double.classinfo.equals(fromType)
-                || Double.TYPE.equals(fromType)) {
+        } else if (typeid(Float) is (fromType) || Float.TYPE is (fromType)
+                || typeid(Double) is (fromType)
+                || Double.TYPE is (fromType)) {
             fromTypeIsDecimalType = true;
-        } else if (BigInteger.classinfo.equals(fromType)) {
+        } else if (typeid(BigInteger) is (fromType)) {
             fromTypeIsBigInteger = true;
         }
     }
@@ -71,8 +72,8 @@
      */
     public Object convert(Object fromObject) {
         // Null is allowed when the type is not primitve.
-        if (fromObject is null && !fromType.isPrimitive()) {
-            return ""; //$NON-NLS-1$
+        if (fromObject is null && !isJavaPrimitive(fromType)) {
+            return stringcast(""); //$NON-NLS-1$
         }
 
         Number number = cast(Number) fromObject;
@@ -91,7 +92,7 @@
             }
         }
 
-        return result;
+        return stringcast(result);
     }
 
     /**
@@ -111,7 +112,7 @@
     public static NumberToStringConverter fromDouble(NumberFormat numberFormat,
             bool primitive) {
         return new NumberToStringConverter(numberFormat,
-                (primitive) ? Double.TYPE : Double.classinfo);
+                (primitive) ? Double.TYPE : typeid(Double));
     }
 
     /**
@@ -131,7 +132,7 @@
     public static NumberToStringConverter fromLong(NumberFormat numberFormat,
             bool primitive) {
         return new NumberToStringConverter(numberFormat,
-                (primitive) ? Long.TYPE : Long.classinfo);
+                (primitive) ? Long.TYPE : typeid(Long));
     }
 
     /**
@@ -151,7 +152,7 @@
     public static NumberToStringConverter fromFloat(NumberFormat numberFormat,
             bool primitive) {
         return new NumberToStringConverter(numberFormat,
-                (primitive) ? Float.TYPE : Float.classinfo);
+                (primitive) ? Float.TYPE : typeid(Float));
     }
 
     /**
@@ -171,7 +172,7 @@
     public static NumberToStringConverter fromInteger(
             NumberFormat numberFormat, bool primitive) {
         return new NumberToStringConverter(numberFormat,
-                (primitive) ? Integer.TYPE : Integer.classinfo);
+                (primitive) ? Integer.TYPE : typeid(Integer));
     }
 
     /**
@@ -187,6 +188,6 @@
      */
     public static NumberToStringConverter fromBigInteger(
             NumberFormat numberFormat) {
-        return new NumberToStringConverter(numberFormat, BigInteger.classinfo);
+        return new NumberToStringConverter(numberFormat, typeid(BigInteger));
     }
 }