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

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

public class VirtualSCSIMapping {
    private Metadata metadata;
    private Link associatedLogicalPartition;
    private ClientAdapter clientAdapter;
    private ServerAdapter serverAdapter;
    private Storage storage;
    private TargetDevice targetDevice;

    public Metadata getMetadata() {
        return metadata;
    }

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

    public Link getAssociatedLogicalPartition() {
        return associatedLogicalPartition;
    }

    public void setAssociatedLogicalPartition(Link associatedLogicalPartition) {
        this.associatedLogicalPartition = associatedLogicalPartition;
    }

    public ClientAdapter getClientAdapter() {
        return clientAdapter;
    }

    public void setClientAdapter(ClientAdapter clientAdapter) {
        this.clientAdapter = clientAdapter;
    }

    public ServerAdapter getServerAdapter() {
        return serverAdapter;
    }

    public void setServerAdapter(ServerAdapter serverAdapter) {
        this.serverAdapter = serverAdapter;
    }

    public Storage getStorage() {
        return storage;
    }

    public void setStorage(Storage storage) {
        this.storage = storage;
    }

    public TargetDevice getTargetDevice() {
        return targetDevice;
    }

    public void setTargetDevice(TargetDevice targetDevice) {
        this.targetDevice = targetDevice;
    }

    public VirtualSCSIMapping() {
    }

    public VirtualSCSIMapping(ServerAdapter serverAdapter, Storage storage, TargetDevice targetDevice) {
        super();
        this.metadata = new Metadata(new Atom());
        this.serverAdapter = serverAdapter;
        this.storage = storage;
        this.targetDevice = targetDevice;
    }

    public VirtualSCSIMapping(ServerAdapter serverAdapter, Storage storage) {
        super();
        this.metadata = new Metadata(new Atom());
        this.serverAdapter = serverAdapter;
        this.storage = storage;
    }

    public VirtualSCSIMapping(ClientAdapter clientAdapter, ServerAdapter serverAdapter, Storage storage,
                              TargetDevice targetDevice) {
        super();
        this.metadata = new Metadata(new Atom());
        this.clientAdapter = clientAdapter;
        this.serverAdapter = serverAdapter;
        this.storage = storage;
        this.targetDevice = targetDevice;
    }

    public VirtualSCSIMapping(ClientAdapter clientAdapter, ServerAdapter serverAdapter, Storage storage) {
        super();
        this.metadata = new Metadata(new Atom());
        this.clientAdapter = clientAdapter;
        this.serverAdapter = serverAdapter;
        this.storage = storage;
    }

    public VirtualSCSIMapping(Storage storage, TargetDevice targetDevice) {
        super();
        this.metadata = new Metadata(new Atom());
        this.storage = storage;
        this.targetDevice = targetDevice;
    }

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