📄 introspector.java
字号:
package xyz.frame.introspector;import java.util.List;import xyz.frame.LogicRequest;import xyz.frame.annotations.In;import xyz.frame.annotations.Out;import xyz.frame.component.ComponentInstantiationException;import xyz.frame.component.ComponentType;import xyz.frame.component.FieldAnnotation;import xyz.frame.converter.ConverterManager;import xyz.frame.i18n.Message;import xyz.frame.util.GettingException;import xyz.frame.util.SettingException;/** * The instrospector is responsible for doing injection/outjection and pushing * parameters in the business logic. * * @author Guilherme Silveira */public interface Introspector { /** * Reads all parameters from the request and tries to fill the read * annotation of a class. * */ public List<Message> readParameters(ComponentType clazz, Object component, LogicRequest logicRequest, ConverterManager converterManager) throws SettingException; /** * Call for injection: tries to inject each field listed on the * inAnnotations on object component using the logic context passed as * argument * * @param inAnnotations * annotations * @param component * current object * @param context * logic context * @throws ComponentInstantiationException * unable to instantiate some component for the injection * @throws SettingException * unable to set some field for the injection */ public abstract void inject(List<FieldAnnotation<In>> inAnnotations, Object component, LogicRequest context) throws ComponentInstantiationException, SettingException; /** * Oujection * * @param outAnnotations * @param component * @param context * @throws GettingException */ public abstract void outject(List<FieldAnnotation<Out>> outAnnotations, Object component, LogicRequest context) throws GettingException;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -