1 module java.util.TreeSet;
2 
3 import java.lang.all;
4 import java.util.SortedSet;
5 import java.util.AbstractSet;
6 import java.util.Collection;
7 import java.util.Iterator;
8 import java.util.Comparator;
9 
10 version(Tango){
11     static import tango.util.container.SortedMap;
12 } else { // Phobos
13 }
14 
15 class TreeSet : AbstractSet, SortedSet {
16 
17     version(Tango){
18         alias tango.util.container.SortedMap.SortedMap!(Object,int) SetType;
19         private SetType set;
20     } else { // Phobos
21     }
22 
23     public this(){
24         version(Tango){
25             set = new SetType();
26         } else { // Phobos
27             implMissingInPhobos();
28         }
29     }
30     public this(Collection c){
31         implMissing( __FILE__, __LINE__ );
32     }
33     public this(Comparator c){
34         implMissing( __FILE__, __LINE__ );
35     }
36     public this(SortedSet){
37         implMissing( __FILE__, __LINE__ );
38     }
39 
40     override
41     public bool    add(Object o){
42         version(Tango){
43             return set.add(o, 0);
44         } else { // Phobos
45             implMissingInPhobos();
46             return false;
47         }
48     }
49     override
50     public bool    add(String o){
51         version(Tango){
52             return add(stringcast(o));
53         } else { // Phobos
54             implMissingInPhobos();
55             return false;
56         }
57     }
58     override
59     public bool    addAll(Collection c){
60         version(Tango){
61             foreach( o; c ){
62                 add(o);
63             }
64             return true;
65         } else { // Phobos
66             implMissingInPhobos();
67             return false;
68         }
69     }
70     override
71     public void   clear(){
72         version(Tango){
73             set.clear();
74         } else { // Phobos
75             implMissingInPhobos();
76         }
77     }
78     override
79     public bool    contains(Object o){
80         version(Tango){
81             return set.containsKey(o);
82         } else { // Phobos
83             implMissingInPhobos();
84             return false;
85         }
86     }
87     override
88     public bool     contains(String o){
89         version(Tango){
90             return contains(stringcast(o));
91         } else { // Phobos
92             implMissingInPhobos();
93             return false;
94         }
95     }
96     override
97     public bool    containsAll(Collection c){
98         version(Tango){
99             foreach( o; c ){
100                 if( !contains(o) ){
101                     return false;
102                 }
103             }
104             return true;
105         } else { // Phobos
106             implMissingInPhobos();
107             return false;
108         }
109     }
110     public Comparator     comparator(){
111         implMissing( __FILE__, __LINE__ );
112         return null;
113     }
114     public override equals_t    opEquals(Object o){
115         implMissing( __FILE__, __LINE__ );
116         return 0;
117     }
118     public Object         first(){
119         implMissing( __FILE__, __LINE__ );
120         return null;
121     }
122     public override hash_t    toHash(){
123         implMissingSafe( __FILE__, __LINE__ );
124         return 0;
125     }
126     public SortedSet      headSet(Object toElement){
127         implMissing( __FILE__, __LINE__ );
128         return null;
129     }
130     override
131     public bool    isEmpty(){
132         version(Tango){
133             return set.isEmpty();
134         } else { // Phobos
135             implMissingInPhobos();
136             return false;
137         }
138     }
139     override
140     public Iterator   iterator(){
141         implMissing( __FILE__, __LINE__ );
142         return null;
143     }
144     public Object         last(){
145         implMissing( __FILE__, __LINE__ );
146         return null;
147     }
148     override
149     public bool    remove(Object o){
150         implMissing( __FILE__, __LINE__ );
151         return false;
152     }
153     override
154     public bool remove(String key){
155         version(Tango){
156             return remove(stringcast(key));
157         } else { // Phobos
158             implMissingInPhobos();
159             return false;
160         }
161     }
162     override
163     public bool    removeAll(Collection c){
164         implMissing( __FILE__, __LINE__ );
165         return false;
166     }
167     override
168     public bool    retainAll(Collection c){
169         implMissing( __FILE__, __LINE__ );
170         return false;
171     }
172     override
173     public int    size(){
174         version(Tango){
175             return set.size();
176         } else { // Phobos
177             implMissingInPhobos();
178             return 0;
179         }
180     }
181     public SortedSet      subSet(Object fromElement, Object toElement){
182         implMissing( __FILE__, __LINE__ );
183         return null;
184     }
185     public SortedSet      tailSet(Object fromElement){
186         implMissing( __FILE__, __LINE__ );
187         return null;
188     }
189     override
190     public Object[]   toArray(){
191         implMissing( __FILE__, __LINE__ );
192         return null;
193     }
194     override
195     public Object[]   toArray(Object[] a){
196         implMissing( __FILE__, __LINE__ );
197         return null;
198     }
199     public override String toString(){
200         implMissing( __FILE__, __LINE__ );
201         return null;
202     }
203 
204 
205     // only for D
206     override
207     public int opApply (int delegate(ref Object value) dg){
208         version(Tango){
209             int localDg( ref Object key, ref int value ){
210                 return dg( key );
211             }
212             return set.opApply(&localDg);
213         } else { // Phobos
214             implMissingInPhobos();
215             return 0;
216         }
217     }
218 }
219