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;
}