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

commons.box.util.MBs Maven / Gradle / Ivy

The newest version!
package commons.box.util;

import commons.box.app.MetaBean;
import commons.box.app.MetaBeanConfig;
import commons.box.app.MetaBeanFactory;
import commons.box.app.MetaBeanObject;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 提供了操作 meta bean 的快捷方法
 */
public class MBs {
    public static final MetaBean[] EMPTY = new MetaBean[]{};

    /**
     * 获取所有的配置工厂
     *
     * @return
     */
    @Nonnull
    public static List factories() {
        return Beans.bean().metaBeanFactories();
    }

    /**
     * 获取配置实例
     *
     * @param config
     * @return
     */
    @Nullable
    public static MetaBeanConfig config(String config) {
        return Beans.bean().metaBeanConfig(config);
    }

    /**
     * 以 MetaBeanObject 封装实例,此实例以key作为 equals 和 hashcode 对应的值
     * 

* 一般用于实际业务组件中需要做 Set/Map 去重处理 * * @return */ public MetaBean keyobj(MetaBean mb) { return MetaBeanObject.from(mb); } /** * 以 MetaBeanObject 封装实例,此实例以key作为 equals 和 hashcode 对应的值 *

* 一般用于实际业务组件中需要做 Set/Map 去重处理 * * @param mbs * @return */ public MetaBean[] keyobjs(MetaBean... mbs) { if (Collects.isEmpty(mbs)) return EMPTY; MetaBean[] result = new MetaBean[mbs.length]; for (int i = 0; i < result.length; i++) { if (mbs[i] instanceof MetaBeanObject) result[i] = mbs[i]; if (mbs[i] != null) result[i] = MetaBeanObject.from(mbs[i]); else result[i] = null; } return result; } /** * 以 MetaBeanObject 封装实例,此实例以key作为 equals 和 hashcode 对应的值 *

* 一般用于实际业务组件中需要做 Set/Map 去重处理 * * @param mbs * @return */ public List keyobjs(Collection mbs) { if (mbs == null) return Collects.immlist(); List result = new ArrayList<>(); for (MetaBean mb : mbs) { if (mb instanceof MetaBeanObject) result.add(mb); else if (mb != null) result.add(MetaBeanObject.from(mb)); } return result; } /** * 获取 MetaBean 未包装实例,非 MetaBeanObject 对象返回自身 * * @return */ public MetaBean raw(MetaBean mb) { return (mb != null) ? mb.raw() : null; } /** * 获取 MetaBean 未包装实例,非 MetaBeanObject 对象返回自身 * * @return */ public MetaBean[] raws(MetaBean... mbs) { if (Collects.isEmpty(mbs)) return EMPTY; MetaBean[] result = new MetaBean[mbs.length]; for (int i = 0; i < result.length; i++) { if (mbs[i] != null) result[i] = mbs[i].raw(); else result[i] = null; } return result; } /** * 获取 MetaBean 未包装实例,非 MetaBeanObject 对象返回自身 *

* 本操作不会返回 null 元素(当输入列表包含空值时,返回列表会丢弃原空值的元素) * * @return */ public List raw(Collection mbs) { if (mbs == null) return Collects.immlist(); List result = new ArrayList<>(); for (MetaBean mb : mbs) { if (mb != null) result.add(mb.raw()); } return result; } /** * 使用值map 构建生成对应的 MetaBean 对象 * * @param config * @param map * @return */ @Nullable public MetaBean inst(MetaBeanConfig config, Map map) { if (config == null) return null; return config.inst(map); } /** * 使用值map 构建生成对应的 MetaBean 对象 * * @param config * @param maps * @return */ @Nonnull public MetaBean[] insts(MetaBeanConfig config, Map[] maps) { if (config == null) return EMPTY; return config.insts(maps); } /** * 使用值map 构建生成对应的 MetaBean 对象 * * @param config * @param maps * @return */ @Nonnull public List insts(MetaBeanConfig config, Collection> maps) { if (config == null) return Collects.immlist(); return config.insts(maps); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy