01: /**
02: * Copyright (C) 2006 Google Inc.
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
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: */package com.google.inject;
16:
17: import java.lang.reflect.Member;
18:
19: /**
20: * Context of the current injection.
21: *
22: * @author crazybob@google.com (Bob Lee)
23: */
24: interface Context {
25:
26: /**
27: * Gets the {@link Injector}.
28: */
29: Injector getInjector();
30:
31: /**
32: * Gets the field, method or constructor which is being injected. Returns
33: * {@code null} if the object isn't being injected into anywhere (i.e. it's
34: * preloaded, returned from {@link Provider#get()}, etc.).
35: */
36: Member getMember();
37:
38: /**
39: * Gets the index of the parameter which is being injected. Returns {@code -1}
40: * if a parameter isn't being injected.
41: */
42: int getParameterIndex();
43:
44: /**
45: * Gets the binding key for the object currently being retrieved.
46: */
47: Key<?> getKey();
48: }
|