// Path: cango-instance/src/main/java/com/bella/cango/instance/oracle/common/db/meta/ColumnValue.java
// public class ColumnValue {
// 
//     private ColumnMeta column;
//     private Object value;
//     private boolean check = true; // 是否需要做数据对比
// 
//     public ColumnValue() {
//     }
// 
//     public ColumnValue(ColumnMeta column, Object value) {
//         this(column, value, true);
//     }
// 
//     public ColumnValue(ColumnMeta column, Object value, boolean check) {
//         this.value = value;
//         this.column = column;
//         this.check = check;
//     }
// 
//     public ColumnMeta getColumn() {
//         return column;
//     }
// 
//     public void setColumn(ColumnMeta column) {
//         this.column = column;
//     }
// 
//     public Object getValue() {
//         return value;
//     }
// 
//     public void setValue(Object value) {
//         this.value = value;
//     }
// 
//     public boolean isCheck() {
//         return check;
//     }
// 
//     public void setCheck(boolean check) {
//         this.check = check;
//     }
// 
//     public ColumnValue clone() {
//         ColumnValue column = new ColumnValue();
//         column.setValue(this.value);
//         column.setColumn(this.column.clone());
//         return column;
//     }
// 
//     public int hashCode() {
//         final int prime = 31;
//         int result = 1;
//         result = prime * result + ((column == null) ? 0 : column.hashCode());
//         result = prime * result + ((value == null) ? 0 : value.hashCode());
//         return result;
//     }
// 
//     public boolean equals(Object obj) {
//         if (this == obj) return true;
//         if (obj == null) return false;
//         if (getClass() != obj.getClass()) return false;
//         ColumnValue other = (ColumnValue) obj;
//         if (column == null) {
//             if (other.column != null) return false;
//         } else if (!column.equals(other.column)) return false;
//         if (value == null) {
//             if (other.value != null) return false;
//         } else if (!value.equals(other.value)) return false;
//         return true;
//     }
// 
//     @Override
//     public String toString() {
//         return "ColumnValue [column=" + column + ", value=" + value + "]";
//     }
// 
// }
// 
// Path: cango-instance/src/main/java/com/bella/cango/instance/oracle/common/utils/YuGongToStringStyle.java
// public class YuGongToStringStyle extends ToStringStyle {
// 
//     private static final long serialVersionUID = -6568177374288222145L;
// 
//     public static final ToStringStyle DEFAULT_STYLE = new DateStyle("yyyy-MM-dd HH:mm:ss");
// 
//     private static class DateStyle extends ToStringStyle {
// 
//         private static final long serialVersionUID = 5208917932254652886L;
// 
//         private String datePattern;
// 
//         public DateStyle(String datePattern) {
//             super();
//             this.setUseIdentityHashCode(false);
//             this.setUseShortClassName(true);
//             this.datePattern = datePattern;
//         }
// 
//         protected void appendDetail(StringBuffer buffer, String fieldName, Object value) {
//             if (value instanceof Date) {
//                 value = new SimpleDateFormat(datePattern).format(value);
//             } else {
//                 buffer.append(value);
//             }
//         }
//     }
// }
// 
// Path: cango-instance/src/main/java/com/bella/cango/instance/oracle/exception/YuGongException.java
// public class YuGongException extends NestableRuntimeException {
// 
//     private static final long serialVersionUID = -654893533794556357L;
// 
//     public YuGongException(String errorCode) {
//         super(errorCode);
//     }
// 
//     public YuGongException(String errorCode, Throwable cause) {
//         super(errorCode, cause);
//     }
// 
//     public YuGongException(String errorCode, String errorDesc) {
//         super(errorCode + ":" + errorDesc);
//     }
// 
//     public YuGongException(String errorCode, String errorDesc, Throwable cause) {
//         super(errorCode + ":" + errorDesc, cause);
//     }
// 
//     public YuGongException(Throwable cause) {
//         super(cause);
//     }
// 
// 
// }


import com.bella.cango.instance.oracle.common.db.meta.ColumnValue;
import com.bella.cango.instance.oracle.common.utils.YuGongToStringStyle;
import com.bella.cango.instance.oracle.exception.YuGongException;
import com.google.common.collect.Lists;
import org.apache.commons.lang.builder.ToStringBuilder;
import java.util.List;
    public String getSchemaName() {
        return schemaName;
    }

    public void setSchemaName(String schemaName) {
        this.schemaName = schemaName;
    }

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public Record clone() {
        Record record = new Record();
        record.setTableName(this.tableName);
        record.setSchemaName(this.schemaName);
        for (ColumnValue column : primaryKeys) {
            record.addPrimaryKey(column.clone());
        }

        for (ColumnValue column : columns) {
            record.addColumn(column.clone());
        }
        return record;
    }

// Path: cango-instance/src/main/java/com/bella/cango/instance/oracle/common/db/meta/ColumnValue.java
// public class ColumnValue {
// 
//     private ColumnMeta column;
//     private Object value;
//     private boolean check = true; // 是否需要做数据对比
// 
//     public ColumnValue() {
//     }
// 
//     public ColumnValue(ColumnMeta column, Object value) {
//         this(column, value, true);
//     }
// 
//     public ColumnValue(ColumnMeta column, Object value, boolean check) {
//         this.value = value;
//         this.column = column;
//         this.check = check;
//     }
// 
//     public ColumnMeta getColumn() {
//         return column;
//     }
// 
//     public void setColumn(ColumnMeta column) {
//         this.column = column;
//     }
// 
//     public Object getValue() {
//         return value;
//     }
// 
//     public void setValue(Object value) {
//         this.value = value;
//     }
// 
//     public boolean isCheck() {
//         return check;
//     }
// 
//     public void setCheck(boolean check) {
//         this.check = check;
//     }
// 
//     public ColumnValue clone() {
//         ColumnValue column = new ColumnValue();
//         column.setValue(this.value);
//         column.setColumn(this.column.clone());
//         return column;
//     }
// 
//     public int hashCode() {
//         final int prime = 31;
//         int result = 1;
//         result = prime * result + ((column == null) ? 0 : column.hashCode());
//         result = prime * result + ((value == null) ? 0 : value.hashCode());
//         return result;
//     }
// 
//     public boolean equals(Object obj) {
//         if (this == obj) return true;
//         if (obj == null) return false;
//         if (getClass() != obj.getClass()) return false;
//         ColumnValue other = (ColumnValue) obj;
//         if (column == null) {
//             if (other.column != null) return false;
//         } else if (!column.equals(other.column)) return false;
//         if (value == null) {
//             if (other.value != null) return false;
//         } else if (!value.equals(other.value)) return false;
//         return true;
//     }
// 
//     @Override
//     public String toString() {
//         return "ColumnValue [column=" + column + ", value=" + value + "]";
//     }
// 
// }
// 
// Path: cango-instance/src/main/java/com/bella/cango/instance/oracle/common/utils/YuGongToStringStyle.java
// public class YuGongToStringStyle extends ToStringStyle {
// 
//     private static final long serialVersionUID = -6568177374288222145L;
// 
//     public static final ToStringStyle DEFAULT_STYLE = new DateStyle("yyyy-MM-dd HH:mm:ss");
// 
//     private static class DateStyle extends ToStringStyle {
// 
//         private static final long serialVersionUID = 5208917932254652886L;
// 
//         private String datePattern;
// 
//         public DateStyle(String datePattern) {
//             super();
//             this.setUseIdentityHashCode(false);
//             this.setUseShortClassName(true);
//             this.datePattern = datePattern;
//         }
// 
//         protected void appendDetail(StringBuffer buffer, String fieldName, Object value) {
//             if (value instanceof Date) {
//                 value = new SimpleDateFormat(datePattern).format(value);
//             } else {
//                 buffer.append(value);
//             }
//         }
//     }
// }
// 
// Path: cango-instance/src/main/java/com/bella/cango/instance/oracle/exception/YuGongException.java
// public class YuGongException extends NestableRuntimeException {
// 
//     private static final long serialVersionUID = -654893533794556357L;
// 
//     public YuGongException(String errorCode) {
//         super(errorCode);
//     }
// 
//     public YuGongException(String errorCode, Throwable cause) {
//         super(errorCode, cause);
//     }
// 
//     public YuGongException(String errorCode, String errorDesc) {
//         super(errorCode + ":" + errorDesc);
//     }
// 
//     public YuGongException(String errorCode, String errorDesc, Throwable cause) {
//         super(errorCode + ":" + errorDesc, cause);
//     }
// 
//     public YuGongException(Throwable cause) {
//         super(cause);
//     }
// 
// 
// }


// Path: cango-instance/src/main/java/com/bella/cango/instance/oracle/common/model/record/Record.java
import com.bella.cango.instance.oracle.common.db.meta.ColumnValue;
import com.bella.cango.instance.oracle.common.utils.YuGongToStringStyle;
import com.bella.cango.instance.oracle.exception.YuGongException;
import com.google.common.collect.Lists;
import org.apache.commons.lang.builder.ToStringBuilder;
import java.util.List;

    public String getSchemaName() {
        return schemaName;
    }

    public void setSchemaName(String schemaName) {
        this.schemaName = schemaName;
    }

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public Record clone() {
        Record record = new Record();
        record.setTableName(this.tableName);
        record.setSchemaName(this.schemaName);
        for (ColumnValue column : primaryKeys) {
            record.addPrimaryKey(column.clone());
        }

        for (ColumnValue column : columns) {
            record.addColumn(column.clone());
        }
        return record;
    }

    public void clone(Record record) {