// Path: excel/src/main/java/com/bing/excel/converter/FieldValueConverter.java
// public interface FieldValueConverter extends ConverterMatcher {
// 	  OutValue toObject(Object source,ConverterHandler converterHandler);
// 	  Object fromString(String cell,ConverterHandler converterHandler,Type targetType);
// }
// 
// Path: excel/src/main/java/com/bing/excel/core/common/FieldRelation.java
// public final class FieldRelation {
//     private final String name;
//     private final String declaringClass;
// 
//     public FieldRelation(String definedIn, String name) {
//         this.name = name;
//         this.declaringClass = definedIn;
//     }
// 
//     public FieldRelation(Class definedIn, String name) {
//         this(definedIn == null ? null : definedIn.getName(), name);
//     }
// 
//     public String getName() {
//         return this.name;
//     }
// 
//     public String getDeclaringClass() {
//         return this.declaringClass;
//     }
// 
//     public boolean equals(Object obj) {
//         if (this == obj) {
//             return true;
//         }
//         if (obj == null) {
//             return false;
//         }
//         if (obj instanceof FieldRelation) {
//             final FieldRelation field = (FieldRelation)obj;
//             if ((declaringClass == null && field.declaringClass != null)
//                 || (declaringClass != null && field.declaringClass == null)) {
//                 return false;
//             }
//             return name.equals(field.getName())
//                 && (declaringClass == null || declaringClass.equals(field.getDeclaringClass()));
//         }
//         return false;
//     }
// 
//     public int hashCode() {
//         return name.hashCode() ^ (declaringClass == null ? 0 : declaringClass.hashCode());
//     }
// 
//     public String toString() {
//         return (declaringClass == null ? "" : declaringClass + ".") + name;
//     }
// }


import com.bing.excel.converter.FieldValueConverter;
import com.bing.excel.core.common.FieldRelation;
import java.util.HashMap;
import java.util.Map;
package com.bing.excel.mapper;


public class ConversionMapper {

  private final Map<FieldRelation, FieldConverterMapper> fieldMapper = new HashMap<>();
  private final Map<Class<?>, String> modelAlias = new HashMap<>();

  public ConversionMapper() {
  }

  public void addModelName(Class<?> clazz, String name) {
    this.modelAlias.put(clazz, name);
  }



  public void registerLocalConverter(Class definedIn, String fieldName,
      int index, String alias, Class<?> fieldType, boolean readRequired,
// Path: excel/src/main/java/com/bing/excel/converter/FieldValueConverter.java
// public interface FieldValueConverter extends ConverterMatcher {
// 	  OutValue toObject(Object source,ConverterHandler converterHandler);
// 	  Object fromString(String cell,ConverterHandler converterHandler,Type targetType);
// }
// 
// Path: excel/src/main/java/com/bing/excel/core/common/FieldRelation.java
// public final class FieldRelation {
//     private final String name;
//     private final String declaringClass;
// 
//     public FieldRelation(String definedIn, String name) {
//         this.name = name;
//         this.declaringClass = definedIn;
//     }
// 
//     public FieldRelation(Class definedIn, String name) {
//         this(definedIn == null ? null : definedIn.getName(), name);
//     }
// 
//     public String getName() {
//         return this.name;
//     }
// 
//     public String getDeclaringClass() {
//         return this.declaringClass;
//     }
// 
//     public boolean equals(Object obj) {
//         if (this == obj) {
//             return true;
//         }
//         if (obj == null) {
//             return false;
//         }
//         if (obj instanceof FieldRelation) {
//             final FieldRelation field = (FieldRelation)obj;
//             if ((declaringClass == null && field.declaringClass != null)
//                 || (declaringClass != null && field.declaringClass == null)) {
//                 return false;
//             }
//             return name.equals(field.getName())
//                 && (declaringClass == null || declaringClass.equals(field.getDeclaringClass()));
//         }
//         return false;
//     }
// 
//     public int hashCode() {
//         return name.hashCode() ^ (declaringClass == null ? 0 : declaringClass.hashCode());
//     }
// 
//     public String toString() {
//         return (declaringClass == null ? "" : declaringClass + ".") + name;
//     }
// }


// Path: excel/src/main/java/com/bing/excel/mapper/ConversionMapper.java
import com.bing.excel.converter.FieldValueConverter;
import com.bing.excel.core.common.FieldRelation;
import java.util.HashMap;
import java.util.Map;

package com.bing.excel.mapper;


public class ConversionMapper {

  private final Map<FieldRelation, FieldConverterMapper> fieldMapper = new HashMap<>();
  private final Map<Class<?>, String> modelAlias = new HashMap<>();

  public ConversionMapper() {
  }

  public void addModelName(Class<?> clazz, String name) {
    this.modelAlias.put(clazz, name);
  }



  public void registerLocalConverter(Class definedIn, String fieldName,
      int index, String alias, Class<?> fieldType, boolean readRequired,
      FieldValueConverter converter) {