package com.bocloud.cmp.model.hmc;

import java.util.List;
import java.util.stream.Collectors;

public class HmdPartitionModel extends HmdGenericModel {
    private String name; // 名称
    private String status; // 状态
    private Integer partitionId; // 分区id
    private String type; // 分区类型: [AIX/Linux][Virtual IO Server][OS400]
    private Boolean assignAllResources; // 使用系统所有资源
    private String code; // 状态码
    private String ip; // IP地址
    private String osVersion; // 操作系统
    private Boolean ledOn; // 提醒指示灯状态
    private String rmcState; // rmc连接状态
    private Boolean allowPerformanceCollection; // 允许性能收集
    private Boolean connMonitorEnabled; // 开启连接监视
    private Boolean errorPathReport; // 开启冗余错误路径报告
    private Boolean servicePartition; // 开启服务分区
    private String processorCompatibilityMode; // 当前处理器兼容模式
    private String pendingProcessorCompatibilityMode; // 下一次处理器兼容模式
    private Integer currentMaxVirtualIoSlots; // 最大虚拟插槽数
    private String keyLockPosition; // 键锁位置
    private String currentProfileSync; // 开启同步的概要文件
    private String installStatus; // 系统安装状态
    private Integer installPercent; // 系统安装进度
    private String sharingMode; // 处理器共享模式
    private Float minUnits; // 最小处理器单元数
    private Float currUnits; // 当前处理器单元数
    private Float maxUnits; // 最大处理器单元数
    private Integer minVirtualProcessors; // 最小虚拟处理器核数
    private Integer currVirtualProcessors; // 当前虚拟处理器核数
    private Integer maxVirtualProcessors; // 最大虚拟处理器核数
    private Integer minProcessors; // 最小专用处理器数
    private Integer currProcessors; // 当前专用处理器数
    private Integer maxProcessors; // 最大专用处理器数
    private Integer minMemory; // 最小内存mb
    private Integer currMemory; // 当前内存mb
    private Integer maxMemory; // 最大内存mb
    private Integer minPageCount; // 最小内存页数
    private Integer currPageCount; // 当前内存页数
    private Integer maxPageCount; // 最大内存页数
    private Integer bsrArrays; // 屏障同步寄存器
    private List<HmdProfileModel> profiles; // 概要文件
    private List<HmdVirtualIoAdapterModel> ioAdapters; // 虚拟io适配器
    private List<HmdVirtualNetworkAdapterModel> clientNetworkAdapters; // 虚拟网络适配器
    private List<HmdVirtualNetworkAdapterModel> trunkNetworkAdapters; // 桥接网络适配器
    private List<HmdVirtualScsiAdapterModel> scsiAdapters; // 虚拟scsi适配器
    private List<HmdVirtualFabricAdapterModel> fabricAdapters; // 虚拟光纤适配器
    private List<HmdViosPhysicalDiskModel> physicalDisks; // 物理磁盘
    private List<HmdViosVirtualCdModel> virtualCds; // 虚拟光学设备
    private List<HmdViosVolumeGroupModel> volumeGroups; // 存储池
    private List<HmdViosSeaModel> seas; // 共享以太网适配器
    private List<HmdViosPhysicalEthernetAdapterModel> physicalEthernetAdapters; // 物理网卡
    private List<HmdViosPhysicalFabricAdapterModel> physicalFabricAdapters; // 物理光卡
    private HmdServerModel server; // 所属服务器
    private HmdServerSharedProcessorPoolModel processorPool; // 使用的共享处理器池
    private HmdProfileModel associatedProfile; // 关联的概要文件

    public Integer getPartitionId() {
        return partitionId;
    }

    public void setPartitionId(Integer partitionId) {
        this.partitionId = partitionId;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public String getOsVersion() {
        return osVersion;
    }

    public void setOsVersion(String osVersion) {
        this.osVersion = osVersion;
    }

    public Boolean getLedOn() {
        return ledOn;
    }

    public void setLedOn(Boolean ledOn) {
        this.ledOn = ledOn;
    }

    public String getRmcState() {
        return rmcState;
    }

    public void setRmcState(String rmcState) {
        this.rmcState = rmcState;
    }

    public Boolean getAllowPerformanceCollection() {
        return allowPerformanceCollection;
    }

    public void setAllowPerformanceCollection(Boolean allowPerformanceCollection) {
        this.allowPerformanceCollection = allowPerformanceCollection;
    }

    public Boolean getConnMonitorEnabled() {
        return connMonitorEnabled;
    }

    public void setConnMonitorEnabled(Boolean connMonitorEnabled) {
        this.connMonitorEnabled = connMonitorEnabled;
    }

    public Boolean getErrorPathReport() {
        return errorPathReport;
    }

    public void setErrorPathReport(Boolean errorPathReport) {
        this.errorPathReport = errorPathReport;
    }

    public Boolean getServicePartition() {
        return servicePartition;
    }

    public void setServicePartition(Boolean servicePartition) {
        this.servicePartition = servicePartition;
    }

    public String getProcessorCompatibilityMode() {
        return processorCompatibilityMode;
    }

    public void setProcessorCompatibilityMode(String processorCompatibilityMode) {
        this.processorCompatibilityMode = processorCompatibilityMode;
    }

    public String getPendingProcessorCompatibilityMode() {
        return pendingProcessorCompatibilityMode;
    }

    public void setPendingProcessorCompatibilityMode(String pendingProcessorCompatibilityMode) {
        this.pendingProcessorCompatibilityMode = pendingProcessorCompatibilityMode;
    }

    public Integer getCurrentMaxVirtualIoSlots() {
        return currentMaxVirtualIoSlots;
    }

    public void setCurrentMaxVirtualIoSlots(Integer currentMaxVirtualIoSlots) {
        this.currentMaxVirtualIoSlots = currentMaxVirtualIoSlots;
    }

    public String getKeyLockPosition() {
        return keyLockPosition;
    }

    public void setKeyLockPosition(String keyLockPosition) {
        this.keyLockPosition = keyLockPosition;
    }

    public String getCurrentProfileSync() {
        return currentProfileSync;
    }

    public void setCurrentProfileSync(String currentProfileSync) {
        this.currentProfileSync = currentProfileSync;
    }

    public String getInstallStatus() {
        return installStatus;
    }

    public void setInstallStatus(String installStatus) {
        this.installStatus = installStatus;
    }

    public Integer getInstallPercent() {
        return installPercent;
    }

    public void setInstallPercent(Integer installPercent) {
        this.installPercent = installPercent;
    }

    public String getSharingMode() {
        return sharingMode;
    }

    public void setSharingMode(String sharingMode) {
        this.sharingMode = sharingMode;
    }

    public Float getMinUnits() {
        return minUnits;
    }

    public void setMinUnits(Float minUnits) {
        this.minUnits = minUnits;
    }

    public Float getCurrUnits() {
        return currUnits;
    }

    public void setCurrUnits(Float currUnits) {
        this.currUnits = currUnits;
    }

    public Float getMaxUnits() {
        return maxUnits;
    }

    public void setMaxUnits(Float maxUnits) {
        this.maxUnits = maxUnits;
    }

    public Integer getMinVirtualProcessors() {
        return minVirtualProcessors;
    }

    public void setMinVirtualProcessors(Integer minVirtualProcessors) {
        this.minVirtualProcessors = minVirtualProcessors;
    }

    public Integer getCurrVirtualProcessors() {
        return currVirtualProcessors;
    }

    public void setCurrVirtualProcessors(Integer currVirtualProcessors) {
        this.currVirtualProcessors = currVirtualProcessors;
    }

    public Integer getMaxVirtualProcessors() {
        return maxVirtualProcessors;
    }

    public void setMaxVirtualProcessors(Integer maxVirtualProcessors) {
        this.maxVirtualProcessors = maxVirtualProcessors;
    }

    public Integer getMinProcessors() {
        return minProcessors;
    }

    public void setMinProcessors(Integer minProcessors) {
        this.minProcessors = minProcessors;
    }

    public Integer getCurrProcessors() {
        return currProcessors;
    }

    public void setCurrProcessors(Integer currProcessors) {
        this.currProcessors = currProcessors;
    }

    public Integer getMaxProcessors() {
        return maxProcessors;
    }

    public void setMaxProcessors(Integer maxProcessors) {
        this.maxProcessors = maxProcessors;
    }

    public Integer getMinMemory() {
        return minMemory;
    }

    public void setMinMemory(Integer minMemory) {
        this.minMemory = minMemory;
    }

    public Integer getCurrMemory() {
        return currMemory;
    }

    public void setCurrMemory(Integer currMemory) {
        this.currMemory = currMemory;
    }

    public Integer getMaxMemory() {
        return maxMemory;
    }

    public void setMaxMemory(Integer maxMemory) {
        this.maxMemory = maxMemory;
    }

    public Integer getMinPageCount() {
        return minPageCount;
    }

    public void setMinPageCount(Integer minPageCount) {
        this.minPageCount = minPageCount;
    }

    public Integer getCurrPageCount() {
        return currPageCount;
    }

    public void setCurrPageCount(Integer currPageCount) {
        this.currPageCount = currPageCount;
    }

    public Integer getMaxPageCount() {
        return maxPageCount;
    }

    public void setMaxPageCount(Integer maxPageCount) {
        this.maxPageCount = maxPageCount;
    }

    public Integer getBsrArrays() {
        return bsrArrays;
    }

    public void setBsrArrays(Integer bsrArrays) {
        this.bsrArrays = bsrArrays;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public List<HmdProfileModel> getProfiles() {
        return profiles;
    }

    public void setProfiles(List<HmdProfileModel> profiles) {
        this.profiles = profiles;
    }

    public void setProfileUrls(List<String> urls) {
        this.profiles = urls.stream().map(url -> {
            HmdProfileModel profile = new HmdProfileModel();
            profile.setUrl(url);
            return profile;
        }).collect(Collectors.toList());
    }

    public List<HmdVirtualIoAdapterModel> getIoAdapters() {
        return ioAdapters;
    }

    public void setIoAdapters(List<HmdVirtualIoAdapterModel> ioAdapters) {
        this.ioAdapters = ioAdapters;
    }

    public void setIoAdapterUrls(List<String> urls) {
        this.ioAdapters = urls.stream().map(url -> {
            HmdVirtualIoAdapterModel adapter = new HmdVirtualIoAdapterModel();
            adapter.setUrl(url);
            return adapter;
        }).collect(Collectors.toList());
    }

    public List<HmdVirtualNetworkAdapterModel> getClientNetworkAdapters() {
        return clientNetworkAdapters;
    }

    public void setClientNetworkAdapters(List<HmdVirtualNetworkAdapterModel> clientNetworkAdapters) {
        this.clientNetworkAdapters = clientNetworkAdapters;
    }

    public void setClientNetworkAdapterUrls(List<String> urls) {
        this.clientNetworkAdapters = urls.stream().map(url -> {
            HmdVirtualNetworkAdapterModel adapter = new HmdVirtualNetworkAdapterModel();
            adapter.setUrl(url);
            return adapter;
        }).collect(Collectors.toList());
    }

    public List<HmdVirtualNetworkAdapterModel> getTrunkNetworkAdapters() {
        return trunkNetworkAdapters;
    }

    public void setTrunkNetworkAdapters(List<HmdVirtualNetworkAdapterModel> trunkNetworkAdapters) {
        this.trunkNetworkAdapters = trunkNetworkAdapters;
    }

    public void setTrunkNetworkAdapterUrls(List<String> urls) {
        this.trunkNetworkAdapters = urls.stream().map(url -> {
            HmdVirtualNetworkAdapterModel adapter = new HmdVirtualNetworkAdapterModel();
            adapter.setUrl(url);
            return adapter;
        }).collect(Collectors.toList());
    }

    public List<HmdVirtualScsiAdapterModel> getScsiAdapters() {
        return scsiAdapters;
    }

    public void setScsiAdapters(List<HmdVirtualScsiAdapterModel> scsiAdapters) {
        this.scsiAdapters = scsiAdapters;
    }

    public void setScsiAdapterUrls(List<String> urls) {
        this.scsiAdapters = urls.stream().map(url -> {
            HmdVirtualScsiAdapterModel adapter = new HmdVirtualScsiAdapterModel();
            adapter.setUrl(url);
            return adapter;
        }).collect(Collectors.toList());
    }

    public List<HmdVirtualFabricAdapterModel> getFabricAdapters() {
        return fabricAdapters;
    }

    public void setFabricAdapters(List<HmdVirtualFabricAdapterModel> fabricAdapters) {
        this.fabricAdapters = fabricAdapters;
    }

    public void setFabricAdapterUrls(List<String> urls) {
        this.fabricAdapters = urls.stream().map(url -> {
            HmdVirtualFabricAdapterModel adapter = new HmdVirtualFabricAdapterModel();
            adapter.setUrl(url);
            return adapter;
        }).collect(Collectors.toList());
    }

    public List<HmdViosPhysicalDiskModel> getPhysicalDisks() {
        return physicalDisks;
    }

    public void setPhysicalDisks(List<HmdViosPhysicalDiskModel> physicalDisks) {
        this.physicalDisks = physicalDisks;
    }

    public void setPhysicalDiskUrls(List<String> urls) {
        this.physicalDisks = urls.stream().map(url -> {
            HmdViosPhysicalDiskModel disk = new HmdViosPhysicalDiskModel();
            disk.setUrl(url);
            return disk;
        }).collect(Collectors.toList());
    }

    public List<HmdViosVirtualCdModel> getVirtualCds() {
        return virtualCds;
    }

    public void setVirtualCds(List<HmdViosVirtualCdModel> virtualCds) {
        this.virtualCds = virtualCds;
    }

    public void setVirtualCdUrls(List<String> urls) {
        this.virtualCds = urls.stream().map(url -> {
            HmdViosVirtualCdModel disk = new HmdViosVirtualCdModel();
            disk.setUrl(url);
            return disk;
        }).collect(Collectors.toList());
    }

    public List<HmdViosVolumeGroupModel> getVolumeGroups() {
        return volumeGroups;
    }

    public void setVolumeGroups(List<HmdViosVolumeGroupModel> volumeGroups) {
        this.volumeGroups = volumeGroups;
    }

    public void setVolumeGroupUrls(List<String> urls) {
        this.volumeGroups = urls.stream().map(url -> {
            HmdViosVolumeGroupModel group = new HmdViosVolumeGroupModel();
            group.setUrl(url);
            return group;
        }).collect(Collectors.toList());
    }

    public List<HmdViosSeaModel> getSeas() {
        return seas;
    }

    public void setSeas(List<HmdViosSeaModel> seas) {
        this.seas = seas;
    }

    public void setSeaUrls(List<String> urls) {
        this.seas = urls.stream().map(url -> {
            HmdViosSeaModel sea = new HmdViosSeaModel();
            sea.setUrl(url);
            return sea;
        }).collect(Collectors.toList());
    }

    public List<HmdViosPhysicalEthernetAdapterModel> getPhysicalEthernetAdapters() {
        return physicalEthernetAdapters;
    }

    public void setPhysicalEthernetAdapters(List<HmdViosPhysicalEthernetAdapterModel> physicalEthernetAdapters) {
        this.physicalEthernetAdapters = physicalEthernetAdapters;
    }

    public void setPhysicalEthernetAdapterUrls(List<String> urls) {
        this.physicalEthernetAdapters = urls.stream().map(url -> {
            HmdViosPhysicalEthernetAdapterModel adapter = new HmdViosPhysicalEthernetAdapterModel();
            adapter.setUrl(url);
            return adapter;
        }).collect(Collectors.toList());
    }

    public List<HmdViosPhysicalFabricAdapterModel> getPhysicalFabricAdapters() {
        return physicalFabricAdapters;
    }

    public void setPhysicalFabricAdapters(List<HmdViosPhysicalFabricAdapterModel> physicalFabricAdapters) {
        this.physicalFabricAdapters = physicalFabricAdapters;
    }

    public void setPhysicalFabricAdapterUrls(List<String> urls) {
        this.physicalFabricAdapters = urls.stream().map(url -> {
            HmdViosPhysicalFabricAdapterModel adapter = new HmdViosPhysicalFabricAdapterModel();
            adapter.setUrl(url);
            return adapter;
        }).collect(Collectors.toList());
    }

    public HmdProfileModel newAssociatedProfile() {
        this.associatedProfile = new HmdProfileModel();
        return associatedProfile;
    }

    public HmdProfileModel getAssociatedProfile() {
        return associatedProfile;
    }

    public void setAssociatedProfile(HmdProfileModel associatedProfile) {
        this.associatedProfile = associatedProfile;
    }

    public HmdServerSharedProcessorPoolModel getProcessorPool() {
        return processorPool;
    }

    public HmdServerSharedProcessorPoolModel newProcessorPool() {
        processorPool = new HmdServerSharedProcessorPoolModel();
        return processorPool;
    }

    public void setProcessorPool(HmdServerSharedProcessorPoolModel processorPool) {
        this.processorPool = processorPool;
    }

    public HmdServerModel getServer() {
        return server;
    }

    public void setServer(HmdServerModel server) {
        this.server = server;
    }

    public HmdServerModel newServer() {
        this.server = new HmdServerModel();
        return server;
    }

    public Boolean getAssignAllResources() {
        return assignAllResources;
    }

    public void setAssignAllResources(Boolean assignAllResources) {
        this.assignAllResources = assignAllResources;
    }
}
