From ed5640d8b587fbcfed7dd7967f3de04b37a76f26 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:06:44 +0200 Subject: Adding upstream version 4:7.4.7. Signed-off-by: Daniel Baumann --- .../com/sun/star/rdf/XDocumentMetadataAccess.idl | 397 +++++++++++++++++++++ 1 file changed, 397 insertions(+) create mode 100644 offapi/com/sun/star/rdf/XDocumentMetadataAccess.idl (limited to 'offapi/com/sun/star/rdf/XDocumentMetadataAccess.idl') diff --git a/offapi/com/sun/star/rdf/XDocumentMetadataAccess.idl b/offapi/com/sun/star/rdf/XDocumentMetadataAccess.idl new file mode 100644 index 000000000..b7d143555 --- /dev/null +++ b/offapi/com/sun/star/rdf/XDocumentMetadataAccess.idl @@ -0,0 +1,397 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_rdf_XDocumentMetadataAccess_idl__ +#define __com_sun_star_rdf_XDocumentMetadataAccess_idl__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +module com { module sun { module star { module rdf { + +/** document metadata functionality related to the "manifest.rdf". + +

+ This interface contains some methods that create connections between + the content and the RDF metadata of an ODF document. + The main idea is to make querying and manipulating the + data in the metadata manifest easier. +

+ +

+ Note that this interface inherits from XURI: the + base URI of the document is the string value of the RDF node. + This is so that you can easily make RDF statements about the document. +

+ + @since OOo 3.2 + + @see XDocumentRepository + */ +interface XDocumentMetadataAccess +{ + interface XURI; + interface XRepositorySupplier; + + /** get the unique ODF element with the given metadata reference. + + @param MetadataReference + a metadata reference, comprising the stream name and the XML ID + For example: Pair("content.xml", "foo-element-1") + + @returns + the ODF element with the given metadata references if it exists, + else `NULL` + */ + XMetadatable getElementByMetadataReference( + [in] com::sun::star::beans::StringPair MetadataReference); + + /** get the ODF element that corresponds to a URI. + + @param URI + a URI that may identify an ODF element + + @returns + the ODF element that corresponds to the given URI, or `NULL` + + @throws com::sun::star::lang::IllegalArgumentException + if the given URI is `NULL` + */ + XMetadatable getElementByURI([in] XURI URI) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** get the names of all metadata files with a given type. + + @param Type + the rdf:type property of the requested named graphs + + @returns + the names of all metadata graphs that have a rdf:type + property with the given Type as object + + @throws com::sun::star::lang::IllegalArgumentException + if the given Type is `NULL` + */ + sequence getMetadataGraphsWithType([in] XURI Type) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** add a metadata file to the manifest. + +

+ This convenience method does the following: +

    +
  • create a new graph with the given name in the repository
  • +
  • insert statements declaring the new graph to be a + metadata file into the manifest graph
  • +
  • insert statements declaring rdf:type properties + for the new graph into the manifest graph
  • +
+

+ + @param FileName + the name of the stream in the ODF storage where the graph will + be stored + + @param Types + a list of types that will be inserted as rdf:type + properties for the graph + + @returns + the name of the new graph + + @throws com::sun::star::lang::IllegalArgumentException + if the FileName is invalid + + @throws com::sun::star::container::ElementExistException + if a stream with the given FileName already exists + */ + XURI addMetadataFile([in] string FileName, + [in] sequence Types ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::ElementExistException ); + + /** import a metadata file into the document repository, and add it to the + manifest. + +

+ This convenience method does the following: +

    +
  1. import the given file into a graph with the given name + in the repository
  2. +
  3. insert statements declaring the new graph to be a + metadata file into the manifest graph
  4. +
  5. insert statements declaring rdf:type properties + for the new graph into the manifest graph
  6. +
+

+ + @param Format + the file format, see FileFormat + + @param InStream + the input stream + + @param FileName + the name of the stream in the ODF storage where the graph will + be stored + + @param BaseURI + a base URI to resolve relative URI references + + @param Types + a list of types that will be inserted as rdf:type + properties for the graph + + @returns + the name of the new graph + + @throws com::sun::star::lang::IllegalArgumentException + if the given stream is `NULL`, + or BaseURI is `NULL` and the format requires use of a base URI, + or the FileName is invalid + + @throws com::sun::star::datatransfer::UnsupportedFlavorException + if the format requested is unknown or not supported + + @throws com::sun::star::container::ElementExistException + if a stream with the given FileName already exists + + @throws ParseException + if the input does not conform to the specified file format. + + @throws com::sun::star::io::IOException + if an I/O error occurs. + + @see FileFormat + */ + XURI importMetadataFile( [in] /*FileFormat*/ short Format, + [in] com::sun::star::io::XInputStream InStream, + [in] string FileName, [in] XURI BaseURI, + [in] sequence Types ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::datatransfer::UnsupportedFlavorException, + com::sun::star::container::ElementExistException, + ParseException, + com::sun::star::io::IOException ); + + /** remove a metadata file from the manifest and the repository. + +

+ This convenience method does the following: +

    +
  1. delete the graph with the given GraphName in the repository
  2. +
  3. remove the statements declaring the graph to be a + metadata file from the manifest graph
  4. +
+

+ + @param GraphName + the name of the graph that is to be removed + + @throws com::sun::star::lang::IllegalArgumentException + if the given GraphName is `NULL` + + @throws com::sun::star::container::NoSuchElementException + if a graph with the given GraphName does not exist + */ + void removeMetadataFile([in] XURI GraphName) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::NoSuchElementException ); + + /** add a content or styles file to the manifest. + +

+ This convenience method adds the required statements declaring a + content or styles file to the manifest graph. +

    +
  • If the FileName ends in "content.xml", + an odf:ContentFile is added.
  • +
  • If the FileName ends in "styles.xml" , + an odf:StylesFile is added.
  • +
  • Other FileNames are invalid.
  • +
+

+ + @param FileName + the name of the stream in the ODF storage + + @throws com::sun::star::lang::IllegalArgumentException + if the FileName is invalid + + @throws com::sun::star::container::ElementExistException + if a stream with the given FileName already exists + */ + void addContentOrStylesFile([in] string FileName) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::ElementExistException ); + + /** remove a content or styles file from the manifest. + +

+ This convenience method removes the statements declaring a + content or styles file from the manifest graph. +

+ + @param FileName + the name of the stream in the ODF storage + + @throws com::sun::star::lang::IllegalArgumentException + if the FileName is invalid + + @throws com::sun::star::container::NoSuchElementException + if a graph with the given GraphName does not exist + */ + void removeContentOrStylesFile([in] string FileName) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::NoSuchElementException ); + + /** initialize document metadata from a storage. + +

+ This method re-initializes the document metadata, + loads the stream named "manifest.rdf" from the storage, and then + loads all metadata streams mentioned in the manifest. +

+ +

+ Note that it is not an error if the storage does not contain + a manifest. + In this case, the document metadata will be default initialized. +

+ +

+ If an InteractionHandler argument is given, it will be used for + error reporting. Otherwise, errors will be reported as exceptions. +

+ + @param Storage + a storage, representing e.g. an ODF package file, or sub-document + + @param BaseURI + a base URI to resolve relative URI references +

N.B.: when loading from an ODF package, the base URI is not the + URI of the package, but the URI of the directory in the package + that contains the metadata.rdf

+ + @param InteractionHandler + an InteractionHandler, used for error reporting + + @throws com::sun::star::lang::IllegalArgumentException + if any argument is `NULL` + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs while loading and no InteractionHandler given + */ + void loadMetadataFromStorage( + [in] com::sun::star::embed::XStorage Storage, + [in] XURI BaseURI, + [in] com::sun::star::task::XInteractionHandler InteractionHandler ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + + /** store document metadata to a storage. + +

+ This method stores all the graphs in the document metadata repository + to the given storage. +

+ +

+ Note that to be stored correctly, a named graph must have a complete + entry in the manifest graph. +

+ + @param Storage + a storage, representing e.g. an ODF package file, or sub-document + + @throws com::sun::star::lang::IllegalArgumentException + if Storage argument is `NULL` + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs while loading + */ + void storeMetadataToStorage( + [in] com::sun::star::embed::XStorage Storage ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + + /** loads document metadata from a medium. + +

If the Medium contains an InteractionHandler, it will be used for + error reporting.

+ + @param Medium + the com::sun::star::document::MediaDescriptor + representing the source + + @throws com::sun::star::lang::IllegalArgumentException + if the argument does not contain a URL or Stream property + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs while loading + + @see com::sun::star::document::MediaDescriptor + */ + void loadMetadataFromMedium( + [in] sequence < com::sun::star::beans::PropertyValue > Medium ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + + /** stores document metadata to a medium. + + @param Medium + the com::sun::star::document::MediaDescriptor + representing the target + + @throws com::sun::star::lang::IllegalArgumentException + if the argument does not contain a URL or Stream property + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs while storing + + @see com::sun::star::document::MediaDescriptor + */ + void storeMetadataToMedium( + [in] sequence < com::sun::star::beans::PropertyValue > Medium ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3