/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.essar.automation.dhaval.javatojava;

import com.essar.automation.dhaval.exceltojava.FieldModifier;
import com.essar.automation.dhaval.exceltojava.JavaBean;
import java.lang.reflect.Field;
import java.util.Map;

/**
 *
 * @author dhaval
 */
public class ClassConverter {

    private Class clazz;
    private Map<Class, Class> typeMap;

    public ClassConverter(Class clazz, Map<Class, Class> typeMap) {
        this.clazz = clazz;
        this.typeMap = typeMap;
    }

    public void convert(){
        JavaBean bean = new JavaBean();
        bean.setClassName(clazz.getSimpleName());

        Field[] fields = clazz.getDeclaredFields();
        for(Field field: fields){
            com.essar.automation.dhaval.exceltojava.Field f = new com.essar.automation.dhaval.exceltojava.Field();
            f.setName(field.getName());
            f.setType(getFieldType(field));
            bean.addField(f, true);
        }

        System.out.println(bean.generateCode());
    }

    public String getFieldType(Field field){
        if(typeMap.containsKey(field.getType())){
            return typeMap.get(field.getType()).getSimpleName();
        }
        return field.getType().getSimpleName();
    }
}
