1/************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24#ifndef __com_sun_star_rdf_XNamedGraph_idl__ 25#define __com_sun_star_rdf_XNamedGraph_idl__ 26 27#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ 28#include <com/sun/star/lang/IllegalArgumentException.idl> 29#endif 30 31#ifndef __com_sun_star_container_NoSuchElementException_idl__ 32#include <com/sun/star/container/NoSuchElementException.idl> 33#endif 34 35#ifndef __com_sun_star_container_XEnumeration_idl__ 36#include <com/sun/star/container/XEnumeration.idl> 37#endif 38 39#ifndef __com_sun_star_rdf_RepositoryException_idl__ 40#include <com/sun/star/rdf/RepositoryException.idl> 41#endif 42 43#ifndef __com_sun_star_rdf_XURI_idl__ 44#include <com/sun/star/rdf/XURI.idl> 45#endif 46 47 48//============================================================================= 49 50module com { module sun { module star { module rdf { 51 52//============================================================================= 53/** represents an RDF named graph that is stored in an RDF Repository. 54 55 <p> 56 Note that this interface inherits from <type>XResource</type>: the 57 name of the graph is the string value of the RDF node. 58 This is so that you can easily make RDF statements about named graphs. 59 </p> 60 61 <p> 62 Note that instances may be destroyed via 63 <member>XRepository::destroyGraph</member>. 64 If a graph is destroyed, subsequent calls to <member>addStatement</member>, 65 <member>removeStatements</member> will fail with an 66 <type scope="com::sun::star::container">NoSuchElementException</type>. 67 </p> 68 69 @since OpenOffice 3.2 70 71 @see XRepository 72 */ 73interface XNamedGraph : XURI 74{ 75 76 //------------------------------------------------------------------------- 77 /** returns the name of the graph. 78 79 <p> 80 The name is unique within the repository. 81 </p> 82 83 @returns 84 the name of the graph 85 */ 86 XURI getName(); 87 88 //------------------------------------------------------------------------- 89 /** removes all statements from the graph. 90 91 @throws com::sun::star::container::NoSuchElementException 92 if this graph does not exist in the repository any more 93 94 @throws RepositoryException 95 if an error occurs when accessing the repository. 96 */ 97 void clear() 98 raises( com::sun::star::container::NoSuchElementException, 99 RepositoryException ); 100 101 //------------------------------------------------------------------------- 102 /** adds a RDF statement to the graph. 103 104 <p> 105 Note that the ODF elements that can have metadata attached all 106 implement the interface <type>XMetadatable</type>, which inherits 107 from <type>XResource</type>, meaning that you can simply pass them 108 in as arguments here, and it will magically work. 109 </p> 110 111 @param Subject 112 the subject of the RDF triple. 113 114 @param Predicate 115 the predicate of the RDF triple. 116 117 @param Object 118 the object of the RDF triple. 119 120 @throws com::sun::star::lang::IllegalArgumentException 121 if any parameter is <NULL/> 122 123 @throws com::sun::star::container::NoSuchElementException 124 if this graph does not exist in the repository any more 125 126 @throws RepositoryException 127 if an error occurs when accessing the repository. 128 */ 129 void addStatement([in] XResource Subject, 130 [in] XURI Predicate, 131 [in] XNode Object) 132 raises( com::sun::star::lang::IllegalArgumentException, 133 com::sun::star::container::NoSuchElementException, 134 RepositoryException ); 135 136 //------------------------------------------------------------------------- 137 /** removes matching RDF statements from the graph. 138 139 <p> 140 Note that the ODF elements that can have metadata attached all 141 implement the interface <type>XMetadatable</type>, which inherits 142 from <type>XResource</type>, meaning that you can simply pass them 143 in as arguments here, and it will magically work. 144 </p> 145 146 <p> 147 Any parameter may be <NULL/>, which acts as a wildcard. 148 For example, to remove all statements about myURI: 149 <code>removeStatement(myURI, null, null)</code> 150 </p> 151 152 @param Subject 153 the subject of the RDF triple. 154 155 @param Predicate 156 the predicate of the RDF triple. 157 158 @param Object 159 the object of the RDF triple. 160 161 @throws com::sun::star::container::NoSuchElementException 162 if this graph does not exist in the repository any more 163 164 @throws RepositoryException 165 if an error occurs when accessing the repository. 166 */ 167 void removeStatements([in] XResource Subject, 168 [in] XURI Predicate, 169 [in] XNode Object) 170 raises( com::sun::star::container::NoSuchElementException, 171 RepositoryException ); 172 173 //------------------------------------------------------------------------- 174 /** gets matching RDF statements from a graph. 175 176 <p> 177 Note that the ODF elements that can have metadata attached all 178 implement the interface <type>XMetadatable</type>, which inherits 179 from <type>XResource</type>, meaning that you can simply pass them 180 in as arguments here, and it will magically work. 181 </p> 182 183 <p> 184 Any parameter may be <NULL/>, which acts as a wildcard. 185 For example, to get all statements about myURI: 186 <code>getStatements(myURI, null, null)</code> 187 </p> 188 189 @param Subject 190 the subject of the RDF triple. 191 192 @param Predicate 193 the predicate of the RDF triple. 194 195 @param Object 196 the object of the RDF triple. 197 198 @returns 199 an iterator over all RDF statements in the graph that match 200 the parameters, represented as an 201 enumeration of <type>Statement</type> 202 203 @throws com::sun::star::container::NoSuchElementException 204 if this graph does not exist in the repository any more 205 206 @throws RepositoryException 207 if an error occurs when accessing the repository. 208 209 @see Statement 210 */ 211 com::sun::star::container::XEnumeration/*<Statement>*/ getStatements( 212 [in] XResource Subject, 213 [in] XURI Predicate, 214 [in] XNode Object) 215 raises( com::sun::star::container::NoSuchElementException, 216 RepositoryException ); 217 218//FIXME reification: addReifiedStatement(Statement)... 219}; 220 221//============================================================================= 222 223}; }; }; }; 224 225#endif 226