Package org.openprovenance.prov.interop
Class InteropFramework
java.lang.Object
org.openprovenance.prov.interop.InteropFramework
- All Implemented Interfaces:
org.openprovenance.prov.interop.Framework,org.openprovenance.prov.interop.InteropMediaType,org.openprovenance.prov.model.ProvDocumentWriter
public class InteropFramework
extends Object
implements org.openprovenance.prov.interop.InteropMediaType, org.openprovenance.prov.model.ProvDocumentWriter, org.openprovenance.prov.interop.Framework
The interoperability framework for PROV, with utility methods to write and read documents to files and streams,
according to media types, format (specified as
Formats.ProvFormat). The class also provides helper functions to support content
negotiation.- Author:
- lavm, dtm
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final org.openprovenance.prov.model.ProvFactorystatic final Stringstatic final StringFields inherited from interface org.openprovenance.prov.interop.InteropMediaType
ALL_PROV_INPUT_MEDIA_TYPES, ALL_PROV_OUTPUT_MEDIA_TYPES, EXTENSION_DOT, EXTENSION_JPEG, EXTENSION_JPG, EXTENSION_JSON, EXTENSION_JSONLD, EXTENSION_PDF, EXTENSION_PNG, EXTENSION_PROVN, EXTENSION_PROVX, EXTENSION_RDF, EXTENSION_SVG, EXTENSION_TRIG, EXTENSION_TTL, EXTENSION_XML, MEDIA_APPLICATION_FORM_URLENCODED, MEDIA_APPLICATION_JSON, MEDIA_APPLICATION_JSONLD, MEDIA_APPLICATION_PDF, MEDIA_APPLICATION_PROVENANCE_XML, MEDIA_APPLICATION_RDF_XML, MEDIA_APPLICATION_SQL, MEDIA_APPLICATION_TRIG, MEDIA_APPLICATION_XML, MEDIA_IMAGE_JPEG, MEDIA_IMAGE_PNG, MEDIA_IMAGE_SVG_XML, MEDIA_TEXT_CSV, MEDIA_TEXT_HTML, MEDIA_TEXT_PLAIN, MEDIA_TEXT_PROVENANCE_NOTATION, MEDIA_TEXT_TURTLE, MEDIA_TEXT_VND_GRAPHVIZ, MEDIA_TEXT_XML -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor for the ProvToolbox interoperability framework.InteropFramework(CommandLineArguments config, org.openprovenance.prov.model.ProvFactory pFactory) InteropFramework(org.openprovenance.prov.model.ProvFactory pFactory) -
Method Summary
Modifier and TypeMethodDescriptionCreate a list of mime types supported by ProvToolbox in view of constructing an Accept Header.connectWithRedirect(URL theURL) A method to connect to a URL and follow redirects if any.convertExtensionToMediaType(String extension) Maps an file extension to a Media typestatic org.openprovenance.prov.model.ProvFactoryMap<org.openprovenance.prov.interop.Formats.ProvFormat, DeserializerFunction> Map<org.openprovenance.prov.interop.Formats.ProvFormat, DeserializerFunction2> getExtension(org.openprovenance.prov.interop.Formats.ProvFormat format) Returns an extension for a given type of serialization of PROVorg.openprovenance.prov.model.ProvFactoryorg.openprovenance.prov.interop.Formats.ProvFormatgetTypeForFile(String filename) Get aFormats.ProvFormatgiven the file's exetensionorg.openprovenance.prov.interop.Formats.ProvFormatgetTypeForFormat(String format) Get aFormats.ProvFormatgiven a format stringList<jakarta.ws.rs.core.Variant> Support for content negotiation, jax-rs style.voidinitializeExtensionMap(Hashtable<org.openprovenance.prov.interop.Formats.ProvFormat, String> extensionMap, Hashtable<String, org.openprovenance.prov.interop.Formats.ProvFormat> extensionRevMap) Initialization functionisInputFormat(org.openprovenance.prov.interop.Formats.ProvFormat format) Determines whether this format received as argument is an input format.isOutputFormat(org.openprovenance.prov.interop.Formats.ProvFormat format) Determines whether this format received as argument is an output format.org.openprovenance.prov.model.DocumentreadDocument(InputStream is, org.openprovenance.prov.interop.Formats.ProvFormat format) Reads a document from an input stream, using the specified format.org.openprovenance.prov.model.DocumentreadDocument(InputStream is, org.openprovenance.prov.interop.Formats.ProvFormat format, org.openprovenance.prov.model.DateTimeOption dateTimeOption, TimeZone timeZone) Reads a document from an input stream, using the specified format.org.openprovenance.prov.model.DocumentreadDocumentFromFile(String filename) Reads a document from a file, using the file extension to decide which parser to read the file with.org.openprovenance.prov.model.DocumentreadDocumentFromFile(String filename, org.openprovenance.prov.model.DateTimeOption dateTimeOption, TimeZone timeZone) Reads a document from a file, using the filename extension as an indicator of the serialization type.org.openprovenance.prov.model.DocumentreadDocumentFromFileWithUnknownType(String filename) Read a document without knowing its serialization format.org.openprovenance.prov.model.DocumentreadDocumentFromFileWithUnknownType(String filename, org.openprovenance.prov.model.DateTimeOption dateTimeOption, TimeZone timeZone) Read a document without knowing its serialization format.org.openprovenance.prov.model.DocumentReads a document from a URL.intrun()Top level entry point of this class, when called from the command line.voidsetMaxStringLength(Integer maxStringLength) voidwriteDocument(OutputStream out, org.openprovenance.prov.model.Document document, String mediaType, boolean formatted) voidwriteDocument(OutputStream os, org.openprovenance.prov.model.Document document, org.openprovenance.prov.interop.Formats.ProvFormat format) Write aDocumentto output stream, according to specifiedFormats.ProvFormatvoidwriteDocument(String filename, org.openprovenance.prov.model.Document document) Write aDocumentto file, serialized according to the file extension.voidwriteDocument(String filename, org.openprovenance.prov.model.Document document, org.openprovenance.prov.interop.Formats.ProvFormat format) Write aDocumentto file, serialized according to formatFormats.ProvFormat
-
Field Details
-
configFile
- See Also:
-
configuration
-
factoryClass
-
defaultFactory
public static final org.openprovenance.prov.model.ProvFactory defaultFactory -
UNKNOWN
- See Also:
-
extensionRevMap
-
mimeTypeRevMap
-
-
Constructor Details
-
InteropFramework
public InteropFramework()Default constructor for the ProvToolbox interoperability framework. It uses the factory declared in the configuration file as its default factory. -
InteropFramework
public InteropFramework(org.openprovenance.prov.model.ProvFactory pFactory) -
InteropFramework
public InteropFramework(CommandLineArguments config, org.openprovenance.prov.model.ProvFactory pFactory)
-
-
Method Details
-
getDefaultFactory
public static org.openprovenance.prov.model.ProvFactory getDefaultFactory() -
getFactory
public org.openprovenance.prov.model.ProvFactory getFactory()- Specified by:
getFactoryin interfaceorg.openprovenance.prov.interop.Framework
-
getConfig
-
buildAcceptHeader
Create a list of mime types supported by ProvToolbox in view of constructing an Accept Header.- Returns:
- a string representing the mime types.
-
connectWithRedirect
A method to connect to a URL and follow redirects if any.- Parameters:
theURL- a URL to connect to- Returns:
- a
URLConnection - Throws:
IOException- if connection cannot be opened and no response is received.
-
convertExtensionToMediaType
-
getExtension
Returns an extension for a given type of serialization of PROV- Parameters:
format-Formats.ProvFormatfor which file extension is sought- Returns:
- a String for the extension of a file containing such a serialization
-
getTypeForFile
Get aFormats.ProvFormatgiven the file's exetension- Parameters:
filename- the file for which theFormats.ProvFormatis sought- Returns:
- a
Formats.ProvFormat
-
getTypeForFormat
Get aFormats.ProvFormatgiven a format string- Parameters:
format- the format for which theFormats.ProvFormatis sought- Returns:
- a
Formats.ProvFormat
-
getVariants
Support for content negotiation, jax-rs style. Create a list of media type supported by the framework.- Returns:
- a list of
Variant - See Also:
-
initializeExtensionMap
public void initializeExtensionMap(Hashtable<org.openprovenance.prov.interop.Formats.ProvFormat, String> extensionMap, Hashtable<String, org.openprovenance.prov.interop.Formats.ProvFormat> extensionRevMap) Initialization function- Parameters:
extensionMap- mapping ofFormats.ProvFormatto extensionsextensionRevMap- reverse mapping of extensions toFormats.ProvFormat
-
isInputFormat
Determines whether this format received as argument is an input format.- Parameters:
format- aFormats.ProvFormat- Returns:
- true if format is an input format
-
isOutputFormat
Determines whether this format received as argument is an output format.- Parameters:
format- aFormats.ProvFormat- Returns:
- true if format is an output format
-
getSupportedFormats
-
run
public int run()Top level entry point of this class, when called from the command line.See method
CommandLineArguments.main(String[])- Returns:
- an exit code
-
setMaxStringLength
-
writeDocument
Write aDocumentto file, serialized according to the file extension. If extension is not known, throws an exception.- Parameters:
filename- path of the file to write the Document todocument- aDocumentto serialize- Throws:
InteropException- if the extension of the file is not known
-
writeDocument
public void writeDocument(String filename, org.openprovenance.prov.model.Document document, org.openprovenance.prov.interop.Formats.ProvFormat format) Write aDocumentto file, serialized according to formatFormats.ProvFormat- Parameters:
filename- path of the file to write the Document todocument- aDocumentto serializeformat- aFormats.ProvFormatto serialize the document to
-
writeDocument
public void writeDocument(OutputStream os, org.openprovenance.prov.model.Document document, org.openprovenance.prov.interop.Formats.ProvFormat format) Write aDocumentto output stream, according to specifiedFormats.ProvFormat- Specified by:
writeDocumentin interfaceorg.openprovenance.prov.interop.Framework- Parameters:
os- anOutputStreamto write the Document todocument- aDocumentto serializeformat- aFormats.ProvFormat
-
writeDocument
public void writeDocument(OutputStream out, org.openprovenance.prov.model.Document document, String mediaType, boolean formatted) - Specified by:
writeDocumentin interfaceorg.openprovenance.prov.model.ProvDocumentWriter
-
mediaTypes
- Specified by:
mediaTypesin interfaceorg.openprovenance.prov.model.ProvDocumentWriter
-
getExtensionMap
-
getMimeTypeMap
-
getMimeTypeRevMap
-
getDeserializerMap
public Map<org.openprovenance.prov.interop.Formats.ProvFormat,DeserializerFunction> getDeserializerMap() -
getDeserializerMap2
public Map<org.openprovenance.prov.interop.Formats.ProvFormat,DeserializerFunction2> getDeserializerMap2() -
readDocument
public org.openprovenance.prov.model.Document readDocument(InputStream is, org.openprovenance.prov.interop.Formats.ProvFormat format) throws IOException Reads a document from an input stream, using the specified format. Uses configuration's dateTimeOption and timeZone.- Parameters:
is- anInputStreamformat- aFormats.ProvFormat- Returns:
- a
Document - Throws:
IOException- if the input stream cannot be read
-
readDocument
public org.openprovenance.prov.model.Document readDocument(InputStream is, org.openprovenance.prov.interop.Formats.ProvFormat format, org.openprovenance.prov.model.DateTimeOption dateTimeOption, TimeZone timeZone) throws IOException Reads a document from an input stream, using the specified format.- Parameters:
is- anInputStreamformat- aFormats.ProvFormatdateTimeOption- aDateTimeOptiontimeZone- aTimeZone- Returns:
- a
Document - Throws:
IOException- if the input stream cannot be read
-
readDocumentFromFile
public org.openprovenance.prov.model.Document readDocumentFromFile(String filename, org.openprovenance.prov.model.DateTimeOption dateTimeOption, TimeZone timeZone) Reads a document from a file, using the filename extension as an indicator of the serialization type.- Parameters:
filename- a file to load the provenance document fromdateTimeOption- aDateTimeOptiontimeZone- aTimeZone- Returns:
- a
Document - Throws:
InteropException- if the file extension is not known or file cannot be read
-
readDocumentFromFileWithUnknownType
Read a document without knowing its serialization format. First parser that succeeds returns a result.- Parameters:
filename- a file to load the provenance document from- Returns:
- a
Document
-
readDocumentFromFileWithUnknownType
public org.openprovenance.prov.model.Document readDocumentFromFileWithUnknownType(String filename, org.openprovenance.prov.model.DateTimeOption dateTimeOption, TimeZone timeZone) Read a document without knowing its serialization format. First parser that succeeds returns a result.- Parameters:
filename- a file to load the provenance document fromdateTimeOption- aDateTimeOptiontimeZone- aTimeZone- Returns:
- a
Document
-
readDocumentFromURL
Reads a document from a URL. Uses the Content-type header field to determine the mime-type of the resource, and therefore the parser to read the document.- Parameters:
url- a URL- Returns:
- a Document
-
readDocumentFromFile
Reads a document from a file, using the file extension to decide which parser to read the file with.- Parameters:
filename- the file to read a document from- Returns:
- a Document
-