// Path: cango-common/src/main/java/com/bella/cango/enums/DbType.java
// public enum DbType {
//     MYSQL(1, "com.mysql.jdbc.Driver"),
//     ORACLE(2, "oracle.jdbc.driver.OracleDriver"),
//     DRDS(3, "com.mysql.jdbc.Driver");
// 
//     private Integer code;
//     private String driver;
// 
//     DbType(Integer type, String driver) {
//         this.code = type;
//     }
// 
//     public Integer getCode() {
//         return code;
//     }
// 
//     public String getDriver() {
//         return driver;
//     }
// 
//     public boolean isOracle() {
//         return this.equals(ORACLE);
//     }
// 
// 
//     public boolean isMysql() {
//         return this.equals(MYSQL);
//     }
// 
//     public boolean isDRDS() {
//         return this.equals(DRDS);
//     }
// 
//     public DbType parse(Integer code) {
//         switch (code) {
//             case 1:
//                 return MYSQL;
//             case 2:
//                 return ORACLE;
//             case 3:
//                 return DRDS;
//             default:
//                 return null;
//         }
//     }
// }


import com.bella.cango.enums.DbType;
import com.bella.cango.validate.SlaveId;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Set;
package com.bella.cango.dto;



/**
 * TODO
 *
 * @author kevin
 * @date 2016/8/7
 */
@SlaveId
public class CangoRequestDto {
    /**
     * The constant serialVersionUID.
     */
    private static final long serialVersionUID = -3153523853123787010L;

    /**
     * The Name.
     *
     * @描述:canal实例名称
     * @字段:name VARCHAR(50)
     */
    @NotEmpty
    private String name;


    /**
     * The Host.
     *
     * @描述:源库主机地址
     * @字段:host VARCHAR(50)
     */
    @NotEmpty
    private String host;


    /**
     * The Port.
     *
     * @描述:源库主机端口
     * @字段:port INT(10)
     */
    @NotNull
    private Integer port;


    /**
     * The User name.
     *
     * @描述:源库用户名
     * @字段:user_name VARCHAR(100)
     */
    @NotEmpty
    private String userName;


    /**
     * The Password.
     *
     * @描述:源库密码
     * @字段:password VARCHAR(32)
     */
    @NotEmpty
    private String password;

    /**
     * @描述:源库名称
     * @字段:db_name VARCHAR(50)
     */
    @NotEmpty
    private String dbName;

    /**
     * 该Canal实例上所有感兴趣的表.
     */
    private Set<String> tableNames;

    /**
     * The Db type.
     *
     */
    @NotNull
// Path: cango-common/src/main/java/com/bella/cango/enums/DbType.java
// public enum DbType {
//     MYSQL(1, "com.mysql.jdbc.Driver"),
//     ORACLE(2, "oracle.jdbc.driver.OracleDriver"),
//     DRDS(3, "com.mysql.jdbc.Driver");
// 
//     private Integer code;
//     private String driver;
// 
//     DbType(Integer type, String driver) {
//         this.code = type;
//     }
// 
//     public Integer getCode() {
//         return code;
//     }
// 
//     public String getDriver() {
//         return driver;
//     }
// 
//     public boolean isOracle() {
//         return this.equals(ORACLE);
//     }
// 
// 
//     public boolean isMysql() {
//         return this.equals(MYSQL);
//     }
// 
//     public boolean isDRDS() {
//         return this.equals(DRDS);
//     }
// 
//     public DbType parse(Integer code) {
//         switch (code) {
//             case 1:
//                 return MYSQL;
//             case 2:
//                 return ORACLE;
//             case 3:
//                 return DRDS;
//             default:
//                 return null;
//         }
//     }
// }


// Path: cango-dto/src/main/java/com/bella/cango/dto/CangoRequestDto.java
import com.bella.cango.enums.DbType;
import com.bella.cango.validate.SlaveId;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Set;

package com.bella.cango.dto;



/**
 * TODO
 *
 * @author kevin
 * @date 2016/8/7
 */
@SlaveId
public class CangoRequestDto {
    /**
     * The constant serialVersionUID.
     */
    private static final long serialVersionUID = -3153523853123787010L;

    /**
     * The Name.
     *
     * @描述:canal实例名称
     * @字段:name VARCHAR(50)
     */
    @NotEmpty
    private String name;


    /**
     * The Host.
     *
     * @描述:源库主机地址
     * @字段:host VARCHAR(50)
     */
    @NotEmpty
    private String host;


    /**
     * The Port.
     *
     * @描述:源库主机端口
     * @字段:port INT(10)
     */
    @NotNull
    private Integer port;


    /**
     * The User name.
     *
     * @描述:源库用户名
     * @字段:user_name VARCHAR(100)
     */
    @NotEmpty
    private String userName;


    /**
     * The Password.
     *
     * @描述:源库密码
     * @字段:password VARCHAR(32)
     */
    @NotEmpty
    private String password;

    /**
     * @描述:源库名称
     * @字段:db_name VARCHAR(50)
     */
    @NotEmpty
    private String dbName;

    /**
     * 该Canal实例上所有感兴趣的表.
     */
    private Set<String> tableNames;

    /**
     * The Db type.
     *
     */
    @NotNull
    private DbType dbType;