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