01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one
03: * or more contributor license agreements. See the NOTICE file
04: * distributed with this work for additional information
05: * regarding copyright ownership. The ASF licenses this file
06: * to you under the Apache License, Version 2.0 (the
07: * "License"); you may not use this file except in compliance
08: * with the License. You may obtain a copy of the License at
09: *
10: * http://www.apache.org/licenses/LICENSE-2.0
11: *
12: * Unless required by applicable law or agreed to in writing,
13: * software distributed under the License is distributed on an
14: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15: * KIND, either express or implied. See the License for the
16: * specific language governing permissions and limitations
17: * under the License.
18: */
19: package org.apache.axis2.jaxws.server.endpoint.injection;
20:
21: import org.apache.axis2.jaxws.injection.ResourceInjectionException;
22:
23: import java.lang.reflect.Field;
24: import java.lang.reflect.Method;
25:
26: /*
27: * Resource Injection is responsible to Injecting Resource Object to endpoint Instance at runtime.
28: */
29:
30: public interface ResourceInjector {
31:
32: /**
33: * Inject resource on Filed, Method or Class depending on how the @Resource annotation is defined.
34: *
35: * @param resource
36: * @param instance
37: */
38: abstract void inject(Object resource, Object instance)
39: throws ResourceInjectionException;
40:
41: /**
42: * Resource will be injected on the field.
43: *
44: * @param resource
45: * @param instance
46: * @param field
47: * @return
48: */
49: abstract void injectOnField(Object resource, Object instance,
50: Field field) throws ResourceInjectionException;
51:
52: /**
53: * Resource will be injected on the Method.
54: *
55: * @param resource
56: * @param instance
57: * @param method
58: * @return
59: */
60: abstract void injectOnMethod(Object resource, Object instance,
61: Method method) throws ResourceInjectionException;
62:
63: /**
64: * Resource will be injection on the class.
65: * @param resource
66: * @param instance
67: * @param clazz
68: * @return
69: */
70: abstract void injectOnClass(Object resource, Object instance,
71: Class clazz) throws ResourceInjectionException;
72: }
|