1*cdf0e10cSrcweir/*************************************************************************
2*cdf0e10cSrcweir *
3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir *
5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir *
7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir *
9*cdf0e10cSrcweir * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir *
11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir *
15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir *
21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir *
26*cdf0e10cSrcweir ************************************************************************/
27*cdf0e10cSrcweir
28*cdf0e10cSrcweir#ifndef __com_sun_star_rdf_XDocumentMetadataAccess_idl__
29*cdf0e10cSrcweir#define __com_sun_star_rdf_XDocumentMetadataAccess_idl__
30*cdf0e10cSrcweir
31*cdf0e10cSrcweir#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
32*cdf0e10cSrcweir#include <com/sun/star/lang/IllegalArgumentException.idl>
33*cdf0e10cSrcweir#endif
34*cdf0e10cSrcweir
35*cdf0e10cSrcweir#ifndef __com_sun_star_lang_WrappedTargetException_idl__
36*cdf0e10cSrcweir#include <com/sun/star/lang/WrappedTargetException.idl>
37*cdf0e10cSrcweir#endif
38*cdf0e10cSrcweir
39*cdf0e10cSrcweir#ifndef __com_sun_star_beans_PropertyValue_idl__
40*cdf0e10cSrcweir#include <com/sun/star/beans/PropertyValue.idl>
41*cdf0e10cSrcweir#endif
42*cdf0e10cSrcweir
43*cdf0e10cSrcweir#ifndef __com_sun_star_container_ElementExistException_idl__
44*cdf0e10cSrcweir#include <com/sun/star/container/ElementExistException.idl>
45*cdf0e10cSrcweir#endif
46*cdf0e10cSrcweir
47*cdf0e10cSrcweir#ifndef __com_sun_star_container_NoSuchElementException_idl__
48*cdf0e10cSrcweir#include <com/sun/star/container/NoSuchElementException.idl>
49*cdf0e10cSrcweir#endif
50*cdf0e10cSrcweir
51*cdf0e10cSrcweir#ifndef __com_sun_star_io_IOException_idl__
52*cdf0e10cSrcweir#include <com/sun/star/io/IOException.idl>
53*cdf0e10cSrcweir#endif
54*cdf0e10cSrcweir
55*cdf0e10cSrcweir#ifndef __com_sun_star_io_XInputStream_idl__
56*cdf0e10cSrcweir#include <com/sun/star/io/XInputStream.idl>
57*cdf0e10cSrcweir#endif
58*cdf0e10cSrcweir
59*cdf0e10cSrcweir#ifndef __com_sun_star_datatransfer_UnsupportedFlavorException_idl__
60*cdf0e10cSrcweir#include <com/sun/star/datatransfer/UnsupportedFlavorException.idl>
61*cdf0e10cSrcweir#endif
62*cdf0e10cSrcweir
63*cdf0e10cSrcweir#ifndef __com_sun_star_embed_XStorage_idl__
64*cdf0e10cSrcweir#include <com/sun/star/embed/XStorage.idl>
65*cdf0e10cSrcweir#endif
66*cdf0e10cSrcweir
67*cdf0e10cSrcweir#ifndef __com_sun_star_task_XInteractionHandler_idl__
68*cdf0e10cSrcweir#include <com/sun/star/task/XInteractionHandler.idl>
69*cdf0e10cSrcweir#endif
70*cdf0e10cSrcweir
71*cdf0e10cSrcweir#ifndef __com_sun_star_rdf_FileFormat_idl__
72*cdf0e10cSrcweir#include <com/sun/star/rdf/FileFormat.idl>
73*cdf0e10cSrcweir#endif
74*cdf0e10cSrcweir
75*cdf0e10cSrcweir#ifndef __com_sun_star_rdf_ParseException_idl__
76*cdf0e10cSrcweir#include <com/sun/star/rdf/ParseException.idl>
77*cdf0e10cSrcweir#endif
78*cdf0e10cSrcweir
79*cdf0e10cSrcweir#ifndef __com_sun_star_rdf_XURI_idl__
80*cdf0e10cSrcweir#include <com/sun/star/rdf/XURI.idl>
81*cdf0e10cSrcweir#endif
82*cdf0e10cSrcweir
83*cdf0e10cSrcweir#ifndef __com_sun_star_rdf_XMetadatable_idl__
84*cdf0e10cSrcweir#include <com/sun/star/rdf/XMetadatable.idl>
85*cdf0e10cSrcweir#endif
86*cdf0e10cSrcweir
87*cdf0e10cSrcweir#ifndef __com_sun_star_rdf_XRepositorySupplier_idl__
88*cdf0e10cSrcweir#include <com/sun/star/rdf/XRepositorySupplier.idl>
89*cdf0e10cSrcweir#endif
90*cdf0e10cSrcweir
91*cdf0e10cSrcweir
92*cdf0e10cSrcweir//=============================================================================
93*cdf0e10cSrcweir
94*cdf0e10cSrcweirmodule com {   module sun {   module star {   module rdf {
95*cdf0e10cSrcweir
96*cdf0e10cSrcweir//=============================================================================
97*cdf0e10cSrcweir/** document metadata functionality related to the "manifest.rdf".
98*cdf0e10cSrcweir
99*cdf0e10cSrcweir    <p>
100*cdf0e10cSrcweir    This interface contains some methods that create connections between
101*cdf0e10cSrcweir    the content and the RDF metadata of an ODF document.
102*cdf0e10cSrcweir    The main idea is to make querying and manipulating the
103*cdf0e10cSrcweir    data in the metadata manifest easier.
104*cdf0e10cSrcweir    </p>
105*cdf0e10cSrcweir
106*cdf0e10cSrcweir    <p>
107*cdf0e10cSrcweir    Note that this interface inherits from <type>XURI</type>: the
108*cdf0e10cSrcweir    base URI of the document is the string value of the RDF node.
109*cdf0e10cSrcweir    This is so that you can easily make RDF statements about the document.
110*cdf0e10cSrcweir    </p>
111*cdf0e10cSrcweir
112*cdf0e10cSrcweir    @since OOo 3.2
113*cdf0e10cSrcweir
114*cdf0e10cSrcweir    @see XDocumentRepository
115*cdf0e10cSrcweir */
116*cdf0e10cSrcweirinterface XDocumentMetadataAccess
117*cdf0e10cSrcweir{
118*cdf0e10cSrcweir    interface XURI;
119*cdf0e10cSrcweir    interface XRepositorySupplier;
120*cdf0e10cSrcweir
121*cdf0e10cSrcweir    //-------------------------------------------------------------------------
122*cdf0e10cSrcweir    /** get the unique ODF element with the given metadata reference.
123*cdf0e10cSrcweir
124*cdf0e10cSrcweir        @param MetadataReference
125*cdf0e10cSrcweir            a metadata reference, comprising the stream name and the XML ID
126*cdf0e10cSrcweir            For example: Pair("content.xml", "foo-element-1")
127*cdf0e10cSrcweir
128*cdf0e10cSrcweir        @returns
129*cdf0e10cSrcweir            the ODF element with the given metadata references if it exists,
130*cdf0e10cSrcweir            else <NULL/>
131*cdf0e10cSrcweir     */
132*cdf0e10cSrcweir    XMetadatable getElementByMetadataReference(
133*cdf0e10cSrcweir        [in] com::sun::star::beans::StringPair MetadataReference);
134*cdf0e10cSrcweir
135*cdf0e10cSrcweir    //-------------------------------------------------------------------------
136*cdf0e10cSrcweir    /** get the ODF element that corresponds to an URI.
137*cdf0e10cSrcweir
138*cdf0e10cSrcweir        @param URI
139*cdf0e10cSrcweir            an URI that may identify an ODF element
140*cdf0e10cSrcweir
141*cdf0e10cSrcweir        @returns
142*cdf0e10cSrcweir            the ODF element that corresponds to the given URI, or <NULL/>
143*cdf0e10cSrcweir
144*cdf0e10cSrcweir        @throws com::sun::star::lang::IllegalArgumentException
145*cdf0e10cSrcweir            if the given URI is <NULL/>
146*cdf0e10cSrcweir     */
147*cdf0e10cSrcweir    XMetadatable getElementByURI([in] XURI URI)
148*cdf0e10cSrcweir        raises( com::sun::star::lang::IllegalArgumentException );
149*cdf0e10cSrcweir
150*cdf0e10cSrcweir    //-------------------------------------------------------------------------
151*cdf0e10cSrcweir    /** get the names of all metadata files with a given type.
152*cdf0e10cSrcweir
153*cdf0e10cSrcweir        @param Type
154*cdf0e10cSrcweir            the <code>rdf:type</code> property of the requested named graphs
155*cdf0e10cSrcweir
156*cdf0e10cSrcweir        @returns
157*cdf0e10cSrcweir            the names of all metadata graphs that have a <code>rdf:type</code>
158*cdf0e10cSrcweir            property with the given Type as object
159*cdf0e10cSrcweir
160*cdf0e10cSrcweir        @throws com::sun::star::lang::IllegalArgumentException
161*cdf0e10cSrcweir            if the given Type is <NULL/>
162*cdf0e10cSrcweir     */
163*cdf0e10cSrcweir    sequence<XURI> getMetadataGraphsWithType([in] XURI Type)
164*cdf0e10cSrcweir        raises( com::sun::star::lang::IllegalArgumentException );
165*cdf0e10cSrcweir
166*cdf0e10cSrcweir    //-------------------------------------------------------------------------
167*cdf0e10cSrcweir    /** add a metadata file to the manifest.
168*cdf0e10cSrcweir
169*cdf0e10cSrcweir        <p>
170*cdf0e10cSrcweir        This convenience method does the following:
171*cdf0e10cSrcweir        <ul>
172*cdf0e10cSrcweir        <li>create a new graph with the given name in the repository</li>
173*cdf0e10cSrcweir        <li>insert statements declaring the new graph to be a
174*cdf0e10cSrcweir            metadata file into the manifest graph</li>
175*cdf0e10cSrcweir        <li>insert statements declaring <code>rdf:type</code> properties
176*cdf0e10cSrcweir            for the new graph into the manifest graph</li>
177*cdf0e10cSrcweir        </ul>
178*cdf0e10cSrcweir        </p>
179*cdf0e10cSrcweir
180*cdf0e10cSrcweir        @param FileName
181*cdf0e10cSrcweir            the name of the stream in the ODF storage where the graph will
182*cdf0e10cSrcweir            be stored
183*cdf0e10cSrcweir
184*cdf0e10cSrcweir        @param Types
185*cdf0e10cSrcweir            a list of types that will be inserted as <code>rdf:type</code>
186*cdf0e10cSrcweir            properties for the graph
187*cdf0e10cSrcweir
188*cdf0e10cSrcweir        @returns
189*cdf0e10cSrcweir            the name of the new graph
190*cdf0e10cSrcweir
191*cdf0e10cSrcweir        @throws com::sun::star::lang::IllegalArgumentException
192*cdf0e10cSrcweir            if the FileName is invalid
193*cdf0e10cSrcweir
194*cdf0e10cSrcweir        @throws com::sun::star::container::ElementExistException
195*cdf0e10cSrcweir            if a stream with the given FileName already exists
196*cdf0e10cSrcweir     */
197*cdf0e10cSrcweir    XURI addMetadataFile([in] string FileName,
198*cdf0e10cSrcweir            [in] sequence<XURI> Types )
199*cdf0e10cSrcweir        raises( com::sun::star::lang::IllegalArgumentException,
200*cdf0e10cSrcweir                com::sun::star::container::ElementExistException );
201*cdf0e10cSrcweir
202*cdf0e10cSrcweir    //-------------------------------------------------------------------------
203*cdf0e10cSrcweir    /** import a metadata file into the document repository, and add it to the
204*cdf0e10cSrcweir        manifest.
205*cdf0e10cSrcweir
206*cdf0e10cSrcweir        <p>
207*cdf0e10cSrcweir        This convenience method does the following:
208*cdf0e10cSrcweir        <li>import the given file into a graph with the given name
209*cdf0e10cSrcweir            in the repository</li>
210*cdf0e10cSrcweir        <li>insert statements declaring the new graph to be a
211*cdf0e10cSrcweir            metadata file into the manifest graph</li>
212*cdf0e10cSrcweir        <li>insert statements declaring <code>rdf:type</code> properties
213*cdf0e10cSrcweir            for the new graph into the manifest graph</li>
214*cdf0e10cSrcweir        </p>
215*cdf0e10cSrcweir
216*cdf0e10cSrcweir        @param FileName
217*cdf0e10cSrcweir            the name of the stream in the ODF storage where the graph will
218*cdf0e10cSrcweir            be stored
219*cdf0e10cSrcweir
220*cdf0e10cSrcweir        @param BaseURI
221*cdf0e10cSrcweir            a base URI to resolve relative URI references
222*cdf0e10cSrcweir
223*cdf0e10cSrcweir        @param Types
224*cdf0e10cSrcweir            a list of types that will be inserted as <code>rdf:type</code>
225*cdf0e10cSrcweir            properties for the graph
226*cdf0e10cSrcweir
227*cdf0e10cSrcweir        @returns
228*cdf0e10cSrcweir            the name of the new graph
229*cdf0e10cSrcweir
230*cdf0e10cSrcweir        @throws com::sun::star::lang::IllegalArgumentException
231*cdf0e10cSrcweir            if the given stream is <NULL/>,
232*cdf0e10cSrcweir            or BaseURI is <NULL/> and the format requires use of a base URI,
233*cdf0e10cSrcweir            or the FileName is invalid
234*cdf0e10cSrcweir
235*cdf0e10cSrcweir        @throws com::sun::star::datatransfer::UnsupportedFlavorException
236*cdf0e10cSrcweir            if the format requested is unknown or not supported
237*cdf0e10cSrcweir
238*cdf0e10cSrcweir        @throws com::sun::star::container::ElementExistException
239*cdf0e10cSrcweir            if a stream with the given FileName already exists
240*cdf0e10cSrcweir
241*cdf0e10cSrcweir        @throws ParseException
242*cdf0e10cSrcweir            if the input does not conform to the specified file format.
243*cdf0e10cSrcweir
244*cdf0e10cSrcweir        @throws com::sun::star::io::IOException
245*cdf0e10cSrcweir            if an I/O error occurs.
246*cdf0e10cSrcweir
247*cdf0e10cSrcweir        @see FileFormat
248*cdf0e10cSrcweir     */
249*cdf0e10cSrcweir    XURI importMetadataFile( [in] /*FileFormat*/ short Format,
250*cdf0e10cSrcweir            [in] com::sun::star::io::XInputStream InStream,
251*cdf0e10cSrcweir            [in] string FileName, [in] XURI BaseURI,
252*cdf0e10cSrcweir            [in] sequence<XURI> Types )
253*cdf0e10cSrcweir        raises( com::sun::star::lang::IllegalArgumentException,
254*cdf0e10cSrcweir                com::sun::star::datatransfer::UnsupportedFlavorException,
255*cdf0e10cSrcweir                com::sun::star::container::ElementExistException,
256*cdf0e10cSrcweir                ParseException,
257*cdf0e10cSrcweir                com::sun::star::io::IOException );
258*cdf0e10cSrcweir
259*cdf0e10cSrcweir    //-------------------------------------------------------------------------
260*cdf0e10cSrcweir    /** remove a metadata file from the manifest and the repository.
261*cdf0e10cSrcweir
262*cdf0e10cSrcweir        <p>
263*cdf0e10cSrcweir        This convenience method does the following:
264*cdf0e10cSrcweir        <li>delete the graph with the given GraphName in the repository</li>
265*cdf0e10cSrcweir        <li>remove the statements declaring the graph to be a
266*cdf0e10cSrcweir            metadata file from the manifest graph</li>
267*cdf0e10cSrcweir        </p>
268*cdf0e10cSrcweir
269*cdf0e10cSrcweir        @param GraphName
270*cdf0e10cSrcweir            the name of the graph that is to be removed
271*cdf0e10cSrcweir
272*cdf0e10cSrcweir        @throws com::sun::star::lang::IllegalArgumentException
273*cdf0e10cSrcweir            if the given GraphName is <NULL/>
274*cdf0e10cSrcweir
275*cdf0e10cSrcweir        @throws com::sun::star::container::NoSuchElementException
276*cdf0e10cSrcweir            if a graph with the given GraphName does not exist
277*cdf0e10cSrcweir     */
278*cdf0e10cSrcweir    void removeMetadataFile([in] XURI GraphName)
279*cdf0e10cSrcweir        raises( com::sun::star::lang::IllegalArgumentException,
280*cdf0e10cSrcweir                com::sun::star::container::NoSuchElementException );
281*cdf0e10cSrcweir
282*cdf0e10cSrcweir    //-------------------------------------------------------------------------
283*cdf0e10cSrcweir    /** add a content or styles file to the manifest.
284*cdf0e10cSrcweir
285*cdf0e10cSrcweir        <p>
286*cdf0e10cSrcweir        This convenience method adds the required statements declaring a
287*cdf0e10cSrcweir        content or styles file to the manifest graph.
288*cdf0e10cSrcweir        <ul>
289*cdf0e10cSrcweir        <li>If the FileName ends in "content.xml",
290*cdf0e10cSrcweir            an <code>odf:ContentFile</code> is added.</li>
291*cdf0e10cSrcweir        <li>If the FileName ends in "styles.xml" ,
292*cdf0e10cSrcweir            an <code>odf:StylesFile</code>  is added.</li>
293*cdf0e10cSrcweir        <li>Other FileNames are invalid.</li>
294*cdf0e10cSrcweir        </ul>
295*cdf0e10cSrcweir        </p>
296*cdf0e10cSrcweir
297*cdf0e10cSrcweir        @param FileName
298*cdf0e10cSrcweir            the name of the stream in the ODF storage
299*cdf0e10cSrcweir
300*cdf0e10cSrcweir        @throws com::sun::star::lang::IllegalArgumentException
301*cdf0e10cSrcweir            if the FileName is invalid
302*cdf0e10cSrcweir
303*cdf0e10cSrcweir        @throws com::sun::star::container::ElementExistException
304*cdf0e10cSrcweir            if a stream with the given FileName already exists
305*cdf0e10cSrcweir     */
306*cdf0e10cSrcweir    void addContentOrStylesFile([in] string FileName)
307*cdf0e10cSrcweir        raises( com::sun::star::lang::IllegalArgumentException,
308*cdf0e10cSrcweir                com::sun::star::container::ElementExistException );
309*cdf0e10cSrcweir
310*cdf0e10cSrcweir    //-------------------------------------------------------------------------
311*cdf0e10cSrcweir    /** remove a content or styles file from the manifest.
312*cdf0e10cSrcweir
313*cdf0e10cSrcweir        <p>
314*cdf0e10cSrcweir        This convenience method removes the statements declaring a
315*cdf0e10cSrcweir        content or styles file from the manifest graph.
316*cdf0e10cSrcweir        </p>
317*cdf0e10cSrcweir
318*cdf0e10cSrcweir        @param FileName
319*cdf0e10cSrcweir            the name of the stream in the ODF storage
320*cdf0e10cSrcweir
321*cdf0e10cSrcweir        @throws com::sun::star::lang::IllegalArgumentException
322*cdf0e10cSrcweir            if the FileName is invalid
323*cdf0e10cSrcweir
324*cdf0e10cSrcweir        @throws com::sun::star::container::NoSuchElementException
325*cdf0e10cSrcweir            if a graph with the given GraphName does not exist
326*cdf0e10cSrcweir     */
327*cdf0e10cSrcweir    void removeContentOrStylesFile([in] string FileName)
328*cdf0e10cSrcweir        raises( com::sun::star::lang::IllegalArgumentException,
329*cdf0e10cSrcweir                com::sun::star::container::NoSuchElementException );
330*cdf0e10cSrcweir
331*cdf0e10cSrcweir    //-------------------------------------------------------------------------
332*cdf0e10cSrcweir    /** initialize document metadata from a storage.
333*cdf0e10cSrcweir
334*cdf0e10cSrcweir        <p>
335*cdf0e10cSrcweir        This method re-initializes the document metadata,
336*cdf0e10cSrcweir        loads the stream named "manifest.rdf" from the storage, and then
337*cdf0e10cSrcweir        loads all metadata streams mentioned in the manifest.
338*cdf0e10cSrcweir        </p>
339*cdf0e10cSrcweir
340*cdf0e10cSrcweir        <p>
341*cdf0e10cSrcweir        Note that it is not an error if the storage does not contain
342*cdf0e10cSrcweir        a manifest.
343*cdf0e10cSrcweir        In this case, the document metadata will be default initialized.
344*cdf0e10cSrcweir        </p>
345*cdf0e10cSrcweir
346*cdf0e10cSrcweir        <p>
347*cdf0e10cSrcweir        If an InteractionHandler argument is given, it will be used for
348*cdf0e10cSrcweir        error reporting. Otherwise, errors will be reported as exceptions.
349*cdf0e10cSrcweir        </p>
350*cdf0e10cSrcweir
351*cdf0e10cSrcweir        @param Storage
352*cdf0e10cSrcweir            a storage, representing e.g. an ODF package file, or sub-document
353*cdf0e10cSrcweir
354*cdf0e10cSrcweir        @param BaseURI
355*cdf0e10cSrcweir            a base URI to resolve relative URI references
356*cdf0e10cSrcweir            <p>N.B.: when loading from an ODF package, the base URI is not the
357*cdf0e10cSrcweir               URI of the package, but the URI of the directory in the package
358*cdf0e10cSrcweir               that contains the metadata.rdf</p>
359*cdf0e10cSrcweir
360*cdf0e10cSrcweir        @param InteractionHandler
361*cdf0e10cSrcweir            an InteractionHandler, used for error reporting
362*cdf0e10cSrcweir
363*cdf0e10cSrcweir        @throws com::sun::star::lang::IllegalArgumentException
364*cdf0e10cSrcweir            if any argument is <NULL/>
365*cdf0e10cSrcweir
366*cdf0e10cSrcweir        @throws com::sun::star::lang::WrappedTargetException
367*cdf0e10cSrcweir            if an error occurs while loading and no InteractionHandler given
368*cdf0e10cSrcweir     */
369*cdf0e10cSrcweir    void loadMetadataFromStorage(
370*cdf0e10cSrcweir            [in] com::sun::star::embed::XStorage Storage,
371*cdf0e10cSrcweir            [in] XURI BaseURI,
372*cdf0e10cSrcweir            [in] com::sun::star::task::XInteractionHandler InteractionHandler )
373*cdf0e10cSrcweir        raises( com::sun::star::lang::IllegalArgumentException,
374*cdf0e10cSrcweir                com::sun::star::lang::WrappedTargetException );
375*cdf0e10cSrcweir
376*cdf0e10cSrcweir    //-------------------------------------------------------------------------
377*cdf0e10cSrcweir    /** store document metadata to a storage.
378*cdf0e10cSrcweir
379*cdf0e10cSrcweir        <p>
380*cdf0e10cSrcweir        This method stores all the graphs in the document metadata repository
381*cdf0e10cSrcweir        to the given storage.
382*cdf0e10cSrcweir        </p>
383*cdf0e10cSrcweir
384*cdf0e10cSrcweir        <p>
385*cdf0e10cSrcweir        Note that to be stored correctly, a named graph must have a complete
386*cdf0e10cSrcweir        entry in the manifest graph.
387*cdf0e10cSrcweir        </p>
388*cdf0e10cSrcweir
389*cdf0e10cSrcweir        @param Storage
390*cdf0e10cSrcweir            a storage, representing e.g. an ODF package file, or sub-document
391*cdf0e10cSrcweir
392*cdf0e10cSrcweir        @throws com::sun::star::lang::IllegalArgumentException
393*cdf0e10cSrcweir            if Storage argument is <NULL/>
394*cdf0e10cSrcweir
395*cdf0e10cSrcweir        @throws com::sun::star::lang::WrappedTargetException
396*cdf0e10cSrcweir            if an error occurs while loading
397*cdf0e10cSrcweir     */
398*cdf0e10cSrcweir    void storeMetadataToStorage(
399*cdf0e10cSrcweir            [in] com::sun::star::embed::XStorage Storage )
400*cdf0e10cSrcweir        raises( com::sun::star::lang::IllegalArgumentException,
401*cdf0e10cSrcweir                com::sun::star::lang::WrappedTargetException );
402*cdf0e10cSrcweir
403*cdf0e10cSrcweir    //-------------------------------------------------------------------------
404*cdf0e10cSrcweir    /** loads document metadata from a medium.
405*cdf0e10cSrcweir
406*cdf0e10cSrcweir        <p>If the Medium contains an InteractionHandler, it will be used for
407*cdf0e10cSrcweir        error reporting.</p>
408*cdf0e10cSrcweir
409*cdf0e10cSrcweir        @param Medium
410*cdf0e10cSrcweir            the <type>com::sun::star::document::MediaDescriptor</type>
411*cdf0e10cSrcweir            representing the source
412*cdf0e10cSrcweir
413*cdf0e10cSrcweir        @throws com::sun::star::lang::IllegalArgumentException
414*cdf0e10cSrcweir            if the argument does not contain a URL or Stream property
415*cdf0e10cSrcweir
416*cdf0e10cSrcweir        @throws com::sun::star::lang::WrappedTargetException
417*cdf0e10cSrcweir            if an error occurs while loading
418*cdf0e10cSrcweir
419*cdf0e10cSrcweir        @see com::sun::star::document::MediaDescriptor
420*cdf0e10cSrcweir     */
421*cdf0e10cSrcweir    void loadMetadataFromMedium(
422*cdf0e10cSrcweir            [in] sequence < com::sun::star::beans::PropertyValue > Medium )
423*cdf0e10cSrcweir        raises( com::sun::star::lang::IllegalArgumentException,
424*cdf0e10cSrcweir                com::sun::star::lang::WrappedTargetException );
425*cdf0e10cSrcweir
426*cdf0e10cSrcweir    //-------------------------------------------------------------------------
427*cdf0e10cSrcweir    /** stores document metadata to a medium.
428*cdf0e10cSrcweir
429*cdf0e10cSrcweir        @param Medium
430*cdf0e10cSrcweir            the <type>com::sun::star::document::MediaDescriptor</type>
431*cdf0e10cSrcweir            representing the target
432*cdf0e10cSrcweir
433*cdf0e10cSrcweir        @throws com::sun::star::lang::IllegalArgumentException
434*cdf0e10cSrcweir            if the argument does not contain a URL or Stream property
435*cdf0e10cSrcweir
436*cdf0e10cSrcweir        @throws com::sun::star::lang::WrappedTargetException
437*cdf0e10cSrcweir            if an error occurs while storing
438*cdf0e10cSrcweir
439*cdf0e10cSrcweir        @see com::sun::star::document::MediaDescriptor
440*cdf0e10cSrcweir     */
441*cdf0e10cSrcweir    void storeMetadataToMedium(
442*cdf0e10cSrcweir            [in] sequence < com::sun::star::beans::PropertyValue > Medium )
443*cdf0e10cSrcweir        raises( com::sun::star::lang::IllegalArgumentException,
444*cdf0e10cSrcweir                com::sun::star::lang::WrappedTargetException );
445*cdf0e10cSrcweir
446*cdf0e10cSrcweir};
447*cdf0e10cSrcweir
448*cdf0e10cSrcweir//=============================================================================
449*cdf0e10cSrcweir
450*cdf0e10cSrcweir}; }; }; };
451*cdf0e10cSrcweir
452*cdf0e10cSrcweir#endif
453