1 module java.lang.Long; 2 3 import java.lang.util; 4 import java.lang.exceptions; 5 import java.lang.Number; 6 import java.lang.Character; 7 import java.lang.Class; 8 import java.lang.String; 9 10 version(Tango){ 11 static import tango.text.convert.Integer; 12 } else { // Phobos 13 static import std.conv; 14 static import std..string; 15 } 16 17 class Long : Number { 18 public static const long MIN_VALUE = long.min; 19 public static const long MAX_VALUE = long.max; 20 private long value; 21 this( long value ){ 22 super(); 23 this.value = value; 24 } 25 this( String str ){ 26 super(); 27 this.value = parseLong(str); 28 } 29 override 30 public byte byteValue(){ 31 return cast(byte)value; 32 } 33 34 override 35 public short shortValue(){ 36 return cast(short)value; 37 } 38 39 override 40 public int intValue(){ 41 return cast(int)value; 42 } 43 44 override 45 public long longValue(){ 46 return value; 47 } 48 49 override 50 public float floatValue(){ 51 return cast(float)value; 52 } 53 54 override 55 public double doubleValue(){ 56 return cast(double)value; 57 } 58 public static long parseLong(String s){ 59 return parseLong( s, 10 ); 60 } 61 public static long parseLong(String s, int radix){ 62 if(radix < Character.MIN_RADIX || radix > Character.MAX_RADIX) 63 throw new NumberFormatException("The radix is out of range"); 64 version(Tango){ 65 try{ 66 return tango.text.convert.Integer.toLong( s, radix ); 67 } 68 catch( IllegalArgumentException e ){ 69 throw new NumberFormatException( e ); 70 } 71 } else { // Phobos 72 try{ 73 immutable res = std.conv.parse!(long)( s, radix ); 74 if(s.length) 75 throw new NumberFormatException("String has invalid characters: " ~ s); 76 return res; 77 } 78 catch( std.conv.ConvException e ){ 79 throw new NumberFormatException( e ); 80 } 81 } 82 } 83 public static String toString( long i ){ 84 return String_valueOf(i); 85 } 86 private static Class TYPE_; 87 public static Class TYPE(){ 88 if( TYPE_ is null ){ 89 TYPE_ = Class.fromType!(long); 90 } 91 return TYPE_; 92 } 93 94 } 95 alias Long ValueWrapperLong; 96