private String findMimeType()

in taverna-prov/src/main/java/org/apache/taverna/prov/Saver.java [282:320]


    private String findMimeType(List<ExternalReferenceSPI> externalReferences)
            throws IOException, ProtocolException {
        String mimeType = null;
        for (ExternalReferenceSPI externalReference : externalReferences) {
            String className = externalReference.getClass().getName();
            if (className
                    .equals("net.sf.taverna.t2.reference.impl.external.http.HttpReference")) {
                URL url = (URL) getProperty(externalReference, "httpUrl");
                mimeType = tika.detect(url);
            } else if (className
                    .equals("net.sf.taverna.t2.reference.impl.external.file.FileReference")) {
                File file = (File) getProperty(externalReference, "file");
                mimeType = tika.detect(file);
            } else if (className
                    .equals("de.uni_luebeck.inb.knowarc.usecases.invocation.ssh.SshReference")) {
                String filename = (String) getProperty(externalReference,
                        "fileName");
                try (InputStream instream = externalReference
                        .openStream(context)) {
                    mimeType = tika.detect(instream, filename);
                }
            } else if (className
                    .equals("net.sf.taverna.t2.reference.impl.external.object.VMObjectReference")) {
                mimeType = "application/x-java-serialized-object";
            } else {
                try (InputStream instream = externalReference
                        .openStream(context)) {
                    mimeType = tika.detect(instream);
                }
            }
            if (mimeType != null && !mimeType.equals(APPLICATION_OCTET_STREAM)) {
                break;
            }
        }
        if (mimeType == null || mimeType.isEmpty()) {
            return APPLICATION_OCTET_STREAM;
        }
        return mimeType;
    }