Package com.alibaba.tamper.process

Source Code of com.alibaba.tamper.process.BehaviorValueProcess

/*
* Copyright 1999-2004 Alibaba.com All right reserved. This software is the confidential and proprietary information of
* Alibaba.com ("Confidential Information"). You shall not disclose such Confidential Information and shall use it only
* in accordance with the terms of the license agreement you entered into with Alibaba.com.
*/
package com.alibaba.tamper.process;

import org.apache.commons.lang.StringUtils;

import com.alibaba.tamper.core.BeanMappingException;
import com.alibaba.tamper.core.config.BeanMappingBehavior;
import com.alibaba.tamper.core.config.BeanMappingField;
import com.alibaba.tamper.core.process.ValueProcess;
import com.alibaba.tamper.core.process.ValueProcessInvocation;

/**
* 处理下Behavior的行为控制, 可参见 {@linkplain BeanMappingBehavior}
*
* @author jianghang 2011-6-22 上午09:50:16
*/
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);
    }
}
TOP

Related Classes of com.alibaba.tamper.process.BehaviorValueProcess

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.