private final class SourceConnectionTesterFactory {
public ConnectionTester getTester(Source src) {
DataLocation location = src.getLocation();
if (location == null) {
return null;
}
switch (location.getDataLocationType()) {
case Database:
return visit((DatabaseLocation) location);
case FileShare:
return visit((FileShareLocation) location);
case TemporaryStorage:
return visit((TemporaryStorageLocation) location);
case FTP:
return visit((FtpLocation) location);
case HTTP:
return visit((HttpLocation) location);
case JMS:
return visit((JmsLocation) location);
case LDAP:
return visit((LdapLocation) location);
default:
throw new UnsupportedOperationException("Unexpected location type: " + location.getDataLocationType());
}
}