01: package org.vraptor.component;
02:
03: import java.util.Collection;
04: import java.util.List;
05:
06: import org.vraptor.annotations.In;
07: import org.vraptor.interceptor.InterceptorType;
08: import org.vraptor.introspector.ReadParameter;
09: import org.vraptor.scope.ScopeType;
10:
11: /**
12: * Wrapper for a component type in vraptor.
13: *
14: * @author Guilherme Silveira
15: */
16: public interface ComponentType extends Outjectable {
17:
18: ScopeType getScope();
19:
20: /**
21: * Returns the component name
22: *
23: * @return the name
24: */
25: String getName();
26:
27: /**
28: * Returns a specifig logic from this component
29: *
30: * @param key
31: * the logic name
32: * @return the logic itself
33: * @throws LogicNotFoundException
34: * you are asking for something that doesn't belong to me
35: */
36: LogicMethod getLogic(String key) throws LogicNotFoundException;
37:
38: /**
39: * Returns all interceptors for this component class
40: *
41: * @return the interceptor's list
42: */
43: List<InterceptorType> getInterceptors();
44:
45: /**
46: * @return Returns the inAnnotations.
47: */
48: List<FieldAnnotation<In>> getInAnnotations();
49:
50: /**
51: * @return Returns the read parameters for this class.
52: */
53: List<ReadParameter> getReadParameters();
54:
55: /**
56: * Returns all actions.
57: *
58: * @return all logics
59: * @throws LogicNotFoundException
60: */
61: Collection<LogicMethod> getLogics() throws LogicNotFoundException;
62:
63: Class getComponentClass();
64:
65: @Deprecated
66: String getKey();
67:
68: @Deprecated
69: String getDestroyLogicName();
70:
71: /**
72: * Returns this components contructor.
73: *
74: * @return the contructor
75: * @since 2.2.4
76: */
77: public BeanConstructor getConstructor();
78:
79: }
|