/* * Copyright (c) 2016 EMC Corporation * All Rights Reserved */ package com.emc.storageos.model.block.export; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; import com.emc.storageos.model.NamedRelatedResourceRep; import com.emc.storageos.model.host.InitiatorRestRep; @XmlRootElement(name = "initiator_port_map") public class InitiatorPortMapRestRep { private InitiatorRestRep initiator; private List <NamedRelatedResourceRep> storagePorts; @XmlElement(name = "initiator") public InitiatorRestRep getInitiator() { return initiator; } public void setInitiator(InitiatorRestRep initiator) { this.initiator = initiator; } @XmlElementWrapper(name = "storage_ports", required = false) @XmlElement(name = "storage_port") public List<NamedRelatedResourceRep> getStoragePorts() { if (storagePorts == null) { storagePorts = new ArrayList<NamedRelatedResourceRep>(); } Collections.sort(storagePorts, new NamedRelatedResourceRepComparator()); return storagePorts; } public void setStoragePorts(List<NamedRelatedResourceRep> storagePorts) { this.storagePorts = storagePorts; } public class NamedRelatedResourceRepComparator implements Comparator<NamedRelatedResourceRep> { @Override public int compare(NamedRelatedResourceRep o1, NamedRelatedResourceRep o2) { if (o1.getName() == null && o2.getName() == null) { return 0; } if (o1.getName() == null) { return -1; } if (o2.getName() == null) { return 1; } return(o1.getName().compareTo(o2.getName())); } } }