package com.bocloud.cmp.model.installation.catalog;

import com.alibaba.fastjson.JSONObject;

import java.util.Date;
import java.util.List;

/**
 * Raid控制器信息
 *
 * @author 007
 */
public class Controller {
    /**
     * 控制器id
     */
    private Integer controllerId;
    /**
     * 控制器的类型
     * <p>
     * SAS2 , SAS3, HPSA, MEGA
     */
    private String type;
    /**
     * 控制器支持的raid工具目录
     * （绝对路径）
     */
    private String path;
    /**
     * 该控制器上的磁盘驱动信息
     */
    private List<Drive> drives;
    private List<DriveGroup> driveGroups;
    /**
     * 型号
     */
    private String model;
    /**
     * 序列号
     */
    private String sn;
    private String sasAddress;
    private String pciAddress;
    private String revisionNo;
    /**
     * 制造日期
     */
    private Date mfgDate;
    /**
     * 出厂日期
     */
    private Date reworkDate;

    /**
     * @return the controllerId
     */
    public Integer getControllerId() {
        return controllerId;
    }

    /**
     * @param controllerId the controllerId to set
     */
    public void setControllerId(Integer controllerId) {
        this.controllerId = controllerId;
    }

    /**
     * @return the drives
     */
    public List<Drive> getDrives() {
        return drives;
    }

    /**
     * @param drives the drives to set
     */
    public void setDrives(List<Drive> drives) {
        this.drives = drives;
    }

    /**
     * @return the type
     */
    public String getType() {
        return type;
    }

    /**
     * @param type the type to set
     */
    public void setType(String type) {
        this.type = type;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getSn() {
        return sn;
    }

    public void setSn(String sn) {
        this.sn = sn;
    }

    public String getSasAddress() {
        return sasAddress;
    }

    public void setSasAddress(String sasAddress) {
        this.sasAddress = sasAddress;
    }

    public String getPciAddress() {
        return pciAddress;
    }

    public void setPciAddress(String pciAddress) {
        this.pciAddress = pciAddress;
    }

    public Date getMfgDate() {
        return mfgDate;
    }

    public void setMfgDate(Date mfgDate) {
        this.mfgDate = mfgDate;
    }

    public Date getReworkDate() {
        return reworkDate;
    }

    public void setReworkDate(Date reworkDate) {
        this.reworkDate = reworkDate;
    }

    public String getRevisionNo() {
        return revisionNo;
    }

    public void setRevisionNo(String revisionNo) {
        this.revisionNo = revisionNo;
    }

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    public List<DriveGroup> getDriveGroups() {
        return driveGroups;
    }

    public void setDriveGroups(List<DriveGroup> driveGroups) {
        this.driveGroups = driveGroups;
    }

    @Override
    public String toString() {
        return JSONObject.toJSONString(this);
    }
}
