All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commons.box.bean.BeanAccess Maven / Gradle / Ivy

The newest version!
package commons.box.bean;


import commons.box.app.AppError;
import commons.box.util.Strs;

/**
 * Bean操作,封装了针对metaBean,map和object的统一访问机制
 * 

创建作者:xingxiuyi

*

版权所属:xingxiuyi

*/ public interface BeanAccess { public static final Class DEFAULT_TYPE = Object.class; /** * @param type * @param * @return * @throws AppError */ public T inst(Class type) throws AppError; /** * 获取属性 * * @param bean * @param property * @param * @param * @return * @throws AppError */ public O prop(T bean, String property) throws AppError; /** * 设置属性 * * @param bean * @param property * @param value * @param * @param * @throws AppError */ public void prop(T bean, String property, O value) throws AppError; /** * 获取字段值 * * @param bean * @param name * @param * @param * @return * @throws AppError */ public O field(T bean, String name) throws AppError; /** * 设置字段值 * * @param bean * @param name * @param value * @param * @param * @throws AppError */ public void field(T bean, String name, O value) throws AppError; /** * 调用方法 * * @param bean * @param method * @param args * @param * @param * @return * @throws AppError */ public R invoke(T bean, String method, Object... args) throws Throwable; /** * 是否包含属性 * * @param bean * @param name * @param * @return */ public boolean has(T bean, String name); /** * 是否包含字段 * * @param bean * @param name * @param * @return */ public boolean hasField(T bean, String name); /** * 是否包含方法 * * @param bean * @param method * @param args * @param * @return */ public boolean canInvoke(T bean, String method, Object... args); /** * 属性名 *

* 对于Object返回Bean Property名, 包含通过getter或setter访问的属性和field *

* 对于map返回keys * * @param bean * @param * @return */ public String[] props(T bean); /** * 字段名 *

* 对于Object来说此方法只返回可公共访问的Field,不包括通常意义的property(包含getter或setter) *

* 对于map返回keys,与property一致 * * @param bean * @param * @return */ public String[] fields(T bean); /** * 获取属性对应的类型 如果属性为空 返回bean当前类型 属性不存在返回Object 注意此方法返回永远不为空 * * @param bean * @param prop * @param * @return */ public Class type(T bean, String prop); /** * 是否表示本对象的属性 用于type判断过程 * 以下值表示本对象: * 空 空字符串 $ . * * @param prop * @return */ default boolean isThis(String prop) { return (Strs.isBlank(prop) || Strs.equals(prop, "$") || Strs.equals(prop, ".")); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy