public static Optional resolveMetadataCollector()

in agent/service/src/main/java/org/apache/airavata/mft/agent/transport/MetadataCollectorResolver.java [26:71]


    public static Optional<MetadataCollector> resolveMetadataCollector(String type, TransportClassLoaderCache cache) throws Exception {
        String className = null;
        switch (type) {
            case "SCP":
                className = "org.apache.airavata.mft.transport.scp.SCPMetadataCollector";
                break;
            case "LOCAL":
                className = "org.apache.airavata.mft.transport.local.LocalMetadataCollector";
                break;
            case "S3":
                className = "org.apache.airavata.mft.transport.s3.S3MetadataCollector";
                break;
            case "BOX":
                className = "org.apache.airavata.mft.transport.box.BoxMetadataCollector";
                break;
            case "AZURE":
                className = "org.apache.airavata.mft.transport.azure.AzureMetadataCollector";
                break;
            case "GCS":
                className = "org.apache.airavata.mft.transport.gcp.GCSMetadataCollector";
                break;
            case "DROPBOX":
                className = "org.apache.airavata.mft.transport.dropbox.DropboxMetadataCollector";
                break;
            case "FTP":
                className = "org.apache.airavata.mft.transport.ftp.FTPMetadataCollector";
                break;
            case "SWIFT":
                className = "org.apache.airavata.mft.transport.swift.SwiftMetadataCollector";
                break;
            case "ODATA":
                className = "org.apache.airavata.mft.transport.odata.ODataMetadataCollector";
                break;
            case "HTTP":
                className = "org.apache.airavata.mft.trnasport.http.HttpMetadataCollector";
                break;
        }

        if (className != null) {
            TransportClassLoader transportClassLoader = cache.fetchClassLoader(type.toLowerCase());
            Class<?> aClass = transportClassLoader.loadClass(className, true);
            return Optional.of((MetadataCollector) aClass.getDeclaredConstructor().newInstance());
        } else {
            return Optional.empty();
        }
    }