MentaContainer

Rev

Rev 57 | Rev 59 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 57 Rev 58
Line 41... Line 41...
41
                       
41
                       
42
                        for(ThreadLocal<Object> t : threadLocalsCache.values()) {
42
                        for(ThreadLocal<Object> t : threadLocalsCache.values()) {
43
                               
43
                               
44
                                t.set(null);
44
                                t.set(null);
45
                        }
45
                        }
-
 
46
                }
-
 
47
        }
-
 
48
       
-
 
49
        public <T> T clear(String key) {
-
 
50
               
-
 
51
                Scope scope = scopes.get(key);
-
 
52
               
-
 
53
                if (scope == Scope.SINGLETON) {
-
 
54
                       
-
 
55
                        return (T) singletonsCache.remove(key);
-
 
56
                       
-
 
57
                } else if (scope == Scope.THREAD) {
-
 
58
                       
-
 
59
                        ThreadLocal<Object> t = threadLocalsCache.get(key);
-
 
60
                       
-
 
61
                        if (t != null) {
-
 
62
                               
-
 
63
                                Object o = t.get();
-
 
64
                               
-
 
65
                                if (o != null) {
-
 
66
                                       
-
 
67
                                        t.set(null);
-
 
68
                                       
-
 
69
                                        return (T) o;
-
 
70
                                }
-
 
71
                        }
-
 
72
                       
-
 
73
                        return null;
-
 
74
               
-
 
75
                } else if (scope == Scope.NONE) {
-
 
76
                       
-
 
77
                        return null; // always...
-
 
78
                       
-
 
79
                } else {
-
 
80
                       
-
 
81
                        throw new UnsupportedOperationException("Scope not supported: " + scope);
46
                }
82
                }
47
        }
83
        }
48
84
49
        public <T> T get(String key) {
85
        public <T> T get(String key) {
50
86
Line 230... Line 266...
230
                        public Object get(String key) {
266
                        public Object get(String key) {
231
                               
267
                               
232
                                return MentaContainer.this.get(key);
268
                                return MentaContainer.this.get(key);
233
                        }
269
                        }
234
                       
270
                       
235
                        public boolean contains(String key) {
-
 
-
 
271
                        public boolean hasValue(String key) {
236
                               
272
                               
237
                                return MentaContainer.this.contains(key);
-
 
-
 
273
                                return MentaContainer.this.check(key);
238
                        }
274
                        }
239
                       
275
                       
240
                };
276
                };
241
               
277
               
242
                try {
278
                try {
Line 249... Line 285...
249
                }
285
                }
250
286
251
                return this;
287
                return this;
252
        }
288
        }
253
289
254
        public boolean contains(String key) {
-
 
255
-
 
256
                return beans.containsKey(key);
-
 
-
 
290
        public boolean check(String key) {
-
 
291
               
-
 
292
                Scope scope = scopes.get(key);
-
 
293
               
-
 
294
                if (scope == Scope.NONE) {
-
 
295
                       
-
 
296
                        return false; // always...
-
 
297
                       
-
 
298
                } else if (scope == Scope.SINGLETON) {
-
 
299
                       
-
 
300
                        return singletonsCache.containsKey(key);
-
 
301
                       
-
 
302
                } else if (scope == Scope.THREAD) {
-
 
303
                       
-
 
304
                        ThreadLocal<Object> t = threadLocalsCache.get(key);
-
 
305
                       
-
 
306
                        return t.get() != null;
-
 
307
                       
-
 
308
                } else {
-
 
309
                       
-
 
310
                        throw new UnsupportedOperationException("This scope is not supported: " + scope);
-
 
311
                }
257
        }
312
        }
258
}
313
}