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

commons.box.app.MetaBeanConfigProperty Maven / Gradle / Ivy

The newest version!
package commons.box.app;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import commons.box.app.bean.MetaAccessProperty;
import commons.box.util.Orders;

import javax.annotation.Nonnull;
import java.io.Serializable;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Date;
import java.util.Locale;
import java.util.Map;

/**
 * MetaBean 的属性
 */
public interface MetaBeanConfigProperty

extends MetaAccessProperty, MetaLabelValue, HasKey, DataName, DataLabel, DataObject, Comparable>, Cloneable { /** 默认实现 name=key */ @Nonnull @Override public String name(); /** 此对象对应的配置 是 Meta Bean Config 的 key 有效的 mb property 应该总是返回非空的 config */ @Nonnull public String config(); @Override default String key() { return this.name(); } /** * 属性对应的类名 * * @return */ @Nonnull public Class

type(); /** * 基本值类型或关联实体对象的类名 *

* 当属性关联到了 MetaBean 时,此时返回对应 MetaBean Config 的配置名 * * @return */ @Nonnull default Serializable typeTarget() { return this.type(); } /** * 额外的配置项目 * * @return */ public Map extprops(); /** * 额外的配置项目 * * @param key * @return */ public Serializable extprop(String key); /** * 顺序 * * @return */ public int index(); //----------------------------------- 代理 值获取 方法 ----------------------------------- /** 返回属性值 */ default Serializable val(MetaBean bean) { return (bean != null) ? bean.getValue(this.key()) : null; } /** 按类型返回属性值 */ default Boolean asBoolean(MetaBean bean) { return (bean != null) ? bean.asBoolean(this.key()) : null; } /** 按类型返回属性值 */ @SuppressWarnings("unchecked") default T asEnum(MetaBean bean) { return (bean != null) ? (T) bean.asEnum(this.key(), this.type()) : null; } /** 按类型返回属性值 */ default byte[] asBytes(MetaBean bean) { return (bean != null) ? bean.asBytes(this.key()) : null; } /** 按类型返回属性值 */ default boolean asBooleanValue(MetaBean bean) { return (bean != null) && bean.asBooleanValue(this.key()); } /** 按类型返回属性值 */ default Byte asByte(MetaBean bean) { return (bean != null) ? bean.asByte(this.key()) : null; } /** 按类型返回属性值 */ default byte asByteValue(MetaBean bean) { return (bean != null) ? bean.asByteValue(this.key()) : 0; } /** 按类型返回属性值 */ default Short asShort(MetaBean bean) { return (bean != null) ? bean.asShort(this.key()) : null; } /** 按类型返回属性值 */ default short asShortValue(MetaBean bean) { return (bean != null) ? bean.asShortValue(this.key()) : 0; } /** 按类型返回属性值 */ default Integer asInteger(MetaBean bean) { return (bean != null) ? bean.asInteger(this.key()) : null; } /** 按类型返回属性值 */ default int asIntValue(MetaBean bean) { return (bean != null) ? bean.asIntValue(this.key()) : 0; } /** 按类型返回属性值 */ default Long asLong(MetaBean bean) { return (bean != null) ? bean.asLong(this.key()) : null; } /** 按类型返回属性值 */ default long asLongValue(MetaBean bean) { return (bean != null) ? bean.asLongValue(this.key()) : 0L; } /** 按类型返回属性值 */ default Float asFloat(MetaBean bean) { return (bean != null) ? bean.asFloat(this.key()) : null; } /** 按类型返回属性值 */ default float asFloatValue(MetaBean bean) { return (bean != null) ? bean.asFloatValue(this.key()) : 0; } /** 按类型返回属性值 */ default Double asDouble(MetaBean bean) { return (bean != null) ? bean.asDouble(this.key()) : null; } /** 按类型返回属性值 */ default double asDoubleValue(MetaBean bean) { return (bean != null) ? bean.asDoubleValue(this.key()) : 0; } /** 按类型返回属性值 */ default BigDecimal asBigDecimal(MetaBean bean) { return (bean != null) ? bean.asBigDecimal(this.key()) : null; } /** 按类型返回属性值 */ default BigInteger asBigInteger(MetaBean bean) { return (bean != null) ? bean.asBigInteger(this.key()) : null; } /** 按类型返回属性值 */ default String asString(MetaBean bean) { return (bean != null) ? bean.asString(this.key()) : null; } /** 按类型返回属性值 */ default Date asDate(MetaBean bean) { return (bean != null) ? bean.asDate(this.key()) : null; } /** 按类型返回属性值 */ default java.sql.Date asSqlDate(MetaBean bean) { return (bean != null) ? bean.asSqlDate(this.key()) : null; } /** 按类型返回属性值 */ default java.sql.Timestamp asTimestamp(MetaBean bean) { return (bean != null) ? bean.asTimestamp(this.key()) : null; } /** 按类型返回属性值 */ default T asObject(MetaBean bean, Class clazz) { return (bean != null) ? bean.asObject(this.key(), clazz) : null; } /** 按类型返回属性值 */ default T asObject(MetaBean bean, Type type) { return (bean != null) ? bean.asObject(this.key(), type) : null; } /** 按类型返回属性值 */ default JSONObject asJSONObject(MetaBean bean) { return (bean != null) ? bean.asJSONObject(this.key()) : null; } /** 按类型返回属性值 */ default JSONArray asJSONArray(MetaBean bean) { return (bean != null) ? bean.asJSONArray(this.key()) : null; } @Override default int compareTo(MetaBeanConfigProperty

o) { if (o == null) return 1; int s = Orders.compare(this.config(), o.config()); if (s != 0) return s; s = Orders.compare(this.index(), o.index()); if (s != 0) return s; s = Orders.compare(this.name(), o.name()); if (s != 0) return s; return s; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy