1 module java.lang.Boolean;
2 
3 import java.lang.util;
4 import java.lang.System;
5 import java.lang.Class;
6 
7 version(Tango){
8     static import tango.text.Ascii;
9 } else { // Phobos
10     static import std..string;
11 }
12 class Boolean : ValueWrapperT!(bool) {
13     public static Boolean TRUE;
14     public static Boolean FALSE;
15 
16     static this(){
17         TRUE  = new Boolean(true);
18         FALSE = new Boolean(false);
19     }
20     public this( bool v ){
21         super(v);
22     }
23 
24     alias ValueWrapperT!(bool).opEquals opEquals;
25     public equals_t opEquals( int other ){
26         return value == ( other !is 0 );
27     }
28     override
29     public equals_t opEquals( Object other ){
30         if( auto o = cast(Boolean)other ){
31             return value == o.value;
32         }
33         return false;
34     }
35     public bool booleanValue(){
36         return value;
37     }
38     public static Boolean valueOf( String s ){
39         if( s == "yes" || s == "true" ){
40             return TRUE;
41         }
42         return FALSE;
43     }
44     public static Boolean valueOf( bool b ){
45         return b ? TRUE : FALSE;
46     }
47     public static bool getBoolean(String name){
48         version(Tango){
49             return tango.text.Ascii.icompare(System.getProperty(name, "false"), "true" ) is 0;
50         } else { // Phobos
51             return std..string.icmp(System.getProperty(name, "false"), "true" ) is 0;
52         }
53     }
54 
55     private static Class TYPE_;
56     public static Class TYPE(){
57         if( TYPE_ is null ){
58             TYPE_ = Class.fromType!(bool);
59         }
60         return TYPE_;
61     }
62 
63 }
64 
65 alias Boolean    ValueWrapperBool;