// Path: src/main/java/com/chncwang/easy2db/table/ColumnDef.java
// public class ColumnDef {
//     private final Class<?> mClass;
//     private final String mName;
// 
//     public ColumnDef(final Class<?> clazz, final String name) {
//         PreconditionsUtil.checkNotNull(name, "name");
// 
//         mClass = clazz;
//         mName = name;
//     }
// 
//     @Override
//     public String toString() {
//         return ToStringBuilder.reflectionToString(this);
//     }
// 
//     public Class<?> getClazz() {
//         return mClass;
//     }
// 
//     public String getName() {
//         return mName;
//     }
// }
// 
// Path: src/main/java/com/chncwang/easy2db/table/ForeignKeyDef.java
// public class ForeignKeyDef {
//     private final String mColumnName;
//     private final TableDef mTableDef;
// 
//     public ForeignKeyDef(final String columnName, final TableDef tableDef) {
//         PreconditionsUtil.checkNotNull(columnName, "columnName");
// 
//         mColumnName = columnName;
//         mTableDef = tableDef;
//     }
// 
//     @Override
//     public String toString() {
//         return ToStringBuilder.reflectionToString(this,
//                 ToStringStyle.MULTI_LINE_STYLE);
//     }
// 
//     public String getColumnName() {
//         return mColumnName;
//     }
// 
//     public TableDef getTableDef() {
//         return mTableDef;
//     }
// }
// 
// Path: src/main/java/com/chncwang/easy2db/table/TableDef.java
// public class TableDef {
//     private final Class<?> mClass;
//     private final String mTableName;
//     private final PrimaryKeyDef mPrimaryKeyDef;
//     private final ColumnDef mUniqueKeyDef;
//     private final List<ForeignKeyDef> mForeignKeyDefs;
//     private final List<ColumnDef> mColumnDefs;
// 
//     public TableDef(final Class<?> clazz, final String tableName,
//             final PrimaryKeyDef primaryKeyDef,
//             final ColumnDef uniqueKeyDef,
//             final List<ForeignKeyDef> foreignKeyDefs,
//             final List<ColumnDef> columnDefs) {
//         PreconditionsUtil.checkNotNull(tableName, "tableName");
//         PreconditionsUtil.checkNotNull(primaryKeyDef, "primaryKeyDef");
//         PreconditionsUtil.checkNotNull(uniqueKeyDef, "uniqueKeyDef");
// 
//         mClass = clazz;
//         mTableName = tableName;
//         mPrimaryKeyDef = primaryKeyDef;
//         mUniqueKeyDef = uniqueKeyDef;
//         mForeignKeyDefs = Collections.unmodifiableList(foreignKeyDefs);
//         mColumnDefs = Collections.unmodifiableList(columnDefs);
//     }
// 
//     @Override
//     public String toString() {
//         return ToStringBuilder.reflectionToString(this,
//                 ToStringStyle.MULTI_LINE_STYLE);
//     }
// 
//     public Class<?> getClazz() {
//         return mClass;
//     }
// 
//     public String getTableName() {
//         return mTableName;
//     }
// 
//     public PrimaryKeyDef getPrimaryKeyDef() {
//         return mPrimaryKeyDef;
//     }
// 
//     public ColumnDef getUniqueKeyDef() {
//         return mUniqueKeyDef;
//     }
// 
//     public List<ForeignKeyDef> getForeignKeyDefs() {
//         return mForeignKeyDefs;
//     }
// 
//     public List<ColumnDef> getColumnDefs() {
//         return mColumnDefs;
//     }
// }
// 
// Path: src/main/java/com/chncwang/easy2db/table/util/TableUtil.java
// public class TableUtil {
//     private TableUtil() {}
// 
//     public static String getPrimaryKeyName(final TableDef tableDef) {
//         return tableDef.getPrimaryKeyDef().getColumnDef().getName();
//     }
// 
//     public static Class<?> getPrimaryKeyClass(final TableDef tableDef) {
//         return tableDef.getPrimaryKeyDef().getColumnDef().getClazz();
//     }
// }


import java.util.Map;
import com.chncwang.easy2db.table.ColumnDef;
import com.chncwang.easy2db.table.ForeignKeyDef;
import com.chncwang.easy2db.table.TableDef;
import com.chncwang.easy2db.table.util.TableUtil;
import com.google.common.collect.Maps;
package com.chncwang.easy2db.parser;



public class TableParserUtil {
    private TableParserUtil() {}

    public static Map<String, Class<?>> createColumnClassMap(
            final TableParser tableParser) {
        final Map<String, Class<?>> map = Maps.newTreeMap();

// Path: src/main/java/com/chncwang/easy2db/table/ColumnDef.java
// public class ColumnDef {
//     private final Class<?> mClass;
//     private final String mName;
// 
//     public ColumnDef(final Class<?> clazz, final String name) {
//         PreconditionsUtil.checkNotNull(name, "name");
// 
//         mClass = clazz;
//         mName = name;
//     }
// 
//     @Override
//     public String toString() {
//         return ToStringBuilder.reflectionToString(this);
//     }
// 
//     public Class<?> getClazz() {
//         return mClass;
//     }
// 
//     public String getName() {
//         return mName;
//     }
// }
// 
// Path: src/main/java/com/chncwang/easy2db/table/ForeignKeyDef.java
// public class ForeignKeyDef {
//     private final String mColumnName;
//     private final TableDef mTableDef;
// 
//     public ForeignKeyDef(final String columnName, final TableDef tableDef) {
//         PreconditionsUtil.checkNotNull(columnName, "columnName");
// 
//         mColumnName = columnName;
//         mTableDef = tableDef;
//     }
// 
//     @Override
//     public String toString() {
//         return ToStringBuilder.reflectionToString(this,
//                 ToStringStyle.MULTI_LINE_STYLE);
//     }
// 
//     public String getColumnName() {
//         return mColumnName;
//     }
// 
//     public TableDef getTableDef() {
//         return mTableDef;
//     }
// }
// 
// Path: src/main/java/com/chncwang/easy2db/table/TableDef.java
// public class TableDef {
//     private final Class<?> mClass;
//     private final String mTableName;
//     private final PrimaryKeyDef mPrimaryKeyDef;
//     private final ColumnDef mUniqueKeyDef;
//     private final List<ForeignKeyDef> mForeignKeyDefs;
//     private final List<ColumnDef> mColumnDefs;
// 
//     public TableDef(final Class<?> clazz, final String tableName,
//             final PrimaryKeyDef primaryKeyDef,
//             final ColumnDef uniqueKeyDef,
//             final List<ForeignKeyDef> foreignKeyDefs,
//             final List<ColumnDef> columnDefs) {
//         PreconditionsUtil.checkNotNull(tableName, "tableName");
//         PreconditionsUtil.checkNotNull(primaryKeyDef, "primaryKeyDef");
//         PreconditionsUtil.checkNotNull(uniqueKeyDef, "uniqueKeyDef");
// 
//         mClass = clazz;
//         mTableName = tableName;
//         mPrimaryKeyDef = primaryKeyDef;
//         mUniqueKeyDef = uniqueKeyDef;
//         mForeignKeyDefs = Collections.unmodifiableList(foreignKeyDefs);
//         mColumnDefs = Collections.unmodifiableList(columnDefs);
//     }
// 
//     @Override
//     public String toString() {
//         return ToStringBuilder.reflectionToString(this,
//                 ToStringStyle.MULTI_LINE_STYLE);
//     }
// 
//     public Class<?> getClazz() {
//         return mClass;
//     }
// 
//     public String getTableName() {
//         return mTableName;
//     }
// 
//     public PrimaryKeyDef getPrimaryKeyDef() {
//         return mPrimaryKeyDef;
//     }
// 
//     public ColumnDef getUniqueKeyDef() {
//         return mUniqueKeyDef;
//     }
// 
//     public List<ForeignKeyDef> getForeignKeyDefs() {
//         return mForeignKeyDefs;
//     }
// 
//     public List<ColumnDef> getColumnDefs() {
//         return mColumnDefs;
//     }
// }
// 
// Path: src/main/java/com/chncwang/easy2db/table/util/TableUtil.java
// public class TableUtil {
//     private TableUtil() {}
// 
//     public static String getPrimaryKeyName(final TableDef tableDef) {
//         return tableDef.getPrimaryKeyDef().getColumnDef().getName();
//     }
// 
//     public static Class<?> getPrimaryKeyClass(final TableDef tableDef) {
//         return tableDef.getPrimaryKeyDef().getColumnDef().getClazz();
//     }
// }


// Path: src/main/java/com/chncwang/easy2db/parser/TableParserUtil.java
import java.util.Map;
import com.chncwang.easy2db.table.ColumnDef;
import com.chncwang.easy2db.table.ForeignKeyDef;
import com.chncwang.easy2db.table.TableDef;
import com.chncwang.easy2db.table.util.TableUtil;
import com.google.common.collect.Maps;

package com.chncwang.easy2db.parser;



public class TableParserUtil {
    private TableParserUtil() {}

    public static Map<String, Class<?>> createColumnClassMap(
            final TableParser tableParser) {
        final Map<String, Class<?>> map = Maps.newTreeMap();

        final TableDef tableDef = tableParser.getTableDef();