package com.bocloud.cmp.model.hmc;

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

public class HmdServerModel extends HmdGenericModel {
    private String name; // 名称
    private String status; // 状态
    private String referenceCode; // 参考码
    private String systemFirmware; // 防火墙
    private String activatedLevel; // 活动级别
    private String machineType; // 机器类型
    private String model; // 型号
    private String serialNumber; // 序列号
    private Integer maximumPartitions; // 最大分区数
    private String physicalSystemAttentionLedState; // 提醒指示灯
    private String primaryIpAddress; // IP地址
    private String hostname; // 主机名
    private String serviceProcessorVersion; // 服务处理器版本
    private String manufacturingDefaultConfigurationEnabled; // 出厂缺省配置
    private Double currentAvailableSystemProcessorUnits; // 可用的CPU
    private Double configurableSystemProcessorUnits; // 可配置的CPU
    private Double installedSystemProcessorUnits; // 已安装CPU
    private String supportedPartitionProcessorCompatibilityModes; // 支持的处理器兼容模式
    private Integer currentAvailableSystemMemory; // 可用的内存
    private Integer memoryUsedByHypervisor; // 保留的内存
    private Integer configurableSystemMemory; // 可配置的内存
    private Integer installedSystemMemory; // 已安装内存
    private Integer memoryRegionSize; // 内存区域大小
    private Integer hugePageSize; // 页面大小
    private Integer currentAvailableHugePages; // 可用的超大页面内存量(页数)
    private Integer configurableHugePages; // 可配置的超大页面内存量(页数)
    private Integer maximumHugePages; // 最大超大页面内存量(页数)
    private Integer requestedHugePages; // 请求的超大页面内存量(页数)
    private Integer totalBarrierSynchronizationRegisterArrays; // 屏障同步寄存器阵列数
    private Integer barrierSynchronizationRegisterArraySize; // 每个屏障同步寄存器阵列的字节数
    private Integer availableBarrierSynchronizationRegisterArrays; // 可用的屏障同步寄存器阵列数
    private Boolean poweroffAllLparShutdown; // 是否在所有逻辑分区断电后对系统断电
    private String currentPoweronLparStartPolicy; // 分区启动策略当前的值
    private String pendingPoweronLparStartPolicy; // 分区启动策略下一个值
    private String currentPoweronSide; // 供电端当前的值
    private String pendingPoweronSide; // 供电端下一个值
    private String poweronSpeed; // 供电速度
    private String poweronSpeedOverride; // 供电速度覆盖
    private String currentSystemKeylock; // 键锁位置当前的值
    private String pendingSystemKeylock; // 键锁位置下一个值
    private String currentBootMode; // AIX/Linux引导方式当前的值
    private String pendingBootMode; // AIX/Linux引导方式下一个值
    private String poweronSource; // 供电源
    private List<HmdServerIoAdapterModel> ioAdapters = new ArrayList<>();
    private List<HmdServerSharedProcessorPoolModel> sharedProcessorPools = new ArrayList<>();
    private List<HmdServerCapabilityModel> capabilities = new ArrayList<>();
    private List<HmdServerVirtualBridgeModel> virtualBridges = new ArrayList<>();
    private List<HmdServerVirtualNetworkModel> virtualNetworks = new ArrayList<>();
    private List<HmdServerVirtualSwitchModel> virtualSwitches = new ArrayList<>();
    private List<HmdServerHeaModel> heas = new ArrayList<>();
    private List<HmdPartitionModel> lpars = new ArrayList<>();
    private List<HmdPartitionModel> vioses = new ArrayList<>();

    public String getReferenceCode() {
        return referenceCode;
    }

    public void setReferenceCode(String referenceCode) {
        this.referenceCode = referenceCode;
    }

    public String getSystemFirmware() {
        return systemFirmware;
    }

    public void setSystemFirmware(String systemFirmware) {
        this.systemFirmware = systemFirmware;
    }

    public String getActivatedLevel() {
        return activatedLevel;
    }

    public void setActivatedLevel(String activatedLevel) {
        this.activatedLevel = activatedLevel;
    }

    public String getMachineType() {
        return machineType;
    }

    public void setMachineType(String machineType) {
        this.machineType = machineType;
    }

    public String getModel() {
        return model;
    }

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

    public String getSerialNumber() {
        return serialNumber;
    }

    public void setSerialNumber(String serialNumber) {
        this.serialNumber = serialNumber;
    }

    public Integer getMaximumPartitions() {
        return maximumPartitions;
    }

    public void setMaximumPartitions(Integer maximumPartitions) {
        this.maximumPartitions = maximumPartitions;
    }

    public String getPhysicalSystemAttentionLedState() {
        return physicalSystemAttentionLedState;
    }

    public void setPhysicalSystemAttentionLedState(String physicalSystemAttentionLedState) {
        this.physicalSystemAttentionLedState = physicalSystemAttentionLedState;
    }

    public String getPrimaryIpAddress() {
        return primaryIpAddress;
    }

    public void setPrimaryIpAddress(String primaryIpAddress) {
        this.primaryIpAddress = primaryIpAddress;
    }

    public String getHostname() {
        return hostname;
    }

    public void setHostname(String hostname) {
        this.hostname = hostname;
    }

    public String getServiceProcessorVersion() {
        return serviceProcessorVersion;
    }

    public void setServiceProcessorVersion(String serviceProcessorVersion) {
        this.serviceProcessorVersion = serviceProcessorVersion;
    }

    public String getManufacturingDefaultConfigurationEnabled() {
        return manufacturingDefaultConfigurationEnabled;
    }

    public void setManufacturingDefaultConfigurationEnabled(String manufacturingDefaultConfigurationEnabled) {
        this.manufacturingDefaultConfigurationEnabled = manufacturingDefaultConfigurationEnabled;
    }

    public Double getCurrentAvailableSystemProcessorUnits() {
        return currentAvailableSystemProcessorUnits;
    }

    public void setCurrentAvailableSystemProcessorUnits(Double currentAvailableSystemProcessorUnits) {
        this.currentAvailableSystemProcessorUnits = currentAvailableSystemProcessorUnits;
    }

    public Double getConfigurableSystemProcessorUnits() {
        return configurableSystemProcessorUnits;
    }

    public void setConfigurableSystemProcessorUnits(Double configurableSystemProcessorUnits) {
        this.configurableSystemProcessorUnits = configurableSystemProcessorUnits;
    }

    public Double getInstalledSystemProcessorUnits() {
        return installedSystemProcessorUnits;
    }

    public void setInstalledSystemProcessorUnits(Double installedSystemProcessorUnits) {
        this.installedSystemProcessorUnits = installedSystemProcessorUnits;
    }

    public String getSupportedPartitionProcessorCompatibilityModes() {
        return supportedPartitionProcessorCompatibilityModes;
    }

    public void setSupportedPartitionProcessorCompatibilityModes(String supportedPartitionProcessorCompatibilityModes) {
        this.supportedPartitionProcessorCompatibilityModes = supportedPartitionProcessorCompatibilityModes;
    }

    public Integer getCurrentAvailableSystemMemory() {
        return currentAvailableSystemMemory;
    }

    public void setCurrentAvailableSystemMemory(Integer currentAvailableSystemMemory) {
        this.currentAvailableSystemMemory = currentAvailableSystemMemory;
    }

    public Integer getMemoryUsedByHypervisor() {
        return memoryUsedByHypervisor;
    }

    public void setMemoryUsedByHypervisor(Integer memoryUsedByHypervisor) {
        this.memoryUsedByHypervisor = memoryUsedByHypervisor;
    }

    public Integer getConfigurableSystemMemory() {
        return configurableSystemMemory;
    }

    public void setConfigurableSystemMemory(Integer configurableSystemMemory) {
        this.configurableSystemMemory = configurableSystemMemory;
    }

    public Integer getInstalledSystemMemory() {
        return installedSystemMemory;
    }

    public void setInstalledSystemMemory(Integer installedSystemMemory) {
        this.installedSystemMemory = installedSystemMemory;
    }

    public Integer getMemoryRegionSize() {
        return memoryRegionSize;
    }

    public void setMemoryRegionSize(Integer memoryRegionSize) {
        this.memoryRegionSize = memoryRegionSize;
    }

    public Integer getHugePageSize() {
        return hugePageSize;
    }

    public void setHugePageSize(Integer hugePageSize) {
        this.hugePageSize = hugePageSize;
    }

    public Integer getCurrentAvailableHugePages() {
        return currentAvailableHugePages;
    }

    public void setCurrentAvailableHugePages(Integer currentAvailableHugePages) {
        this.currentAvailableHugePages = currentAvailableHugePages;
    }

    public Integer getConfigurableHugePages() {
        return configurableHugePages;
    }

    public void setConfigurableHugePages(Integer configurableHugePages) {
        this.configurableHugePages = configurableHugePages;
    }

    public Integer getMaximumHugePages() {
        return maximumHugePages;
    }

    public void setMaximumHugePages(Integer maximumHugePages) {
        this.maximumHugePages = maximumHugePages;
    }

    public Integer getRequestedHugePages() {
        return requestedHugePages;
    }

    public void setRequestedHugePages(Integer requestedHugePages) {
        this.requestedHugePages = requestedHugePages;
    }

    public Integer getTotalBarrierSynchronizationRegisterArrays() {
        return totalBarrierSynchronizationRegisterArrays;
    }

    public void setTotalBarrierSynchronizationRegisterArrays(Integer totalBarrierSynchronizationRegisterArrays) {
        this.totalBarrierSynchronizationRegisterArrays = totalBarrierSynchronizationRegisterArrays;
    }

    public Integer getBarrierSynchronizationRegisterArraySize() {
        return barrierSynchronizationRegisterArraySize;
    }

    public void setBarrierSynchronizationRegisterArraySize(Integer barrierSynchronizationRegisterArraySize) {
        this.barrierSynchronizationRegisterArraySize = barrierSynchronizationRegisterArraySize;
    }

    public Integer getAvailableBarrierSynchronizationRegisterArrays() {
        return availableBarrierSynchronizationRegisterArrays;
    }

    public void setAvailableBarrierSynchronizationRegisterArrays(Integer availableBarrierSynchronizationRegisterArrays) {
        this.availableBarrierSynchronizationRegisterArrays = availableBarrierSynchronizationRegisterArrays;
    }

    public Boolean getPoweroffAllLparShutdown() {
        return poweroffAllLparShutdown;
    }

    public void setPoweroffAllLparShutdown(Boolean poweroffAllLparShutdown) {
        this.poweroffAllLparShutdown = poweroffAllLparShutdown;
    }

    public String getCurrentPoweronLparStartPolicy() {
        return currentPoweronLparStartPolicy;
    }

    public void setCurrentPoweronLparStartPolicy(String currentPoweronLparStartPolicy) {
        this.currentPoweronLparStartPolicy = currentPoweronLparStartPolicy;
    }

    public String getPendingPoweronLparStartPolicy() {
        return pendingPoweronLparStartPolicy;
    }

    public void setPendingPoweronLparStartPolicy(String pendingPoweronLparStartPolicy) {
        this.pendingPoweronLparStartPolicy = pendingPoweronLparStartPolicy;
    }

    public String getCurrentPoweronSide() {
        return currentPoweronSide;
    }

    public void setCurrentPoweronSide(String currentPoweronSide) {
        this.currentPoweronSide = currentPoweronSide;
    }

    public String getPendingPoweronSide() {
        return pendingPoweronSide;
    }

    public void setPendingPoweronSide(String pendingPoweronSide) {
        this.pendingPoweronSide = pendingPoweronSide;
    }

    public String getPoweronSpeed() {
        return poweronSpeed;
    }

    public void setPoweronSpeed(String poweronSpeed) {
        this.poweronSpeed = poweronSpeed;
    }

    public String getPoweronSpeedOverride() {
        return poweronSpeedOverride;
    }

    public void setPoweronSpeedOverride(String poweronSpeedOverride) {
        this.poweronSpeedOverride = poweronSpeedOverride;
    }

    public String getCurrentSystemKeylock() {
        return currentSystemKeylock;
    }

    public void setCurrentSystemKeylock(String currentSystemKeylock) {
        this.currentSystemKeylock = currentSystemKeylock;
    }

    public String getPendingSystemKeylock() {
        return pendingSystemKeylock;
    }

    public void setPendingSystemKeylock(String pendingSystemKeylock) {
        this.pendingSystemKeylock = pendingSystemKeylock;
    }

    public String getCurrentBootMode() {
        return currentBootMode;
    }

    public void setCurrentBootMode(String currentBootMode) {
        this.currentBootMode = currentBootMode;
    }

    public String getPendingBootMode() {
        return pendingBootMode;
    }

    public void setPendingBootMode(String pendingBootMode) {
        this.pendingBootMode = pendingBootMode;
    }

    public String getPoweronSource() {
        return poweronSource;
    }

    public void setPoweronSource(String poweronSource) {
        this.poweronSource = poweronSource;
    }

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

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

    public List<HmdServerSharedProcessorPoolModel> getSharedProcessorPools() {
        return sharedProcessorPools;
    }

    public void setSharedProcessorPools(List<HmdServerSharedProcessorPoolModel> sharedProcessorPools) {
        this.sharedProcessorPools = sharedProcessorPools;
    }

    public void setSharedProcessorPoolUrls(List<String> urls) {
        this.sharedProcessorPools = urls.stream().map(url -> {
            HmdServerSharedProcessorPoolModel pool = new HmdServerSharedProcessorPoolModel();
            pool.setUrl(url);
            return pool;
        }).collect(Collectors.toList());
    }

    public List<HmdServerCapabilityModel> getCapabilities() {
        return capabilities;
    }

    public void setCapabilities(List<HmdServerCapabilityModel> capabilities) {
        this.capabilities = capabilities;
    }

    public List<HmdServerVirtualBridgeModel> getVirtualBridges() {
        return virtualBridges;
    }

    public void setVirtualBridges(List<HmdServerVirtualBridgeModel> virtualBridges) {
        this.virtualBridges = virtualBridges;
    }

    public void setVirtualBridgeUrls(List<String> urls) {
        this.virtualBridges = urls.stream().map(url -> {
            HmdServerVirtualBridgeModel bridge = new HmdServerVirtualBridgeModel();
            bridge.setUrl(url);
            return bridge;
        }).collect(Collectors.toList());
    }

    public List<HmdServerVirtualNetworkModel> getVirtualNetworks() {
        return virtualNetworks;
    }

    public void setVirtualNetworks(List<HmdServerVirtualNetworkModel> virtualNetworks) {
        this.virtualNetworks = virtualNetworks;
    }

    public void setVirtualNetworkUrls(List<String> urls) {
        this.virtualNetworks = urls.stream().map(url -> {
            HmdServerVirtualNetworkModel network = new HmdServerVirtualNetworkModel();
            network.setUrl(url);
            return network;
        }).collect(Collectors.toList());
    }

    public List<HmdServerVirtualSwitchModel> getVirtualSwitches() {
        return virtualSwitches;
    }

    public void setVirtualSwitches(List<HmdServerVirtualSwitchModel> virtualSwitches) {
        this.virtualSwitches = virtualSwitches;
    }

    public void setVirtualSwitcheUrls(List<String> urls) {
        this.virtualSwitches = urls.stream().map(url -> {
            HmdServerVirtualSwitchModel virtualSwitch = new HmdServerVirtualSwitchModel();
            virtualSwitch.setUrl(url);
            return virtualSwitch;
        }).collect(Collectors.toList());
    }

    public List<HmdServerHeaModel> getHeas() {
        return heas;
    }

    public void setHeas(List<HmdServerHeaModel> heas) {
        this.heas = heas;
    }

    public void setHeaUrls(List<String> urls) {
        this.heas = urls.stream().map(url -> {
            HmdServerHeaModel hea = new HmdServerHeaModel();
            hea.setUrl(url);
            return hea;
        }).collect(Collectors.toList());
    }

    public List<HmdPartitionModel> getLpars() {
        return lpars;
    }

    public void setLpars(List<HmdPartitionModel> lpars) {
        this.lpars = lpars;
    }

    public void setLparUrls(List<String> urls) {
        this.lpars = urls.stream().map(url -> {
            HmdPartitionModel lpar = new HmdPartitionModel();
            lpar.setUrl(url);
            return lpar;
        }).collect(Collectors.toList());
    }

    public List<HmdPartitionModel> getVioses() {
        return vioses;
    }

    public void setVioses(List<HmdPartitionModel> vioses) {
        this.vioses = vioses;
    }

    public void setVioseUrls(List<String> urls) {
        this.vioses = urls.stream().map(url -> {
            HmdPartitionModel vios = new HmdPartitionModel();
            vios.setUrl(url);
            return vios;
        }).collect(Collectors.toList());
    }

    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;
    }
}
