/*
* Copyright (c) 2008-2014 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.networkcontroller.impl.mds;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.emc.storageos.db.client.model.NetworkSystem;
public class IvrZone extends BaseZoneInfo {
private static final Logger _log = LoggerFactory.getLogger(IvrZone.class);
private List<IvrZoneMember> members;
private NetworkSystem ivrNetworkSystem = null; // ivr network system that manage this ivr zone
public IvrZone(String name) {
super(name);
}
public List<IvrZoneMember> getMembers() {
if (members == null) {
members = new ArrayList<IvrZoneMember>();
}
return members;
}
public void setMembers(List<IvrZoneMember> members) {
this.members = members;
}
public void print() {
_log.info("zone: " + name + " (" + instanceID + ") " + (active ? "active" : ""));
for (IvrZoneMember member : members) {
member.print();
}
}
/**
* Verify if given ivr zone member is a member of ivr zone
*
* @param zoneMember
* @return
*/
public boolean contains(IvrZoneMember zoneMember) {
return getMembers().contains(zoneMember);
}
@Override
public int hashCode() {
return getName().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj instanceof IvrZone) {
IvrZone ivrZone = (IvrZone) obj;
List<IvrZoneMember> tmpMembers = new ArrayList<IvrZoneMember>(getMembers());
tmpMembers.removeAll(ivrZone.getMembers());
return ivrZone.getName().equalsIgnoreCase(getName()) && tmpMembers.isEmpty();
}
return false;
}
public NetworkSystem getIvrNetworkSystem() {
return ivrNetworkSystem;
}
public void setIvrNetworkSystem(NetworkSystem ivrNetworkSystem) {
this.ivrNetworkSystem = ivrNetworkSystem;
}
}