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_XNamedGraph_idl__ 25*b1cdbd2cSJim Jagielski#define __com_sun_star_rdf_XNamedGraph_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_container_NoSuchElementException_idl__ 32*b1cdbd2cSJim Jagielski#include <com/sun/star/container/NoSuchElementException.idl> 33*b1cdbd2cSJim Jagielski#endif 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_container_XEnumeration_idl__ 36*b1cdbd2cSJim Jagielski#include <com/sun/star/container/XEnumeration.idl> 37*b1cdbd2cSJim Jagielski#endif 38*b1cdbd2cSJim Jagielski 39*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_rdf_RepositoryException_idl__ 40*b1cdbd2cSJim Jagielski#include <com/sun/star/rdf/RepositoryException.idl> 41*b1cdbd2cSJim Jagielski#endif 42*b1cdbd2cSJim Jagielski 43*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_rdf_XURI_idl__ 44*b1cdbd2cSJim Jagielski#include <com/sun/star/rdf/XURI.idl> 45*b1cdbd2cSJim Jagielski#endif 46*b1cdbd2cSJim Jagielski 47*b1cdbd2cSJim Jagielski 48*b1cdbd2cSJim Jagielski//============================================================================= 49*b1cdbd2cSJim Jagielski 50*b1cdbd2cSJim Jagielskimodule com { module sun { module star { module rdf { 51*b1cdbd2cSJim Jagielski 52*b1cdbd2cSJim Jagielski//============================================================================= 53*b1cdbd2cSJim Jagielski/** represents an RDF named graph that is stored in an RDF Repository. 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski <p> 56*b1cdbd2cSJim Jagielski Note that this interface inherits from <type>XResource</type>: the 57*b1cdbd2cSJim Jagielski name of the graph is the string value of the RDF node. 58*b1cdbd2cSJim Jagielski This is so that you can easily make RDF statements about named graphs. 59*b1cdbd2cSJim Jagielski </p> 60*b1cdbd2cSJim Jagielski 61*b1cdbd2cSJim Jagielski <p> 62*b1cdbd2cSJim Jagielski Note that instances may be destroyed via 63*b1cdbd2cSJim Jagielski <member>XRepository::destroyGraph</member>. 64*b1cdbd2cSJim Jagielski If a graph is destroyed, subsequent calls to <member>addStatement</member>, 65*b1cdbd2cSJim Jagielski <member>removeStatements</member> will fail with an 66*b1cdbd2cSJim Jagielski <type scope="com::sun::star::container">NoSuchElementException</type>. 67*b1cdbd2cSJim Jagielski </p> 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim Jagielski @since OpenOffice 3.2 70*b1cdbd2cSJim Jagielski 71*b1cdbd2cSJim Jagielski @see XRepository 72*b1cdbd2cSJim Jagielski */ 73*b1cdbd2cSJim Jagielskiinterface XNamedGraph : XURI 74*b1cdbd2cSJim Jagielski{ 75*b1cdbd2cSJim Jagielski 76*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 77*b1cdbd2cSJim Jagielski /** returns the name of the graph. 78*b1cdbd2cSJim Jagielski 79*b1cdbd2cSJim Jagielski <p> 80*b1cdbd2cSJim Jagielski The name is unique within the repository. 81*b1cdbd2cSJim Jagielski </p> 82*b1cdbd2cSJim Jagielski 83*b1cdbd2cSJim Jagielski @returns 84*b1cdbd2cSJim Jagielski the name of the graph 85*b1cdbd2cSJim Jagielski */ 86*b1cdbd2cSJim Jagielski XURI getName(); 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 89*b1cdbd2cSJim Jagielski /** removes all statements from the graph. 90*b1cdbd2cSJim Jagielski 91*b1cdbd2cSJim Jagielski @throws com::sun::star::container::NoSuchElementException 92*b1cdbd2cSJim Jagielski if this graph does not exist in the repository any more 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski @throws RepositoryException 95*b1cdbd2cSJim Jagielski if an error occurs when accessing the repository. 96*b1cdbd2cSJim Jagielski */ 97*b1cdbd2cSJim Jagielski void clear() 98*b1cdbd2cSJim Jagielski raises( com::sun::star::container::NoSuchElementException, 99*b1cdbd2cSJim Jagielski RepositoryException ); 100*b1cdbd2cSJim Jagielski 101*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 102*b1cdbd2cSJim Jagielski /** adds a RDF statement to the graph. 103*b1cdbd2cSJim Jagielski 104*b1cdbd2cSJim Jagielski <p> 105*b1cdbd2cSJim Jagielski Note that the ODF elements that can have metadata attached all 106*b1cdbd2cSJim Jagielski implement the interface <type>XMetadatable</type>, which inherits 107*b1cdbd2cSJim Jagielski from <type>XResource</type>, meaning that you can simply pass them 108*b1cdbd2cSJim Jagielski in as arguments here, and it will magically work. 109*b1cdbd2cSJim Jagielski </p> 110*b1cdbd2cSJim Jagielski 111*b1cdbd2cSJim Jagielski @param Subject 112*b1cdbd2cSJim Jagielski the subject of the RDF triple. 113*b1cdbd2cSJim Jagielski 114*b1cdbd2cSJim Jagielski @param Predicate 115*b1cdbd2cSJim Jagielski the predicate of the RDF triple. 116*b1cdbd2cSJim Jagielski 117*b1cdbd2cSJim Jagielski @param Object 118*b1cdbd2cSJim Jagielski the object of the RDF triple. 119*b1cdbd2cSJim Jagielski 120*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::IllegalArgumentException 121*b1cdbd2cSJim Jagielski if any parameter is <NULL/> 122*b1cdbd2cSJim Jagielski 123*b1cdbd2cSJim Jagielski @throws com::sun::star::container::NoSuchElementException 124*b1cdbd2cSJim Jagielski if this graph does not exist in the repository any more 125*b1cdbd2cSJim Jagielski 126*b1cdbd2cSJim Jagielski @throws RepositoryException 127*b1cdbd2cSJim Jagielski if an error occurs when accessing the repository. 128*b1cdbd2cSJim Jagielski */ 129*b1cdbd2cSJim Jagielski void addStatement([in] XResource Subject, 130*b1cdbd2cSJim Jagielski [in] XURI Predicate, 131*b1cdbd2cSJim Jagielski [in] XNode Object) 132*b1cdbd2cSJim Jagielski raises( com::sun::star::lang::IllegalArgumentException, 133*b1cdbd2cSJim Jagielski com::sun::star::container::NoSuchElementException, 134*b1cdbd2cSJim Jagielski RepositoryException ); 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 137*b1cdbd2cSJim Jagielski /** removes matching RDF statements from the graph. 138*b1cdbd2cSJim Jagielski 139*b1cdbd2cSJim Jagielski <p> 140*b1cdbd2cSJim Jagielski Note that the ODF elements that can have metadata attached all 141*b1cdbd2cSJim Jagielski implement the interface <type>XMetadatable</type>, which inherits 142*b1cdbd2cSJim Jagielski from <type>XResource</type>, meaning that you can simply pass them 143*b1cdbd2cSJim Jagielski in as arguments here, and it will magically work. 144*b1cdbd2cSJim Jagielski </p> 145*b1cdbd2cSJim Jagielski 146*b1cdbd2cSJim Jagielski <p> 147*b1cdbd2cSJim Jagielski Any parameter may be <NULL/>, which acts as a wildcard. 148*b1cdbd2cSJim Jagielski For example, to remove all statements about myURI: 149*b1cdbd2cSJim Jagielski <code>removeStatement(myURI, null, null)</code> 150*b1cdbd2cSJim Jagielski </p> 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski @param Subject 153*b1cdbd2cSJim Jagielski the subject of the RDF triple. 154*b1cdbd2cSJim Jagielski 155*b1cdbd2cSJim Jagielski @param Predicate 156*b1cdbd2cSJim Jagielski the predicate of the RDF triple. 157*b1cdbd2cSJim Jagielski 158*b1cdbd2cSJim Jagielski @param Object 159*b1cdbd2cSJim Jagielski the object of the RDF triple. 160*b1cdbd2cSJim Jagielski 161*b1cdbd2cSJim Jagielski @throws com::sun::star::container::NoSuchElementException 162*b1cdbd2cSJim Jagielski if this graph does not exist in the repository any more 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim Jagielski @throws RepositoryException 165*b1cdbd2cSJim Jagielski if an error occurs when accessing the repository. 166*b1cdbd2cSJim Jagielski */ 167*b1cdbd2cSJim Jagielski void removeStatements([in] XResource Subject, 168*b1cdbd2cSJim Jagielski [in] XURI Predicate, 169*b1cdbd2cSJim Jagielski [in] XNode Object) 170*b1cdbd2cSJim Jagielski raises( com::sun::star::container::NoSuchElementException, 171*b1cdbd2cSJim Jagielski RepositoryException ); 172*b1cdbd2cSJim Jagielski 173*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 174*b1cdbd2cSJim Jagielski /** gets matching RDF statements from a graph. 175*b1cdbd2cSJim Jagielski 176*b1cdbd2cSJim Jagielski <p> 177*b1cdbd2cSJim Jagielski Note that the ODF elements that can have metadata attached all 178*b1cdbd2cSJim Jagielski implement the interface <type>XMetadatable</type>, which inherits 179*b1cdbd2cSJim Jagielski from <type>XResource</type>, meaning that you can simply pass them 180*b1cdbd2cSJim Jagielski in as arguments here, and it will magically work. 181*b1cdbd2cSJim Jagielski </p> 182*b1cdbd2cSJim Jagielski 183*b1cdbd2cSJim Jagielski <p> 184*b1cdbd2cSJim Jagielski Any parameter may be <NULL/>, which acts as a wildcard. 185*b1cdbd2cSJim Jagielski For example, to get all statements about myURI: 186*b1cdbd2cSJim Jagielski <code>getStatements(myURI, null, null)</code> 187*b1cdbd2cSJim Jagielski </p> 188*b1cdbd2cSJim Jagielski 189*b1cdbd2cSJim Jagielski @param Subject 190*b1cdbd2cSJim Jagielski the subject of the RDF triple. 191*b1cdbd2cSJim Jagielski 192*b1cdbd2cSJim Jagielski @param Predicate 193*b1cdbd2cSJim Jagielski the predicate of the RDF triple. 194*b1cdbd2cSJim Jagielski 195*b1cdbd2cSJim Jagielski @param Object 196*b1cdbd2cSJim Jagielski the object of the RDF triple. 197*b1cdbd2cSJim Jagielski 198*b1cdbd2cSJim Jagielski @returns 199*b1cdbd2cSJim Jagielski an iterator over all RDF statements in the graph that match 200*b1cdbd2cSJim Jagielski the parameters, represented as an 201*b1cdbd2cSJim Jagielski enumeration of <type>Statement</type> 202*b1cdbd2cSJim Jagielski 203*b1cdbd2cSJim Jagielski @throws com::sun::star::container::NoSuchElementException 204*b1cdbd2cSJim Jagielski if this graph does not exist in the repository any more 205*b1cdbd2cSJim Jagielski 206*b1cdbd2cSJim Jagielski @throws RepositoryException 207*b1cdbd2cSJim Jagielski if an error occurs when accessing the repository. 208*b1cdbd2cSJim Jagielski 209*b1cdbd2cSJim Jagielski @see Statement 210*b1cdbd2cSJim Jagielski */ 211*b1cdbd2cSJim Jagielski com::sun::star::container::XEnumeration/*<Statement>*/ getStatements( 212*b1cdbd2cSJim Jagielski [in] XResource Subject, 213*b1cdbd2cSJim Jagielski [in] XURI Predicate, 214*b1cdbd2cSJim Jagielski [in] XNode Object) 215*b1cdbd2cSJim Jagielski raises( com::sun::star::container::NoSuchElementException, 216*b1cdbd2cSJim Jagielski RepositoryException ); 217*b1cdbd2cSJim Jagielski 218*b1cdbd2cSJim Jagielski//FIXME reification: addReifiedStatement(Statement)... 219*b1cdbd2cSJim Jagielski}; 220*b1cdbd2cSJim Jagielski 221*b1cdbd2cSJim Jagielski//============================================================================= 222*b1cdbd2cSJim Jagielski 223*b1cdbd2cSJim Jagielski}; }; }; }; 224*b1cdbd2cSJim Jagielski 225*b1cdbd2cSJim Jagielski#endif 226