Examples of BeanMappingBehavior


Examples of com.alibaba.tamper.core.config.BeanMappingBehavior

        if (batchNode != null) {
            config.setBatch(Boolean.valueOf(batchNode.getNodeValue()));
        }

        // 解析下BeanHaivor参数
        BeanMappingBehavior beanbeHavior = BeanMappingBehaviorParse.parse(node, parent);
        config.setBehavior(beanbeHavior);

        if (beanbeHavior.isMappingEmptyStrings() == false || beanbeHavior.isMappingNullValue() == false) {
            config.setBatch(false);// 强制设置为false,因为batch处理无法过滤null/empty value不做set处理
        }

        // 解析bean fields
        NodeList nodeList = node.getChildNodes();
        List<BeanMappingField> beanFields = new ArrayList<BeanMappingField>(10);
        for (int i = 0; i < nodeList.getLength(); i++) {
            Node clildNode = nodeList.item(i);
            if ("field-mapping".equals(clildNode.getNodeName())) {
                BeanMappingField field = parseField(clildNode);
                BeanMappingBehavior fieldbehavior = BeanMappingBehaviorParse.parse(clildNode, beanbeHavior);// 解析下behaivor参数
                field.setBehavior(fieldbehavior);
                if (fieldbehavior.isMappingEmptyStrings() == false || fieldbehavior.isMappingNullValue() == false) {
                    config.setBatch(false);// 强制设置为false,因为batch处理无法过滤null/empty value不做set处理
                }
                beanFields.add(field);
            }
        }
View Full Code Here

Examples of com.alibaba.tamper.core.config.BeanMappingBehavior

        Node mappingNullValue = node.getAttributes().getNamedItem("mappingNullValue");
        Node mappingEmptyStrings = node.getAttributes().getNamedItem("mappingEmptyStrings");
        Node trimStrings = node.getAttributes().getNamedItem("trimStrings");

        boolean isConfig = false;
        BeanMappingBehavior behavior = parent.clone();// 从上一个节点复制配置,进行替换处理

        if (debug != null) {
            behavior.setDebug(Boolean.valueOf(debug.getNodeValue()));
            isConfig = true;
        }
        if (mappingNullValue != null) {
            behavior.setMappingNullValue(Boolean.valueOf(mappingNullValue.getNodeValue()));
            isConfig = true;
        }
        if (mappingEmptyStrings != null) {
            behavior.setMappingEmptyStrings(Boolean.valueOf(mappingEmptyStrings.getNodeValue()));
            isConfig = true;
        }
        if (trimStrings != null) {
            behavior.setTrimStrings(Boolean.valueOf(trimStrings.getNodeValue()));
            isConfig = true;
        }

        return isConfig ? behavior : parent;// 如果未设置,则直接使用parent
    }
View Full Code Here

Examples of com.alibaba.tamper.core.config.BeanMappingBehavior

        PropertyDescriptor[] srcPds = ReflectionHelper.getPropertyDescriptors(src);
        BeanMappingObject object = new BeanMappingObject();
        object.setSrcClass(src);
        object.setTargetClass(target);
        object.setBatch(true);
        BeanMappingBehavior globalBehavior = BeanMappingConfigHelper.getInstance().getGlobalBehavior();
        List<BeanMappingField> fields = new ArrayList<BeanMappingField>();
        for (PropertyDescriptor targetPd : targetPds) {
            String property = targetPd.getName();
            PropertyDescriptor srcPd = getMatchPropertyDescriptor(srcPds, property);
            if (srcPd == null) {// 没有匹配属性
View Full Code Here

Examples of com.alibaba.tamper.core.config.BeanMappingBehavior

        BeanMappingObject object = new BeanMappingObject();
        object.setSrcClass(src);
        object.setTargetClass(Map.class); // 设置为map接口
        object.setBatch(true);
        List<BeanMappingField> fields = new ArrayList<BeanMappingField>();
        BeanMappingBehavior globalBehavior = BeanMappingConfigHelper.getInstance().getGlobalBehavior();
        for (PropertyDescriptor targetPd : targetPds) {
            if (targetPd.getWriteMethod() != null && targetPd.getReadMethod() != null) {
                BeanMappingField field = new BeanMappingField();
                BeanMappingFieldAttributes srcFieldAttribute = new BeanMappingFieldAttributes();
                srcFieldAttribute.setName(targetPd.getName());
View Full Code Here

Examples of com.alibaba.tamper.core.config.BeanMappingBehavior

        NodeList globalNodeList = root.getElementsByTagName("global-configurations");
        if (globalNodeList.getLength() > 1) {
            throw new BeanMappingException("global-configurations is exceed one node!");
        }

        BeanMappingBehavior globalBehavior = BeanMappingConfigHelper.getInstance().getGlobalBehavior();
        if (globalNodeList.getLength() == 1) {
            globalBehavior = BeanMappingBehaviorParse.parse(globalNodeList.item(0), globalBehavior);
            BeanMappingConfigHelper.getInstance().setGlobalBehavior(globalBehavior);
        }
View Full Code Here

Examples of com.alibaba.tamper.core.config.BeanMappingBehavior

*/
public class BehaviorValueProcess implements ValueProcess {

    public Object process(Object value, ValueProcessInvocation invocation) throws BeanMappingException {
        BeanMappingField field = invocation.getContext().getCurrentField();
        BeanMappingBehavior behavior = field.getBehavior(); // 每个属性mapping都会有一个behavior,允许覆盖上层

        // 判断一下value的null 情况
        if (value == null && behavior.isMappingNullValue() == false) {
            return value;
        }

        // 进行trim处理
        if (value instanceof String && behavior.isTrimStrings()) {
            value = StringUtils.trim((String) value);
        }

        // 判断一下String的null / empty情况
        if ((value == null || (value instanceof String && StringUtils.isEmpty((String) value)))
            && behavior.isMappingEmptyStrings() == false) {
            return value;
        }

        return invocation.proceed(value);
    }
View Full Code Here

Examples of com.alibaba.tamper.core.config.BeanMappingBehavior

public class BeanMappingBehaviorBuilder implements Builder<BeanMappingBehavior> {

    private BeanMappingBehavior behavior;

    public BeanMappingBehaviorBuilder(){
        this.behavior = new BeanMappingBehavior();
    }
View Full Code Here

Examples of com.alibaba.tamper.core.config.BeanMappingBehavior

        this.behavior = new BeanMappingBehavior();
    }

    public BeanMappingBehaviorBuilder(boolean debug, boolean mappingNullValue, boolean mappingEmptyStrings,
                                      boolean trimStrings){
        this.behavior = new BeanMappingBehavior();
        behavior.setDebug(debug);
        behavior.setMappingNullValue(mappingNullValue);
        behavior.setMappingEmptyStrings(mappingEmptyStrings);
        behavior.setTrimStrings(trimStrings);
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.