/*
* Copyright (c) 2008-2014 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.networkcontroller.impl.mds;
import javax.xml.bind.annotation.XmlTransient;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.emc.storageos.db.client.util.EndpointUtility;
import com.emc.storageos.model.network.WwnAliasParam;
import com.emc.storageos.model.valid.Endpoint.EndpointType;
import com.emc.storageos.svcs.errorhandling.resources.APIException;
public class ZoneWwnAlias extends WwnAliasParam {
private static final Logger _log = LoggerFactory.getLogger(ZoneWwnAlias.class);
// indicate zone member is of type alias.
private boolean aliasType;
public ZoneWwnAlias() {
}
public ZoneWwnAlias(String name, String address) {
super(name, address);
}
@Override
public void setAddress(String address) {
if (StringUtils.isEmpty(address)) {
return;
}
if (EndpointUtility.isValidEndpoint(address, EndpointType.WWN)) {
super.setAddress(EndpointUtility.changeCase(address));
} else {
throw APIException.badRequests.illegalWWN(address);
}
}
public void print() {
_log.info("WWN Alias: " + getName() + " Address: " + getAddress());
}
public boolean hasAlias() {
return !StringUtils.isEmpty(getName());
}
@XmlTransient
public boolean isAliasType() {
return aliasType;
}
public void setAliasType(boolean isAlias) {
this.aliasType = isAlias;
}
}