package com.onaro.sanscreen.client.view.task.template.addhost.generator.host; import com.onaro.sanscreen.task.interfaces.data.template.AddHostTaskTemplateInstance; import com.onaro.sanscreen.task.interfaces.data.template.AddHostTemplate; import com.onaro.sanscreen.task.interfaces.data.inventory.ZoneMemberType; /** * Describes a port of an adapter and its configuration (zoning and LUN-masking). */ public class Port { private AddHostTaskTemplateInstance instance; private int adapterIndex; private int portIndex; private ConnectedPort connected; /** * If not null, LUN masking is applied to the port. Its ileagal that both the adapter * and its ports will have non-null masking. */ private VolumeMapMask masking; /** * If not null, zoning is applied to the port. Its ileagal that both the adapter * and its ports will have non-null zoning. */ private PortZoning zoning; public Port(AddHostTaskTemplateInstance instance, int adapterIndex, int portIndex) { this.instance = instance; this.adapterIndex = adapterIndex; this.portIndex = portIndex; AddHostTemplate template = instance.getAddHostTemplate(); if (!template.isMaskByAdapter()) { masking = new VolumeMapMask(instance, adapterIndex, portIndex); } if (template.isAddZone() && !template.isSameZoneName() && ((ZoneMemberType.PORT_WWN.equals(template.getHostZoneMemberType())) || (ZoneMemberType.SWITCH_PORT.equals(template.getHostZoneMemberType())))) { zoning = new PortZoning(instance, adapterIndex, portIndex); } connected = new ConnectedPort(instance, adapterIndex, portIndex); } public String getWwn() { return instance.getAdapterPortWwn(adapterIndex, portIndex); } public void setWwn(String wwn) { instance.setAdapterPortWwn(adapterIndex, portIndex,wwn); } public ConnectedPort getConnected() { return connected; } public VolumeMapMask getMasking() { return masking; } public PortZoning getZoning() { return zoning; } }