// Path: src/main/java/com/chncwang/easy2db/PreconditionsUtil.java
// public class PreconditionsUtil {
//     private PreconditionsUtil() {}
// 
//     public static void checkNotNull(final Object arg, final String argName) {
//         Preconditions.checkNotNull(arg, Constants.NULL_POINTER_ERROR_TEMPLATE,
//                 argName);
//     }
// }


import java.util.Collections;
import java.util.List;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.chncwang.easy2db.PreconditionsUtil;
package com.chncwang.easy2db.table;




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) {
// Path: src/main/java/com/chncwang/easy2db/PreconditionsUtil.java
// public class PreconditionsUtil {
//     private PreconditionsUtil() {}
// 
//     public static void checkNotNull(final Object arg, final String argName) {
//         Preconditions.checkNotNull(arg, Constants.NULL_POINTER_ERROR_TEMPLATE,
//                 argName);
//     }
// }


// Path: src/main/java/com/chncwang/easy2db/table/TableDef.java
import java.util.Collections;
import java.util.List;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.chncwang.easy2db.PreconditionsUtil;

package com.chncwang.easy2db.table;




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");