package com.bocloud.cmp.model.hmc.sdk.module;

import com.alibaba.fastjson.JSONObject;
import com.bocloud.cmp.model.hmc.sdk.common.Atom;
import com.bocloud.cmp.model.hmc.sdk.common.Metadata;

public class ClientAdapter {
    private Metadata metadata;
    private String adapterType;
    private String dynamicReconfigurationConnectorName;
    private String locationCode;
    private String localPartitionId;
    private String requiredAdapter;
    private String variedOn;
    private String virtualSlotNumber;
    private String adapterName;
    private String connectingPartitionID;
    private String connectingVirtualSlotNumber;
    private String backingDeviceName;
    private String remoteLogicalPartitionId;
    private String remoteSlotNumber;
    private String serverLocationCode;
    private String wwpns;

    public ClientAdapter() {
    }

    public ClientAdapter(String localPartitionId, String remoteLogicalPartitionId, String remoteSlotNumber,
                         String requiredAdapter) {
        this.metadata = new Metadata(new Atom());
        this.adapterType = "Client";
        this.localPartitionId = localPartitionId;
        this.remoteLogicalPartitionId = remoteLogicalPartitionId;
        this.remoteSlotNumber = remoteSlotNumber;
        this.requiredAdapter = requiredAdapter;
    }

    public ClientAdapter(String localPartitionId, String remoteLogicalPartitionId, String requiredAdapter) {
        this.metadata = new Metadata(new Atom());
        this.adapterType = "Client";
        this.localPartitionId = localPartitionId;
        this.remoteLogicalPartitionId = remoteLogicalPartitionId;
        this.requiredAdapter = requiredAdapter;
    }

    public Metadata getMetadata() {
        return metadata;
    }

    public void setMetadata(Metadata metadata) {
        this.metadata = metadata;
    }

    public String getAdapterType() {
        return adapterType;
    }

    public void setAdapterType(String adapterType) {
        this.adapterType = adapterType;
    }

    public String getDynamicReconfigurationConnectorName() {
        return dynamicReconfigurationConnectorName;
    }

    public void setDynamicReconfigurationConnectorName(String dynamicReconfigurationConnectorName) {
        this.dynamicReconfigurationConnectorName = dynamicReconfigurationConnectorName;
    }

    public String getLocationCode() {
        return locationCode;
    }

    public void setLocationCode(String locationCode) {
        this.locationCode = locationCode;
    }

    public String getLocalPartitionId() {
        return localPartitionId;
    }

    public void setLocalPartitionId(String localPartitionId) {
        this.localPartitionId = localPartitionId;
    }

    public String getRequiredAdapter() {
        return requiredAdapter;
    }

    public void setRequiredAdapter(String requiredAdapter) {
        this.requiredAdapter = requiredAdapter;
    }

    public String getVariedOn() {
        return variedOn;
    }

    public void setVariedOn(String variedOn) {
        this.variedOn = variedOn;
    }

    public String getVirtualSlotNumber() {
        return virtualSlotNumber;
    }

    public void setVirtualSlotNumber(String virtualSlotNumber) {
        this.virtualSlotNumber = virtualSlotNumber;
    }

    public String getRemoteLogicalPartitionId() {
        return remoteLogicalPartitionId;
    }

    public void setRemoteLogicalPartitionId(String remoteLogicalPartitionId) {
        this.remoteLogicalPartitionId = remoteLogicalPartitionId;
    }

    public String getRemoteSlotNumber() {
        return remoteSlotNumber;
    }

    public void setRemoteSlotNumber(String remoteSlotNumber) {
        this.remoteSlotNumber = remoteSlotNumber;
    }

    public String getServerLocationCode() {
        return serverLocationCode;
    }

    public void setServerLocationCode(String serverLocationCode) {
        this.serverLocationCode = serverLocationCode;
    }

    public String getWwpns() {
        return wwpns;
    }

    public void setWwpns(String wwpns) {
        this.wwpns = wwpns;
    }

    public String getAdapterName() {
        return adapterName;
    }

    public void setAdapterName(String adapterName) {
        this.adapterName = adapterName;
    }

    public String getConnectingPartitionID() {
        return connectingPartitionID;
    }

    public void setConnectingPartitionID(String connectingPartitionID) {
        this.connectingPartitionID = connectingPartitionID;
    }

    public String getConnectingVirtualSlotNumber() {
        return connectingVirtualSlotNumber;
    }

    public void setConnectingVirtualSlotNumber(String connectingVirtualSlotNumber) {
        this.connectingVirtualSlotNumber = connectingVirtualSlotNumber;
    }

    public String getBackingDeviceName() {
        return backingDeviceName;
    }

    public void setBackingDeviceName(String backingDeviceName) {
        this.backingDeviceName = backingDeviceName;
    }

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