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