package com.bocloud.ims.entity.resource.hmc;

import com.alibaba.fastjson.JSONObject;
import com.bocloud.entity.annotations.Column;
import com.bocloud.entity.annotations.IgnoreAll;
import com.bocloud.entity.annotations.PK;
import com.bocloud.entity.annotations.Table;
import com.bocloud.entity.meta.PKStrategy;

/**
 * HMC属性中的虚拟SCSI适配器
 * 
 * 
 * @author lkx007
 *
 */
@Deprecated
@Table("hmc_partition_scsi_adapter")
public class HmcPartitionScsiAdapter {
    /**
     * id
     */
    @PK(value = PKStrategy.AUTO)
    private Long id;
    /**
     * 适配器的id号
     */
    @Column("adapter_id")
    private Integer adapterId;

    /**
     * 适配器所在分区的partition的平台id
     */
    @Column("partition_id")
    private Long partitionId;
    /**
     * 适配器所对应的分区的partition的平台id
     */
    @Column("remote_partition_id")
    private Long remotePartitionId;
    /**
     * 适配器所对应的分区的partition的插槽号
     */
    @Column("remote_slot_number")
    private Integer remoteSlotNumber;
    /**
     * 适配器类型
     * 
     * 暂时只存client类型的适配器
     * 
     * Client
     */
    @Column("type")
    private String type;
    /**
     * 是否必须
     */
    @Column("is_required")
    private Boolean isRequired;
    /**
     * 适配器的位置
     * 
     * U8203.E4A.10F8563-V6-C4
     */
    @Column("location_code")
    private String locationCode;

    /**
     * vios的名称
     */
    @IgnoreAll
    private String remotePartitionName;

    /**
     * vios的hmc的id
     */
    @IgnoreAll
    private Integer remotePartitionHmcId;

    /**
     * @return the id
     */
    public Long getId() {
        return id;
    }

    /**
     * @param id
     *            the id to set
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * @return the adapterId
     */
    public Integer getAdapterId() {
        return adapterId;
    }

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

    /**
     * @return the partitionId
     */
    public Long getPartitionId() {
        return partitionId;
    }

    /**
     * @param partitionId
     *            the partitionId to set
     */
    public void setPartitionId(Long partitionId) {
        this.partitionId = partitionId;
    }

    /**
     * @return the remotePartitionId
     */
    public Long getRemotePartitionId() {
        return remotePartitionId;
    }

    /**
     * @param remotePartitionId
     *            the remotePartitionId to set
     */
    public void setRemotePartitionId(Long remotePartitionId) {
        this.remotePartitionId = remotePartitionId;
    }

    /**
     * @return the remoteSlotNumber
     */
    public Integer getRemoteSlotNumber() {
        return remoteSlotNumber;
    }

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

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

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

    /**
     * @return the isRequired
     */
    public Boolean getIsRequired() {
        return isRequired;
    }

    /**
     * @param isRequired
     *            the isRequired to set
     */
    public void setIsRequired(Boolean isRequired) {
        this.isRequired = isRequired;
    }

    /**
     * @return the locationCode
     */
    public String getLocationCode() {
        return locationCode;
    }

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

    /**
     * @return the remotePartitionName
     */
    public String getRemotePartitionName() {
        return remotePartitionName;
    }

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

    /**
     * @return the remotePartitionHmcId
     */
    public Integer getRemotePartitionHmcId() {
        return remotePartitionHmcId;
    }

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

    public HmcPartitionScsiAdapter() {
    }

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

}
