/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.api.service.impl.resource.utils;
import java.util.Map;
import com.emc.storageos.db.client.model.Host;
import com.emc.storageos.db.client.model.Host.HostType;
import com.emc.storageos.model.host.HostParam;
import com.google.common.collect.Maps;
public abstract class HostConnectionValidator {
protected static Map<HostType, HostConnectionValidator> validators = Maps.newHashMap();
protected static void addValidator(HostConnectionValidator hostConnectionValidator) {
validators.put(hostConnectionValidator.getType(), hostConnectionValidator);
}
public static boolean isHostConnectionValid(HostParam hostParam, Host existingHost) {
HostType hostType = HostType.valueOf(hostParam.getType());
HostConnectionValidator hostConnectionValidator = validators.get(hostType);
if (hostConnectionValidator != null) {
return hostConnectionValidator.validateConnection(hostParam, existingHost);
}
return true;
}
public abstract HostType getType();
public abstract boolean validateConnection(HostParam hostParam, Host existingHost);
}