01: /*
02: * Copyright 2005-2006 the original author or authors.
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
05: * in compliance with the License. You may obtain a copy of the License at
06: *
07: * http://www.apache.org/licenses/LICENSE-2.0
08: *
09: * Unless required by applicable law or agreed to in writing, software distributed under the License
10: * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11: * or implied. See the License for the specific language governing permissions and limitations under
12: * the License.
13: */
14:
15: package org.strecks.injection.factory;
16:
17: import java.beans.PropertyDescriptor;
18: import java.lang.annotation.Annotation;
19:
20: import org.strecks.injection.handler.InjectionHandler;
21:
22: /**
23: * Interface for extracting information from an annotation which itself uses the <code>InjectFactoryClass</code>
24: * annotation, to create an <code>InjectionHandler</code> implementation used for a specific type of action class
25: * dependency injection
26: * @author Phil Zoio
27: */
28: public interface InjectionHandlerFactory {
29:
30: /**
31: * Defines operation for creating an <code>InjectionHandler</code> instance from an annotation which itself uses
32: * the <code>InjectionFactoryClass</code> annotation to declare the <code>InjectionHandlerFactory</code>
33: * implementation class
34: * @param annotation
35: * the dependency injection annotation
36: * @param clazz
37: * the declared type of the injected parameter
38: * @param propertyDescriptor
39: * <code>PropertyDescriptor</code> for the annotated method
40: * @return the <code>InjectionHandler</code> used to handle the dependency injection operation
41: */
42: public InjectionHandler createInjectionHandler(
43: Annotation annotation, Class clazz,
44: PropertyDescriptor propertyDescriptor);
45:
46: }
|