// Path: src/main/java/org/easyarch/slardar/binding/FieldBinder.java
// public class FieldBinder<T> {
// 
//     protected static Map<Class<?>,Map<String,String>> fieldMapper = new HashMap<>();
// 
//     private Class<T> cls;
// 
//     public FieldBinder(Class<T> cls){
//         this.cls = cls;
//         init();
//     }
// 
//     /**
//      * 初始化的时候只根据是不是标准实体来初始化（即有没有注解）
//      */
//     private void init(){
//         if (fieldMapper.containsKey(cls)){
//             return;
//         }
//         Field[] fields = cls.getDeclaredFields();
//         Map<String,String> mapper = new HashMap<>();
//         for (Field field : fields){
//             field.setAccessible(true);
//             Column column = field.getAnnotation(Column.class);
//             if (column == null){
//                 mapper.put(field.getName(),field.getName());
//             }else{
//                 mapper.put(column.name(),field.getName());
//             }
//         }
//         fieldMapper.put(cls,mapper);
//     }
// 
//     public void bind(String column,String property){
//         fieldMapper.get(cls).put(column,property);
//     }
// 
//     public void bind(Map<String,String> mapper){
//         fieldMapper.get(cls).putAll(mapper);
//     }
// 
//     public String getProperty(String column){
//         return getProperty(cls,column);
//     }
// 
//     public String getProperty(Class<?> cls,String column){
//         if (fieldMapper.containsKey(cls)){
//             return fieldMapper.get(cls).get(column);
//         }
//         return "";
//     }
// }
// 
// Path: src/main/java/org/easyarch/slardar/entity/Parameter.java
// public class Parameter {
// 
//     private String name;
//     private Object value;
// 
//     public Parameter(String name, Object value) {
//         this.name = name;
//         this.value = value;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public Object getValue() {
//         return value;
//     }
// 
//     public void setValue(Object value) {
//         this.value = value;
//     }
// }


import org.easyarch.slardar.annotation.entity.Column;
import org.easyarch.slardar.binding.FieldBinder;
import org.easyarch.slardar.entity.Parameter;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
package org.easyarch.slardar.utils;



/**
 * Description :
 * Created by xingtianyu on 17-2-19
 * 下午12:56
 * description:
 * 提供用户使用，在使用DefaultDBSession时将基本类型或对象 以及 定义对象转换成Parameter作为参数使用
 */

public class ParamUtil {

    public static Parameter create(String name,Object value){
        if (StringUtils.isEmpty(name)||value == null){
            return null;
        }
        return new Parameter(name,value);
    }

    public static Parameter[] create(Map<String,Object> params){
        Parameter[] parameters = new Parameter[params.size()];
        int index = 0;
        for (Map.Entry<String,Object> entry : params.entrySet()){
            parameters[index] = new Parameter(entry.getKey(),entry.getValue());
        }
        return parameters;
    }

    public static Parameter[] create(Object bean){
// Path: src/main/java/org/easyarch/slardar/binding/FieldBinder.java
// public class FieldBinder<T> {
// 
//     protected static Map<Class<?>,Map<String,String>> fieldMapper = new HashMap<>();
// 
//     private Class<T> cls;
// 
//     public FieldBinder(Class<T> cls){
//         this.cls = cls;
//         init();
//     }
// 
//     /**
//      * 初始化的时候只根据是不是标准实体来初始化（即有没有注解）
//      */
//     private void init(){
//         if (fieldMapper.containsKey(cls)){
//             return;
//         }
//         Field[] fields = cls.getDeclaredFields();
//         Map<String,String> mapper = new HashMap<>();
//         for (Field field : fields){
//             field.setAccessible(true);
//             Column column = field.getAnnotation(Column.class);
//             if (column == null){
//                 mapper.put(field.getName(),field.getName());
//             }else{
//                 mapper.put(column.name(),field.getName());
//             }
//         }
//         fieldMapper.put(cls,mapper);
//     }
// 
//     public void bind(String column,String property){
//         fieldMapper.get(cls).put(column,property);
//     }
// 
//     public void bind(Map<String,String> mapper){
//         fieldMapper.get(cls).putAll(mapper);
//     }
// 
//     public String getProperty(String column){
//         return getProperty(cls,column);
//     }
// 
//     public String getProperty(Class<?> cls,String column){
//         if (fieldMapper.containsKey(cls)){
//             return fieldMapper.get(cls).get(column);
//         }
//         return "";
//     }
// }
// 
// Path: src/main/java/org/easyarch/slardar/entity/Parameter.java
// public class Parameter {
// 
//     private String name;
//     private Object value;
// 
//     public Parameter(String name, Object value) {
//         this.name = name;
//         this.value = value;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public Object getValue() {
//         return value;
//     }
// 
//     public void setValue(Object value) {
//         this.value = value;
//     }
// }


// Path: src/main/java/org/easyarch/slardar/utils/ParamUtil.java
import org.easyarch.slardar.annotation.entity.Column;
import org.easyarch.slardar.binding.FieldBinder;
import org.easyarch.slardar.entity.Parameter;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

package org.easyarch.slardar.utils;



/**
 * Description :
 * Created by xingtianyu on 17-2-19
 * 下午12:56
 * description:
 * 提供用户使用，在使用DefaultDBSession时将基本类型或对象 以及 定义对象转换成Parameter作为参数使用
 */

public class ParamUtil {

    public static Parameter create(String name,Object value){
        if (StringUtils.isEmpty(name)||value == null){
            return null;
        }
        return new Parameter(name,value);
    }

    public static Parameter[] create(Map<String,Object> params){
        Parameter[] parameters = new Parameter[params.size()];
        int index = 0;
        for (Map.Entry<String,Object> entry : params.entrySet()){
            parameters[index] = new Parameter(entry.getKey(),entry.getValue());
        }
        return parameters;
    }

    public static Parameter[] create(Object bean){
        FieldBinder binder = new FieldBinder(bean.getClass());