KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > google > inject > ExternalContext


1 /**
2  * Copyright (C) 2006 Google Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package com.google.inject;
18
19 import java.lang.reflect.Member JavaDoc;
20 import java.util.LinkedHashMap JavaDoc;
21
22 /**
23  * An immutable snapshot of the current context which is safe to expose to
24  * client code.
25  *
26  * @author crazybob@google.com (Bob Lee)
27  */

28 class ExternalContext<T> implements Context {
29
30   final Member JavaDoc member;
31   final Key<T> key;
32   final InjectorImpl injector;
33   final int parameterIndex;
34
35   public ExternalContext(Member JavaDoc member, int paramterIndex, Key<T> key,
36       InjectorImpl injector) {
37     this.member = member;
38     this.key = key;
39     this.injector = injector;
40     this.parameterIndex = paramterIndex;
41   }
42
43   public Key<?> getKey() {
44     return this.key;
45   }
46
47   public Injector getInjector() {
48     return injector;
49   }
50
51   public Member JavaDoc getMember() {
52     return member;
53   }
54
55   public int getParameterIndex() {
56     return parameterIndex;
57   }
58
59   public String JavaDoc toString() {
60     return "Context" + new LinkedHashMap JavaDoc<String JavaDoc, Object JavaDoc>() {{
61       put("member", member);
62       put("key", getKey());
63       put("injector", injector);
64     }}.toString();
65   }
66
67   static <T> ExternalContext<T> newInstance(
68       Member JavaDoc member, Key<T> key, InjectorImpl injector) {
69     return new ExternalContext<T>(member, -1, key, injector);
70   }
71
72   static <T> ExternalContext<T> newInstance(Member JavaDoc member, int parameterIndex,
73       Key<T> key, InjectorImpl injector) {
74     return new ExternalContext<T>(member, parameterIndex, key, injector);
75   }
76 }
77
Popular Tags