| /************************************************************** |
| * |
| * 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 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef __com_sun_star_rdf_XNamedGraph_idl__ |
| #define __com_sun_star_rdf_XNamedGraph_idl__ |
| |
| #ifndef __com_sun_star_lang_IllegalArgumentException_idl__ |
| #include <com/sun/star/lang/IllegalArgumentException.idl> |
| #endif |
| |
| #ifndef __com_sun_star_container_NoSuchElementException_idl__ |
| #include <com/sun/star/container/NoSuchElementException.idl> |
| #endif |
| |
| #ifndef __com_sun_star_container_XEnumeration_idl__ |
| #include <com/sun/star/container/XEnumeration.idl> |
| #endif |
| |
| #ifndef __com_sun_star_rdf_RepositoryException_idl__ |
| #include <com/sun/star/rdf/RepositoryException.idl> |
| #endif |
| |
| #ifndef __com_sun_star_rdf_XURI_idl__ |
| #include <com/sun/star/rdf/XURI.idl> |
| #endif |
| |
| |
| //============================================================================= |
| |
| module com { module sun { module star { module rdf { |
| |
| //============================================================================= |
| /** represents an RDF named graph that is stored in an RDF Repository. |
| |
| <p> |
| Note that this interface inherits from <type>XResource</type>: the |
| name of the graph is the string value of the RDF node. |
| This is so that you can easily make RDF statements about named graphs. |
| </p> |
| |
| <p> |
| Note that instances may be destroyed via |
| <member>XRepository::destroyGraph</member>. |
| If a graph is destroyed, subsequent calls to <member>addStatement</member>, |
| <member>removeStatements</member> will fail with an |
| <type scope="com::sun::star::container">NoSuchElementException</type>. |
| </p> |
| |
| @since OpenOffice 3.2 |
| |
| @see XRepository |
| */ |
| interface XNamedGraph : XURI |
| { |
| |
| //------------------------------------------------------------------------- |
| /** returns the name of the graph. |
| |
| <p> |
| The name is unique within the repository. |
| </p> |
| |
| @returns |
| the name of the graph |
| */ |
| XURI getName(); |
| |
| //------------------------------------------------------------------------- |
| /** removes all statements from the graph. |
| |
| @throws com::sun::star::container::NoSuchElementException |
| if this graph does not exist in the repository any more |
| |
| @throws RepositoryException |
| if an error occurs when accessing the repository. |
| */ |
| void clear() |
| raises( com::sun::star::container::NoSuchElementException, |
| RepositoryException ); |
| |
| //------------------------------------------------------------------------- |
| /** adds a RDF statement to the graph. |
| |
| <p> |
| Note that the ODF elements that can have metadata attached all |
| implement the interface <type>XMetadatable</type>, which inherits |
| from <type>XResource</type>, meaning that you can simply pass them |
| in as arguments here, and it will magically work. |
| </p> |
| |
| @param Subject |
| the subject of the RDF triple. |
| |
| @param Predicate |
| the predicate of the RDF triple. |
| |
| @param Object |
| the object of the RDF triple. |
| |
| @throws com::sun::star::lang::IllegalArgumentException |
| if any parameter is <NULL/> |
| |
| @throws com::sun::star::container::NoSuchElementException |
| if this graph does not exist in the repository any more |
| |
| @throws RepositoryException |
| if an error occurs when accessing the repository. |
| */ |
| void addStatement([in] XResource Subject, |
| [in] XURI Predicate, |
| [in] XNode Object) |
| raises( com::sun::star::lang::IllegalArgumentException, |
| com::sun::star::container::NoSuchElementException, |
| RepositoryException ); |
| |
| //------------------------------------------------------------------------- |
| /** removes matching RDF statements from the graph. |
| |
| <p> |
| Note that the ODF elements that can have metadata attached all |
| implement the interface <type>XMetadatable</type>, which inherits |
| from <type>XResource</type>, meaning that you can simply pass them |
| in as arguments here, and it will magically work. |
| </p> |
| |
| <p> |
| Any parameter may be <NULL/>, which acts as a wildcard. |
| For example, to remove all statements about myURI: |
| <code>removeStatement(myURI, null, null)</code> |
| </p> |
| |
| @param Subject |
| the subject of the RDF triple. |
| |
| @param Predicate |
| the predicate of the RDF triple. |
| |
| @param Object |
| the object of the RDF triple. |
| |
| @throws com::sun::star::container::NoSuchElementException |
| if this graph does not exist in the repository any more |
| |
| @throws RepositoryException |
| if an error occurs when accessing the repository. |
| */ |
| void removeStatements([in] XResource Subject, |
| [in] XURI Predicate, |
| [in] XNode Object) |
| raises( com::sun::star::container::NoSuchElementException, |
| RepositoryException ); |
| |
| //------------------------------------------------------------------------- |
| /** gets matching RDF statements from a graph. |
| |
| <p> |
| Note that the ODF elements that can have metadata attached all |
| implement the interface <type>XMetadatable</type>, which inherits |
| from <type>XResource</type>, meaning that you can simply pass them |
| in as arguments here, and it will magically work. |
| </p> |
| |
| <p> |
| Any parameter may be <NULL/>, which acts as a wildcard. |
| For example, to get all statements about myURI: |
| <code>getStatements(myURI, null, null)</code> |
| </p> |
| |
| @param Subject |
| the subject of the RDF triple. |
| |
| @param Predicate |
| the predicate of the RDF triple. |
| |
| @param Object |
| the object of the RDF triple. |
| |
| @returns |
| an iterator over all RDF statements in the graph that match |
| the parameters, represented as an |
| enumeration of <type>Statement</type> |
| |
| @throws com::sun::star::container::NoSuchElementException |
| if this graph does not exist in the repository any more |
| |
| @throws RepositoryException |
| if an error occurs when accessing the repository. |
| |
| @see Statement |
| */ |
| com::sun::star::container::XEnumeration/*<Statement>*/ getStatements( |
| [in] XResource Subject, |
| [in] XURI Predicate, |
| [in] XNode Object) |
| raises( com::sun::star::container::NoSuchElementException, |
| RepositoryException ); |
| |
| //FIXME reification: addReifiedStatement(Statement)... |
| }; |
| |
| //============================================================================= |
| |
| }; }; }; }; |
| |
| #endif |