All Downloads are FREE. Search and download functionalities are using the official Maven repository.

sf.database.dbinfo.ColumnModification Maven / Gradle / Ivy

The newest version!
package sf.database.dbinfo;

import sf.database.dbinfo.ColumnChange.Change;

import java.util.List;

/**
 * 描述在一个数据库列上,实际的模型和框架中的模型之间的差异
 */
public final class ColumnModification {
    private ColumnInfo from;
    private ColumnTypeEnum newColumn;
    private List changes;

    /**
     * 构造
     * @param beforeChange 变更前的列定义
     * @param changes      对比出来的变化
     * @param changeTo     变更后的列类型
     */
    public ColumnModification(ColumnInfo beforeChange, List changes, ColumnTypeEnum changeTo) {
        this.from = beforeChange;
        this.changes = changes;
        this.newColumn = changeTo;
    }

    @Override
    public String toString() {
        return from.toString();
    }

    /**
     * 得到数据库中(实际)的列定义
     * @return 数据库中的列定义
     */
    public ColumnInfo getFrom() {
        return from;
    }

    /**
     * 获得数据库列上的数据类型变更
     * @return 在一个列上的变更列表(比如Default值变化、null/not null变化、数据类型变化、数据长度变化等)
     * @see ColumnChange
     */
    public List getChanges() {
        return changes;
    }

    /**
     * 得到模型会将数据库列更改为类型
     * @return 更改后的类型
     * @see ColumnTypeEnum
     */
    public ColumnTypeEnum getNewColumn() {
        return newColumn;
    }

    /**
     * 返回列名
     * @return 列名
     */
    public String getColumnName() {
        return from.getColumnName();
    }

    public boolean hasChange(Change type) {
        if (changes != null) {
            for (ColumnChange cc : changes) {
                if (cc.getType() == type) {
                    return true;
                }
            }
        }
        return false;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy