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 #include "CNodes.hxx" 29*cdf0e10cSrcweir 30*cdf0e10cSrcweir #include <cppuhelper/implbase3.hxx> 31*cdf0e10cSrcweir #include <com/sun/star/lang/XServiceInfo.hpp> 32*cdf0e10cSrcweir #include <com/sun/star/lang/XInitialization.hpp> 33*cdf0e10cSrcweir #include <com/sun/star/rdf/XURI.hpp> 34*cdf0e10cSrcweir #include <com/sun/star/rdf/URIs.hpp> 35*cdf0e10cSrcweir 36*cdf0e10cSrcweir #include <com/sun/star/lang/IllegalArgumentException.hpp> 37*cdf0e10cSrcweir 38*cdf0e10cSrcweir 39*cdf0e10cSrcweir /// anonymous implementation namespace 40*cdf0e10cSrcweir namespace { 41*cdf0e10cSrcweir 42*cdf0e10cSrcweir namespace css = ::com::sun::star; 43*cdf0e10cSrcweir 44*cdf0e10cSrcweir class CURI: 45*cdf0e10cSrcweir public ::cppu::WeakImplHelper3< 46*cdf0e10cSrcweir css::lang::XServiceInfo, 47*cdf0e10cSrcweir css::lang::XInitialization, 48*cdf0e10cSrcweir css::rdf::XURI> 49*cdf0e10cSrcweir { 50*cdf0e10cSrcweir public: 51*cdf0e10cSrcweir explicit CURI(css::uno::Reference< css::uno::XComponentContext > const & context); 52*cdf0e10cSrcweir virtual ~CURI() {} 53*cdf0e10cSrcweir 54*cdf0e10cSrcweir // ::com::sun::star::lang::XServiceInfo: 55*cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException); 56*cdf0e10cSrcweir virtual ::sal_Bool SAL_CALL supportsService(const ::rtl::OUString & ServiceName) throw (css::uno::RuntimeException); 57*cdf0e10cSrcweir virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException); 58*cdf0e10cSrcweir 59*cdf0e10cSrcweir // ::com::sun::star::lang::XInitialization: 60*cdf0e10cSrcweir virtual void SAL_CALL initialize(const css::uno::Sequence< ::com::sun::star::uno::Any > & aArguments) throw (css::uno::RuntimeException, css::uno::Exception); 61*cdf0e10cSrcweir 62*cdf0e10cSrcweir // ::com::sun::star::rdf::XNode: 63*cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getStringValue() throw (css::uno::RuntimeException); 64*cdf0e10cSrcweir 65*cdf0e10cSrcweir // ::com::sun::star::rdf::XURI: 66*cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getLocalName() throw (css::uno::RuntimeException); 67*cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getNamespace() throw (css::uno::RuntimeException); 68*cdf0e10cSrcweir 69*cdf0e10cSrcweir private: 70*cdf0e10cSrcweir CURI(const CURI &); // not defined 71*cdf0e10cSrcweir CURI& operator=(const CURI &); // not defined 72*cdf0e10cSrcweir 73*cdf0e10cSrcweir /// handle css.rdf.URIs 74*cdf0e10cSrcweir void SAL_CALL initFromConstant(const sal_Int16 i_Constant); 75*cdf0e10cSrcweir 76*cdf0e10cSrcweir css::uno::Reference< css::uno::XComponentContext > m_xContext; 77*cdf0e10cSrcweir 78*cdf0e10cSrcweir ::rtl::OUString m_Namespace; 79*cdf0e10cSrcweir ::rtl::OUString m_LocalName; 80*cdf0e10cSrcweir }; 81*cdf0e10cSrcweir 82*cdf0e10cSrcweir CURI::CURI(css::uno::Reference< css::uno::XComponentContext > const & context) : 83*cdf0e10cSrcweir m_xContext(context), m_Namespace(), m_LocalName() 84*cdf0e10cSrcweir {} 85*cdf0e10cSrcweir 86*cdf0e10cSrcweir // com.sun.star.uno.XServiceInfo: 87*cdf0e10cSrcweir ::rtl::OUString SAL_CALL CURI::getImplementationName() throw (css::uno::RuntimeException) 88*cdf0e10cSrcweir { 89*cdf0e10cSrcweir return comp_CURI::_getImplementationName(); 90*cdf0e10cSrcweir } 91*cdf0e10cSrcweir 92*cdf0e10cSrcweir ::sal_Bool SAL_CALL CURI::supportsService(::rtl::OUString const & serviceName) throw (css::uno::RuntimeException) 93*cdf0e10cSrcweir { 94*cdf0e10cSrcweir css::uno::Sequence< ::rtl::OUString > serviceNames = comp_CURI::_getSupportedServiceNames(); 95*cdf0e10cSrcweir for (::sal_Int32 i = 0; i < serviceNames.getLength(); ++i) { 96*cdf0e10cSrcweir if (serviceNames[i] == serviceName) 97*cdf0e10cSrcweir return sal_True; 98*cdf0e10cSrcweir } 99*cdf0e10cSrcweir return sal_False; 100*cdf0e10cSrcweir } 101*cdf0e10cSrcweir 102*cdf0e10cSrcweir css::uno::Sequence< ::rtl::OUString > SAL_CALL CURI::getSupportedServiceNames() throw (css::uno::RuntimeException) 103*cdf0e10cSrcweir { 104*cdf0e10cSrcweir return comp_CURI::_getSupportedServiceNames(); 105*cdf0e10cSrcweir } 106*cdf0e10cSrcweir 107*cdf0e10cSrcweir const char s_nsXS [] = "http://www.w3.org/2001/XMLSchema#"; 108*cdf0e10cSrcweir const char s_nsXSD [] = "http://www.w3.org/2001/XMLSchema-datatypes#"; 109*cdf0e10cSrcweir const char s_nsRDF [] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"; 110*cdf0e10cSrcweir const char s_nsRDFs [] = "http://www.w3.org/2000/01/rdf-schema#"; 111*cdf0e10cSrcweir const char s_nsOWL [] = "http://www.w3.org/2002/07/owl#"; 112*cdf0e10cSrcweir const char s_nsPkg [] = 113*cdf0e10cSrcweir "http://docs.oasis-open.org/ns/office/1.2/meta/pkg#"; 114*cdf0e10cSrcweir const char s_nsODF [] = 115*cdf0e10cSrcweir "http://docs.oasis-open.org/ns/office/1.2/meta/odf#"; 116*cdf0e10cSrcweir 117*cdf0e10cSrcweir void SAL_CALL CURI::initFromConstant(const sal_Int16 i_Constant) 118*cdf0e10cSrcweir { 119*cdf0e10cSrcweir const char *ns(0); 120*cdf0e10cSrcweir const char *ln(0); 121*cdf0e10cSrcweir switch (i_Constant) 122*cdf0e10cSrcweir { 123*cdf0e10cSrcweir case css::rdf::URIs::XSD_NCNAME: 124*cdf0e10cSrcweir ns = s_nsXSD; 125*cdf0e10cSrcweir ln = "NCName"; 126*cdf0e10cSrcweir break; 127*cdf0e10cSrcweir 128*cdf0e10cSrcweir case css::rdf::URIs::XSD_STRING: 129*cdf0e10cSrcweir ns = s_nsXSD; 130*cdf0e10cSrcweir ln = "string"; 131*cdf0e10cSrcweir break; 132*cdf0e10cSrcweir 133*cdf0e10cSrcweir case css::rdf::URIs::XSD_NORMALIZEDSTRING: 134*cdf0e10cSrcweir ns = s_nsXSD; 135*cdf0e10cSrcweir ln = "normalizedString"; 136*cdf0e10cSrcweir break; 137*cdf0e10cSrcweir 138*cdf0e10cSrcweir case css::rdf::URIs::XSD_BOOLEAN: 139*cdf0e10cSrcweir ns = s_nsXSD; 140*cdf0e10cSrcweir ln = "boolean"; 141*cdf0e10cSrcweir break; 142*cdf0e10cSrcweir 143*cdf0e10cSrcweir case css::rdf::URIs::XSD_DECIMAL: 144*cdf0e10cSrcweir ns = s_nsXSD; 145*cdf0e10cSrcweir ln = "decimal"; 146*cdf0e10cSrcweir break; 147*cdf0e10cSrcweir 148*cdf0e10cSrcweir case css::rdf::URIs::XSD_FLOAT: 149*cdf0e10cSrcweir ns = s_nsXSD; 150*cdf0e10cSrcweir ln = "float"; 151*cdf0e10cSrcweir break; 152*cdf0e10cSrcweir 153*cdf0e10cSrcweir case css::rdf::URIs::XSD_DOUBLE: 154*cdf0e10cSrcweir ns = s_nsXSD; 155*cdf0e10cSrcweir ln = "double"; 156*cdf0e10cSrcweir break; 157*cdf0e10cSrcweir 158*cdf0e10cSrcweir case css::rdf::URIs::XSD_INTEGER: 159*cdf0e10cSrcweir ns = s_nsXSD; 160*cdf0e10cSrcweir ln = "integer"; 161*cdf0e10cSrcweir break; 162*cdf0e10cSrcweir 163*cdf0e10cSrcweir case css::rdf::URIs::XSD_NONNEGATIVEINTEGER: 164*cdf0e10cSrcweir ns = s_nsXSD; 165*cdf0e10cSrcweir ln = "nonNegativeInteger"; 166*cdf0e10cSrcweir break; 167*cdf0e10cSrcweir 168*cdf0e10cSrcweir case css::rdf::URIs::XSD_POSITIVEINTEGER: 169*cdf0e10cSrcweir ns = s_nsXSD; 170*cdf0e10cSrcweir ln = "positiveInteger"; 171*cdf0e10cSrcweir break; 172*cdf0e10cSrcweir 173*cdf0e10cSrcweir case css::rdf::URIs::XSD_NONPOSITIVEINTEGER: 174*cdf0e10cSrcweir ns = s_nsXSD; 175*cdf0e10cSrcweir ln = "nonPositiveInteger"; 176*cdf0e10cSrcweir break; 177*cdf0e10cSrcweir 178*cdf0e10cSrcweir case css::rdf::URIs::XSD_NEGATIVEINTEGER: 179*cdf0e10cSrcweir ns = s_nsXSD; 180*cdf0e10cSrcweir ln = "negativeInteger"; 181*cdf0e10cSrcweir break; 182*cdf0e10cSrcweir 183*cdf0e10cSrcweir case css::rdf::URIs::XSD_LONG: 184*cdf0e10cSrcweir ns = s_nsXSD; 185*cdf0e10cSrcweir ln = "long"; 186*cdf0e10cSrcweir break; 187*cdf0e10cSrcweir 188*cdf0e10cSrcweir case css::rdf::URIs::XSD_INT: 189*cdf0e10cSrcweir ns = s_nsXSD; 190*cdf0e10cSrcweir ln = "int"; 191*cdf0e10cSrcweir break; 192*cdf0e10cSrcweir 193*cdf0e10cSrcweir case css::rdf::URIs::XSD_SHORT: 194*cdf0e10cSrcweir ns = s_nsXSD; 195*cdf0e10cSrcweir ln = "short"; 196*cdf0e10cSrcweir break; 197*cdf0e10cSrcweir 198*cdf0e10cSrcweir case css::rdf::URIs::XSD_BYTE: 199*cdf0e10cSrcweir ns = s_nsXSD; 200*cdf0e10cSrcweir ln = "byte"; 201*cdf0e10cSrcweir break; 202*cdf0e10cSrcweir 203*cdf0e10cSrcweir case css::rdf::URIs::XSD_UNSIGNEDLONG: 204*cdf0e10cSrcweir ns = s_nsXSD; 205*cdf0e10cSrcweir ln = "unsignedLong"; 206*cdf0e10cSrcweir break; 207*cdf0e10cSrcweir 208*cdf0e10cSrcweir case css::rdf::URIs::XSD_UNSIGNEDINT: 209*cdf0e10cSrcweir ns = s_nsXSD; 210*cdf0e10cSrcweir ln = "unsignedInt"; 211*cdf0e10cSrcweir break; 212*cdf0e10cSrcweir 213*cdf0e10cSrcweir case css::rdf::URIs::XSD_UNSIGNEDSHORT: 214*cdf0e10cSrcweir ns = s_nsXSD; 215*cdf0e10cSrcweir ln = "unsignedShort"; 216*cdf0e10cSrcweir break; 217*cdf0e10cSrcweir 218*cdf0e10cSrcweir case css::rdf::URIs::XSD_UNSIGNEDBYTE: 219*cdf0e10cSrcweir ns = s_nsXSD; 220*cdf0e10cSrcweir ln = "unsignedByte"; 221*cdf0e10cSrcweir break; 222*cdf0e10cSrcweir 223*cdf0e10cSrcweir case css::rdf::URIs::XSD_HEXBINARY: 224*cdf0e10cSrcweir ns = s_nsXSD; 225*cdf0e10cSrcweir ln = "hexBinary"; 226*cdf0e10cSrcweir break; 227*cdf0e10cSrcweir 228*cdf0e10cSrcweir case css::rdf::URIs::XSD_BASE64BINARY: 229*cdf0e10cSrcweir ns = s_nsXSD; 230*cdf0e10cSrcweir ln = "base64Binary"; 231*cdf0e10cSrcweir break; 232*cdf0e10cSrcweir 233*cdf0e10cSrcweir case css::rdf::URIs::XSD_DATETIME: 234*cdf0e10cSrcweir ns = s_nsXSD; 235*cdf0e10cSrcweir ln = "dateTime"; 236*cdf0e10cSrcweir break; 237*cdf0e10cSrcweir 238*cdf0e10cSrcweir case css::rdf::URIs::XSD_TIME: 239*cdf0e10cSrcweir ns = s_nsXSD; 240*cdf0e10cSrcweir ln = "time"; 241*cdf0e10cSrcweir break; 242*cdf0e10cSrcweir 243*cdf0e10cSrcweir case css::rdf::URIs::XSD_DATE: 244*cdf0e10cSrcweir ns = s_nsXSD; 245*cdf0e10cSrcweir ln = "date"; 246*cdf0e10cSrcweir break; 247*cdf0e10cSrcweir 248*cdf0e10cSrcweir case css::rdf::URIs::XSD_GYEARMONTH: 249*cdf0e10cSrcweir ns = s_nsXSD; 250*cdf0e10cSrcweir ln = "gYearMonth"; 251*cdf0e10cSrcweir break; 252*cdf0e10cSrcweir 253*cdf0e10cSrcweir case css::rdf::URIs::XSD_GYEAR: 254*cdf0e10cSrcweir ns = s_nsXSD; 255*cdf0e10cSrcweir ln = "gYear"; 256*cdf0e10cSrcweir break; 257*cdf0e10cSrcweir 258*cdf0e10cSrcweir case css::rdf::URIs::XSD_GMONTHDAY: 259*cdf0e10cSrcweir ns = s_nsXSD; 260*cdf0e10cSrcweir ln = "gMonthDay"; 261*cdf0e10cSrcweir break; 262*cdf0e10cSrcweir 263*cdf0e10cSrcweir case css::rdf::URIs::XSD_GDAY: 264*cdf0e10cSrcweir ns = s_nsXSD; 265*cdf0e10cSrcweir ln = "gDay"; 266*cdf0e10cSrcweir break; 267*cdf0e10cSrcweir 268*cdf0e10cSrcweir case css::rdf::URIs::XSD_GMONTH: 269*cdf0e10cSrcweir ns = s_nsXSD; 270*cdf0e10cSrcweir ln = "gMonth"; 271*cdf0e10cSrcweir break; 272*cdf0e10cSrcweir 273*cdf0e10cSrcweir case css::rdf::URIs::XSD_ANYURI: 274*cdf0e10cSrcweir ns = s_nsXSD; 275*cdf0e10cSrcweir ln = "anyURI"; 276*cdf0e10cSrcweir break; 277*cdf0e10cSrcweir 278*cdf0e10cSrcweir case css::rdf::URIs::XSD_TOKEN: 279*cdf0e10cSrcweir ns = s_nsXSD; 280*cdf0e10cSrcweir ln = "token"; 281*cdf0e10cSrcweir break; 282*cdf0e10cSrcweir 283*cdf0e10cSrcweir case css::rdf::URIs::XSD_LANGUAGE: 284*cdf0e10cSrcweir ns = s_nsXSD; 285*cdf0e10cSrcweir ln = "language"; 286*cdf0e10cSrcweir break; 287*cdf0e10cSrcweir 288*cdf0e10cSrcweir case css::rdf::URIs::XSD_NMTOKEN: 289*cdf0e10cSrcweir ns = s_nsXSD; 290*cdf0e10cSrcweir ln = "NMTOKEN"; 291*cdf0e10cSrcweir break; 292*cdf0e10cSrcweir 293*cdf0e10cSrcweir case css::rdf::URIs::XSD_NAME: 294*cdf0e10cSrcweir ns = s_nsXSD; 295*cdf0e10cSrcweir ln = "Name"; 296*cdf0e10cSrcweir break; 297*cdf0e10cSrcweir 298*cdf0e10cSrcweir case css::rdf::URIs::XSD_DURATION: 299*cdf0e10cSrcweir ns = s_nsXSD; 300*cdf0e10cSrcweir ln = "duration"; 301*cdf0e10cSrcweir break; 302*cdf0e10cSrcweir 303*cdf0e10cSrcweir case css::rdf::URIs::XSD_QNAME: 304*cdf0e10cSrcweir ns = s_nsXSD; 305*cdf0e10cSrcweir ln = "QName"; 306*cdf0e10cSrcweir break; 307*cdf0e10cSrcweir 308*cdf0e10cSrcweir case css::rdf::URIs::XSD_NOTATION: 309*cdf0e10cSrcweir ns = s_nsXSD; 310*cdf0e10cSrcweir ln = "NOTATION"; 311*cdf0e10cSrcweir break; 312*cdf0e10cSrcweir 313*cdf0e10cSrcweir case css::rdf::URIs::XSD_NMTOKENS: 314*cdf0e10cSrcweir ns = s_nsXSD; 315*cdf0e10cSrcweir ln = "NMTOKENS"; 316*cdf0e10cSrcweir break; 317*cdf0e10cSrcweir 318*cdf0e10cSrcweir case css::rdf::URIs::XSD_ID: 319*cdf0e10cSrcweir ns = s_nsXSD; 320*cdf0e10cSrcweir ln = "ID"; 321*cdf0e10cSrcweir break; 322*cdf0e10cSrcweir 323*cdf0e10cSrcweir case css::rdf::URIs::XSD_IDREF: 324*cdf0e10cSrcweir ns = s_nsXSD; 325*cdf0e10cSrcweir ln = "IDREF"; 326*cdf0e10cSrcweir break; 327*cdf0e10cSrcweir 328*cdf0e10cSrcweir case css::rdf::URIs::XSD_IDREFS: 329*cdf0e10cSrcweir ns = s_nsXSD; 330*cdf0e10cSrcweir ln = "IDREFS"; 331*cdf0e10cSrcweir break; 332*cdf0e10cSrcweir 333*cdf0e10cSrcweir case css::rdf::URIs::XSD_ENTITY: 334*cdf0e10cSrcweir ns = s_nsXSD; 335*cdf0e10cSrcweir ln = "ENTITY"; 336*cdf0e10cSrcweir break; 337*cdf0e10cSrcweir 338*cdf0e10cSrcweir case css::rdf::URIs::XSD_ENTITIES: 339*cdf0e10cSrcweir ns = s_nsXSD; 340*cdf0e10cSrcweir ln = "ENTITIES"; 341*cdf0e10cSrcweir break; 342*cdf0e10cSrcweir 343*cdf0e10cSrcweir case css::rdf::URIs::RDF_TYPE: 344*cdf0e10cSrcweir ns = s_nsRDF; 345*cdf0e10cSrcweir ln = "type"; 346*cdf0e10cSrcweir break; 347*cdf0e10cSrcweir 348*cdf0e10cSrcweir case css::rdf::URIs::RDF_SUBJECT: 349*cdf0e10cSrcweir ns = s_nsRDF; 350*cdf0e10cSrcweir ln = "subject"; 351*cdf0e10cSrcweir break; 352*cdf0e10cSrcweir 353*cdf0e10cSrcweir case css::rdf::URIs::RDF_PREDICATE: 354*cdf0e10cSrcweir ns = s_nsRDF; 355*cdf0e10cSrcweir ln = "predicate"; 356*cdf0e10cSrcweir break; 357*cdf0e10cSrcweir 358*cdf0e10cSrcweir case css::rdf::URIs::RDF_OBJECT: 359*cdf0e10cSrcweir ns = s_nsRDF; 360*cdf0e10cSrcweir ln = "object"; 361*cdf0e10cSrcweir break; 362*cdf0e10cSrcweir 363*cdf0e10cSrcweir case css::rdf::URIs::RDF_PROPERTY: 364*cdf0e10cSrcweir ns = s_nsRDF; 365*cdf0e10cSrcweir ln = "Property"; 366*cdf0e10cSrcweir break; 367*cdf0e10cSrcweir 368*cdf0e10cSrcweir case css::rdf::URIs::RDF_STATEMENT: 369*cdf0e10cSrcweir ns = s_nsRDF; 370*cdf0e10cSrcweir ln = "Statement"; 371*cdf0e10cSrcweir break; 372*cdf0e10cSrcweir 373*cdf0e10cSrcweir case css::rdf::URIs::RDF_VALUE: 374*cdf0e10cSrcweir ns = s_nsRDF; 375*cdf0e10cSrcweir ln = "value"; 376*cdf0e10cSrcweir break; 377*cdf0e10cSrcweir 378*cdf0e10cSrcweir case css::rdf::URIs::RDF_FIRST: 379*cdf0e10cSrcweir ns = s_nsRDF; 380*cdf0e10cSrcweir ln = "first"; 381*cdf0e10cSrcweir break; 382*cdf0e10cSrcweir 383*cdf0e10cSrcweir case css::rdf::URIs::RDF_REST: 384*cdf0e10cSrcweir ns = s_nsRDF; 385*cdf0e10cSrcweir ln = "rest"; 386*cdf0e10cSrcweir break; 387*cdf0e10cSrcweir 388*cdf0e10cSrcweir case css::rdf::URIs::RDF_NIL: 389*cdf0e10cSrcweir ns = s_nsRDF; 390*cdf0e10cSrcweir ln = "nil"; 391*cdf0e10cSrcweir break; 392*cdf0e10cSrcweir 393*cdf0e10cSrcweir case css::rdf::URIs::RDF_XMLLITERAL: 394*cdf0e10cSrcweir ns = s_nsRDF; 395*cdf0e10cSrcweir ln = "XMLLiteral"; 396*cdf0e10cSrcweir break; 397*cdf0e10cSrcweir 398*cdf0e10cSrcweir case css::rdf::URIs::RDF_ALT: 399*cdf0e10cSrcweir ns = s_nsRDF; 400*cdf0e10cSrcweir ln = "Alt"; 401*cdf0e10cSrcweir break; 402*cdf0e10cSrcweir 403*cdf0e10cSrcweir case css::rdf::URIs::RDF_BAG: 404*cdf0e10cSrcweir ns = s_nsRDF; 405*cdf0e10cSrcweir ln = "Bag"; 406*cdf0e10cSrcweir break; 407*cdf0e10cSrcweir 408*cdf0e10cSrcweir case css::rdf::URIs::RDF_LIST: 409*cdf0e10cSrcweir ns = s_nsRDF; 410*cdf0e10cSrcweir ln = "List"; 411*cdf0e10cSrcweir break; 412*cdf0e10cSrcweir 413*cdf0e10cSrcweir case css::rdf::URIs::RDF_SEQ: 414*cdf0e10cSrcweir ns = s_nsRDF; 415*cdf0e10cSrcweir ln = "Seq"; 416*cdf0e10cSrcweir break; 417*cdf0e10cSrcweir 418*cdf0e10cSrcweir case css::rdf::URIs::RDF_1: 419*cdf0e10cSrcweir ns = s_nsRDF; 420*cdf0e10cSrcweir ln = "_1"; 421*cdf0e10cSrcweir break; 422*cdf0e10cSrcweir 423*cdf0e10cSrcweir case css::rdf::URIs::RDFS_COMMENT: 424*cdf0e10cSrcweir ns = s_nsRDFs; 425*cdf0e10cSrcweir ln = "comment"; 426*cdf0e10cSrcweir break; 427*cdf0e10cSrcweir 428*cdf0e10cSrcweir case css::rdf::URIs::RDFS_LABEL: 429*cdf0e10cSrcweir ns = s_nsRDFs; 430*cdf0e10cSrcweir ln = "label"; 431*cdf0e10cSrcweir break; 432*cdf0e10cSrcweir 433*cdf0e10cSrcweir case css::rdf::URIs::RDFS_DOMAIN: 434*cdf0e10cSrcweir ns = s_nsRDFs; 435*cdf0e10cSrcweir ln = "domain"; 436*cdf0e10cSrcweir break; 437*cdf0e10cSrcweir 438*cdf0e10cSrcweir case css::rdf::URIs::RDFS_RANGE: 439*cdf0e10cSrcweir ns = s_nsRDFs; 440*cdf0e10cSrcweir ln = "range"; 441*cdf0e10cSrcweir break; 442*cdf0e10cSrcweir 443*cdf0e10cSrcweir case css::rdf::URIs::RDFS_SUBCLASSOF: 444*cdf0e10cSrcweir ns = s_nsRDFs; 445*cdf0e10cSrcweir ln = "subClassOf"; 446*cdf0e10cSrcweir break; 447*cdf0e10cSrcweir 448*cdf0e10cSrcweir case css::rdf::URIs::RDFS_LITERAL: 449*cdf0e10cSrcweir ns = s_nsRDFs; 450*cdf0e10cSrcweir ln = "Literal"; 451*cdf0e10cSrcweir break; 452*cdf0e10cSrcweir 453*cdf0e10cSrcweir case css::rdf::URIs::OWL_CLASS: 454*cdf0e10cSrcweir ns = s_nsOWL; 455*cdf0e10cSrcweir ln = "Class"; 456*cdf0e10cSrcweir break; 457*cdf0e10cSrcweir 458*cdf0e10cSrcweir case css::rdf::URIs::OWL_OBJECTPROPERTY: 459*cdf0e10cSrcweir ns = s_nsOWL; 460*cdf0e10cSrcweir ln = "ObjectProperty"; 461*cdf0e10cSrcweir break; 462*cdf0e10cSrcweir 463*cdf0e10cSrcweir case css::rdf::URIs::OWL_DATATYPEPROPERTY: 464*cdf0e10cSrcweir ns = s_nsOWL; 465*cdf0e10cSrcweir ln = "DatatypeProperty"; 466*cdf0e10cSrcweir break; 467*cdf0e10cSrcweir 468*cdf0e10cSrcweir case css::rdf::URIs::OWL_FUNCTIONALPROPERTY: 469*cdf0e10cSrcweir ns = s_nsOWL; 470*cdf0e10cSrcweir ln = "FunctionalProperty"; 471*cdf0e10cSrcweir break; 472*cdf0e10cSrcweir 473*cdf0e10cSrcweir case css::rdf::URIs::OWL_THING: 474*cdf0e10cSrcweir ns = s_nsOWL; 475*cdf0e10cSrcweir ln = "Thing"; 476*cdf0e10cSrcweir break; 477*cdf0e10cSrcweir 478*cdf0e10cSrcweir case css::rdf::URIs::OWL_NOTHING: 479*cdf0e10cSrcweir ns = s_nsOWL; 480*cdf0e10cSrcweir ln = "Nothing"; 481*cdf0e10cSrcweir break; 482*cdf0e10cSrcweir 483*cdf0e10cSrcweir case css::rdf::URIs::OWL_INDIVIDUAL: 484*cdf0e10cSrcweir ns = s_nsOWL; 485*cdf0e10cSrcweir ln = "Individual"; 486*cdf0e10cSrcweir break; 487*cdf0e10cSrcweir 488*cdf0e10cSrcweir case css::rdf::URIs::OWL_EQUIVALENTCLASS: 489*cdf0e10cSrcweir ns = s_nsOWL; 490*cdf0e10cSrcweir ln = "equivalentClass"; 491*cdf0e10cSrcweir break; 492*cdf0e10cSrcweir 493*cdf0e10cSrcweir case css::rdf::URIs::OWL_EQUIVALENTPROPERTY: 494*cdf0e10cSrcweir ns = s_nsOWL; 495*cdf0e10cSrcweir ln = "equivalentProperty"; 496*cdf0e10cSrcweir break; 497*cdf0e10cSrcweir 498*cdf0e10cSrcweir case css::rdf::URIs::OWL_SAMEAS: 499*cdf0e10cSrcweir ns = s_nsOWL; 500*cdf0e10cSrcweir ln = "sameAs"; 501*cdf0e10cSrcweir break; 502*cdf0e10cSrcweir 503*cdf0e10cSrcweir case css::rdf::URIs::OWL_DIFFERENTFROM: 504*cdf0e10cSrcweir ns = s_nsOWL; 505*cdf0e10cSrcweir ln = "differentFrom"; 506*cdf0e10cSrcweir break; 507*cdf0e10cSrcweir 508*cdf0e10cSrcweir case css::rdf::URIs::OWL_ALLDIFFERENT: 509*cdf0e10cSrcweir ns = s_nsOWL; 510*cdf0e10cSrcweir ln = "AllDifferent"; 511*cdf0e10cSrcweir break; 512*cdf0e10cSrcweir 513*cdf0e10cSrcweir case css::rdf::URIs::OWL_DISTINCTMEMBERS: 514*cdf0e10cSrcweir ns = s_nsOWL; 515*cdf0e10cSrcweir ln = "distinctMembers"; 516*cdf0e10cSrcweir break; 517*cdf0e10cSrcweir 518*cdf0e10cSrcweir case css::rdf::URIs::OWL_INVERSEOF: 519*cdf0e10cSrcweir ns = s_nsOWL; 520*cdf0e10cSrcweir ln = "inverseOf"; 521*cdf0e10cSrcweir break; 522*cdf0e10cSrcweir 523*cdf0e10cSrcweir case css::rdf::URIs::OWL_TRANSITIVEPROPERTY: 524*cdf0e10cSrcweir ns = s_nsOWL; 525*cdf0e10cSrcweir ln = "TransitiveProperty"; 526*cdf0e10cSrcweir break; 527*cdf0e10cSrcweir 528*cdf0e10cSrcweir case css::rdf::URIs::OWL_SYMMETRICPROPERTY: 529*cdf0e10cSrcweir ns = s_nsOWL; 530*cdf0e10cSrcweir ln = "SymmetricProperty"; 531*cdf0e10cSrcweir break; 532*cdf0e10cSrcweir 533*cdf0e10cSrcweir case css::rdf::URIs::OWL_INVERSEFUNCTIONALPROPERTY: 534*cdf0e10cSrcweir ns = s_nsOWL; 535*cdf0e10cSrcweir ln = "InverseFunctionalProperty"; 536*cdf0e10cSrcweir break; 537*cdf0e10cSrcweir 538*cdf0e10cSrcweir case css::rdf::URIs::OWL_RESTRICTION: 539*cdf0e10cSrcweir ns = s_nsOWL; 540*cdf0e10cSrcweir ln = "Restriction"; 541*cdf0e10cSrcweir break; 542*cdf0e10cSrcweir 543*cdf0e10cSrcweir case css::rdf::URIs::OWL_ONPROPERTY: 544*cdf0e10cSrcweir ns = s_nsOWL; 545*cdf0e10cSrcweir ln = "onProperty"; 546*cdf0e10cSrcweir break; 547*cdf0e10cSrcweir 548*cdf0e10cSrcweir case css::rdf::URIs::OWL_ALLVALUESFROM: 549*cdf0e10cSrcweir ns = s_nsOWL; 550*cdf0e10cSrcweir ln = "allValuesFrom"; 551*cdf0e10cSrcweir break; 552*cdf0e10cSrcweir 553*cdf0e10cSrcweir case css::rdf::URIs::OWL_SOMEVALUESFROM: 554*cdf0e10cSrcweir ns = s_nsOWL; 555*cdf0e10cSrcweir ln = "someValuesFrom"; 556*cdf0e10cSrcweir break; 557*cdf0e10cSrcweir 558*cdf0e10cSrcweir case css::rdf::URIs::OWL_MINCARDINALITY: 559*cdf0e10cSrcweir ns = s_nsOWL; 560*cdf0e10cSrcweir ln = "minCardinality"; 561*cdf0e10cSrcweir break; 562*cdf0e10cSrcweir 563*cdf0e10cSrcweir case css::rdf::URIs::OWL_MAXCARDINALITY: 564*cdf0e10cSrcweir ns = s_nsOWL; 565*cdf0e10cSrcweir ln = "maxCardinality"; 566*cdf0e10cSrcweir break; 567*cdf0e10cSrcweir 568*cdf0e10cSrcweir case css::rdf::URIs::OWL_CARDINALITY: 569*cdf0e10cSrcweir ns = s_nsOWL; 570*cdf0e10cSrcweir ln = "cardinality"; 571*cdf0e10cSrcweir break; 572*cdf0e10cSrcweir 573*cdf0e10cSrcweir case css::rdf::URIs::OWL_ONTOLOGY: 574*cdf0e10cSrcweir ns = s_nsOWL; 575*cdf0e10cSrcweir ln = "Ontology"; 576*cdf0e10cSrcweir break; 577*cdf0e10cSrcweir 578*cdf0e10cSrcweir case css::rdf::URIs::OWL_IMPORTS: 579*cdf0e10cSrcweir ns = s_nsOWL; 580*cdf0e10cSrcweir ln = "imports"; 581*cdf0e10cSrcweir break; 582*cdf0e10cSrcweir 583*cdf0e10cSrcweir case css::rdf::URIs::OWL_VERSIONINFO: 584*cdf0e10cSrcweir ns = s_nsOWL; 585*cdf0e10cSrcweir ln = "versionInfo"; 586*cdf0e10cSrcweir break; 587*cdf0e10cSrcweir 588*cdf0e10cSrcweir case css::rdf::URIs::OWL_PRIORVERSION: 589*cdf0e10cSrcweir ns = s_nsOWL; 590*cdf0e10cSrcweir ln = "priorVersion"; 591*cdf0e10cSrcweir break; 592*cdf0e10cSrcweir 593*cdf0e10cSrcweir case css::rdf::URIs::OWL_BACKWARDCOMPATIBLEWITH: 594*cdf0e10cSrcweir ns = s_nsOWL; 595*cdf0e10cSrcweir ln = "backwardCompatibleWith"; 596*cdf0e10cSrcweir break; 597*cdf0e10cSrcweir 598*cdf0e10cSrcweir case css::rdf::URIs::OWL_INCOMPATIBLEWITH: 599*cdf0e10cSrcweir ns = s_nsOWL; 600*cdf0e10cSrcweir ln = "incompatibleWith"; 601*cdf0e10cSrcweir break; 602*cdf0e10cSrcweir 603*cdf0e10cSrcweir case css::rdf::URIs::OWL_DEPRECATEDCLASS: 604*cdf0e10cSrcweir ns = s_nsOWL; 605*cdf0e10cSrcweir ln = "DeprecatedClass"; 606*cdf0e10cSrcweir break; 607*cdf0e10cSrcweir 608*cdf0e10cSrcweir case css::rdf::URIs::OWL_DEPRECATEDPROPERTY: 609*cdf0e10cSrcweir ns = s_nsOWL; 610*cdf0e10cSrcweir ln = "DeprecatedProperty"; 611*cdf0e10cSrcweir break; 612*cdf0e10cSrcweir 613*cdf0e10cSrcweir case css::rdf::URIs::OWL_ANNOTATIONPROPERTY: 614*cdf0e10cSrcweir ns = s_nsOWL; 615*cdf0e10cSrcweir ln = "AnnotationProperty"; 616*cdf0e10cSrcweir break; 617*cdf0e10cSrcweir 618*cdf0e10cSrcweir case css::rdf::URIs::OWL_ONTOLOGYPROPERTY: 619*cdf0e10cSrcweir ns = s_nsOWL; 620*cdf0e10cSrcweir ln = "OntologyProperty"; 621*cdf0e10cSrcweir break; 622*cdf0e10cSrcweir 623*cdf0e10cSrcweir case css::rdf::URIs::OWL_ONEOF: 624*cdf0e10cSrcweir ns = s_nsOWL; 625*cdf0e10cSrcweir ln = "oneOf"; 626*cdf0e10cSrcweir break; 627*cdf0e10cSrcweir 628*cdf0e10cSrcweir case css::rdf::URIs::OWL_DATARANGE: 629*cdf0e10cSrcweir ns = s_nsOWL; 630*cdf0e10cSrcweir ln = "dataRange"; 631*cdf0e10cSrcweir break; 632*cdf0e10cSrcweir 633*cdf0e10cSrcweir case css::rdf::URIs::OWL_DISJOINTWITH: 634*cdf0e10cSrcweir ns = s_nsOWL; 635*cdf0e10cSrcweir ln = "disjointWith"; 636*cdf0e10cSrcweir break; 637*cdf0e10cSrcweir 638*cdf0e10cSrcweir case css::rdf::URIs::OWL_UNIONOF: 639*cdf0e10cSrcweir ns = s_nsOWL; 640*cdf0e10cSrcweir ln = "unionOf"; 641*cdf0e10cSrcweir break; 642*cdf0e10cSrcweir 643*cdf0e10cSrcweir case css::rdf::URIs::OWL_COMPLEMENTOF: 644*cdf0e10cSrcweir ns = s_nsOWL; 645*cdf0e10cSrcweir ln = "complementOf"; 646*cdf0e10cSrcweir break; 647*cdf0e10cSrcweir 648*cdf0e10cSrcweir case css::rdf::URIs::OWL_INTERSECTIONOF: 649*cdf0e10cSrcweir ns = s_nsOWL; 650*cdf0e10cSrcweir ln = "intersectionOf"; 651*cdf0e10cSrcweir break; 652*cdf0e10cSrcweir 653*cdf0e10cSrcweir case css::rdf::URIs::OWL_HASVALUE: 654*cdf0e10cSrcweir ns = s_nsOWL; 655*cdf0e10cSrcweir ln = "hasValue"; 656*cdf0e10cSrcweir break; 657*cdf0e10cSrcweir 658*cdf0e10cSrcweir 659*cdf0e10cSrcweir case css::rdf::URIs::PKG_HASPART: 660*cdf0e10cSrcweir ns = s_nsPkg; 661*cdf0e10cSrcweir ln = "hasPart"; 662*cdf0e10cSrcweir break; 663*cdf0e10cSrcweir 664*cdf0e10cSrcweir /* REMOVED 665*cdf0e10cSrcweir case css::rdf::URIs::PKG_IDREF: 666*cdf0e10cSrcweir ns = s_nsPkg; 667*cdf0e10cSrcweir ln = "idref"; 668*cdf0e10cSrcweir break; 669*cdf0e10cSrcweir 670*cdf0e10cSrcweir case css::rdf::URIs::PKG_PATH: 671*cdf0e10cSrcweir ns = s_nsPkg; 672*cdf0e10cSrcweir ln = "path"; 673*cdf0e10cSrcweir break; 674*cdf0e10cSrcweir */ 675*cdf0e10cSrcweir 676*cdf0e10cSrcweir case css::rdf::URIs::PKG_MIMETYPE: 677*cdf0e10cSrcweir ns = s_nsPkg; 678*cdf0e10cSrcweir ln = "mimeType"; 679*cdf0e10cSrcweir break; 680*cdf0e10cSrcweir 681*cdf0e10cSrcweir case css::rdf::URIs::PKG_PACKAGE: 682*cdf0e10cSrcweir ns = s_nsPkg; 683*cdf0e10cSrcweir ln = "Package"; 684*cdf0e10cSrcweir break; 685*cdf0e10cSrcweir 686*cdf0e10cSrcweir case css::rdf::URIs::PKG_ELEMENT: 687*cdf0e10cSrcweir ns = s_nsPkg; 688*cdf0e10cSrcweir ln = "Element"; 689*cdf0e10cSrcweir break; 690*cdf0e10cSrcweir 691*cdf0e10cSrcweir case css::rdf::URIs::PKG_FILE: 692*cdf0e10cSrcweir ns = s_nsPkg; 693*cdf0e10cSrcweir ln = "File"; 694*cdf0e10cSrcweir break; 695*cdf0e10cSrcweir 696*cdf0e10cSrcweir case css::rdf::URIs::PKG_METADATAFILE: 697*cdf0e10cSrcweir ns = s_nsPkg; 698*cdf0e10cSrcweir ln = "MetadataFile"; 699*cdf0e10cSrcweir break; 700*cdf0e10cSrcweir 701*cdf0e10cSrcweir case css::rdf::URIs::PKG_DOCUMENT: 702*cdf0e10cSrcweir ns = s_nsPkg; 703*cdf0e10cSrcweir ln = "Document"; 704*cdf0e10cSrcweir break; 705*cdf0e10cSrcweir 706*cdf0e10cSrcweir case css::rdf::URIs::ODF_PREFIX: 707*cdf0e10cSrcweir ns = s_nsODF; 708*cdf0e10cSrcweir ln = "prefix"; 709*cdf0e10cSrcweir break; 710*cdf0e10cSrcweir 711*cdf0e10cSrcweir case css::rdf::URIs::ODF_SUFFIX: 712*cdf0e10cSrcweir ns = s_nsODF; 713*cdf0e10cSrcweir ln = "suffix"; 714*cdf0e10cSrcweir break; 715*cdf0e10cSrcweir 716*cdf0e10cSrcweir case css::rdf::URIs::ODF_ELEMENT: 717*cdf0e10cSrcweir ns = s_nsODF; 718*cdf0e10cSrcweir ln = "Element"; 719*cdf0e10cSrcweir break; 720*cdf0e10cSrcweir 721*cdf0e10cSrcweir case css::rdf::URIs::ODF_CONTENTFILE: 722*cdf0e10cSrcweir ns = s_nsODF; 723*cdf0e10cSrcweir ln = "ContentFile"; 724*cdf0e10cSrcweir break; 725*cdf0e10cSrcweir 726*cdf0e10cSrcweir case css::rdf::URIs::ODF_STYLESFILE: 727*cdf0e10cSrcweir ns = s_nsODF; 728*cdf0e10cSrcweir ln = "StylesFile"; 729*cdf0e10cSrcweir break; 730*cdf0e10cSrcweir 731*cdf0e10cSrcweir /* REMOVED 732*cdf0e10cSrcweir case css::rdf::URIs::ODF_METADATAFILE: 733*cdf0e10cSrcweir ns = s_nsODF; 734*cdf0e10cSrcweir ln = "MetadataFile"; 735*cdf0e10cSrcweir break; 736*cdf0e10cSrcweir */ 737*cdf0e10cSrcweir 738*cdf0e10cSrcweir default: 739*cdf0e10cSrcweir throw css::lang::IllegalArgumentException( 740*cdf0e10cSrcweir ::rtl::OUString::createFromAscii("CURI::initialize: " 741*cdf0e10cSrcweir "invalid URIs constant argument"), *this, 0); 742*cdf0e10cSrcweir } 743*cdf0e10cSrcweir m_Namespace = ::rtl::OUString::createFromAscii(ns).intern(); 744*cdf0e10cSrcweir m_LocalName = ::rtl::OUString::createFromAscii(ln).intern(); 745*cdf0e10cSrcweir return; 746*cdf0e10cSrcweir } 747*cdf0e10cSrcweir 748*cdf0e10cSrcweir // ::com::sun::star::lang::XInitialization: 749*cdf0e10cSrcweir void SAL_CALL CURI::initialize(const css::uno::Sequence< ::com::sun::star::uno::Any > & aArguments) throw (css::uno::RuntimeException, css::uno::Exception) 750*cdf0e10cSrcweir { 751*cdf0e10cSrcweir sal_Int32 len = aArguments.getLength(); 752*cdf0e10cSrcweir if ((len < 1) || (len > 2)) { 753*cdf0e10cSrcweir throw css::lang::IllegalArgumentException( 754*cdf0e10cSrcweir ::rtl::OUString::createFromAscii("CURI::initialize: " 755*cdf0e10cSrcweir "must give 1 or 2 argument(s)"), *this, 2); 756*cdf0e10cSrcweir } 757*cdf0e10cSrcweir 758*cdf0e10cSrcweir sal_Int16 arg(0); 759*cdf0e10cSrcweir ::rtl::OUString arg0; 760*cdf0e10cSrcweir ::rtl::OUString arg1; 761*cdf0e10cSrcweir if ((aArguments[0] >>= arg)) { 762*cdf0e10cSrcweir // integer argument: constant from rdf::URIs 763*cdf0e10cSrcweir if (len != 1) { 764*cdf0e10cSrcweir throw css::lang::IllegalArgumentException( 765*cdf0e10cSrcweir ::rtl::OUString::createFromAscii("CURI::initialize: " 766*cdf0e10cSrcweir "must give 1 int argument"), *this, 1); 767*cdf0e10cSrcweir } 768*cdf0e10cSrcweir initFromConstant(arg); 769*cdf0e10cSrcweir return; 770*cdf0e10cSrcweir } 771*cdf0e10cSrcweir if (!(aArguments[0] >>= arg0)) { 772*cdf0e10cSrcweir throw css::lang::IllegalArgumentException( 773*cdf0e10cSrcweir ::rtl::OUString::createFromAscii("CURI::initialize: " 774*cdf0e10cSrcweir "argument must be string or short"), *this, 0); 775*cdf0e10cSrcweir } 776*cdf0e10cSrcweir if (len > 1) { 777*cdf0e10cSrcweir if (!(aArguments[1] >>= arg1)) { 778*cdf0e10cSrcweir throw css::lang::IllegalArgumentException( 779*cdf0e10cSrcweir ::rtl::OUString::createFromAscii("CURI::initialize: " 780*cdf0e10cSrcweir "argument must be string"), *this, 1); 781*cdf0e10cSrcweir } 782*cdf0e10cSrcweir // just append the parameters and then split them again; seems simplest 783*cdf0e10cSrcweir arg0 = arg0 + arg1; 784*cdf0e10cSrcweir arg1 = ::rtl::OUString(); 785*cdf0e10cSrcweir } 786*cdf0e10cSrcweir 787*cdf0e10cSrcweir // split parameter 788*cdf0e10cSrcweir sal_Int32 idx; 789*cdf0e10cSrcweir if ( ((idx = arg0.indexOf ('#')) >= 0) 790*cdf0e10cSrcweir || ((idx = arg0.lastIndexOf('/')) >= 0) 791*cdf0e10cSrcweir || ((idx = arg0.lastIndexOf(':')) >= 0)) 792*cdf0e10cSrcweir { 793*cdf0e10cSrcweir 794*cdf0e10cSrcweir if (idx < arg0.getLength() - 1) { 795*cdf0e10cSrcweir arg1 = arg0.copy(idx+1); 796*cdf0e10cSrcweir arg0 = arg0.copy(0, idx+1); 797*cdf0e10cSrcweir } 798*cdf0e10cSrcweir } else { 799*cdf0e10cSrcweir throw css::lang::IllegalArgumentException( 800*cdf0e10cSrcweir ::rtl::OUString::createFromAscii("CURI::initialize: " 801*cdf0e10cSrcweir "argument not splittable: no separator [#/:]"), *this, 0); 802*cdf0e10cSrcweir } 803*cdf0e10cSrcweir 804*cdf0e10cSrcweir //FIXME: what is legal? 805*cdf0e10cSrcweir if (arg0.getLength() > 0) { 806*cdf0e10cSrcweir m_Namespace = arg0; 807*cdf0e10cSrcweir } else { 808*cdf0e10cSrcweir throw css::lang::IllegalArgumentException( 809*cdf0e10cSrcweir ::rtl::OUString::createFromAscii("CURI::initialize: " 810*cdf0e10cSrcweir "argument is not valid namespace"), *this, 0); 811*cdf0e10cSrcweir } 812*cdf0e10cSrcweir //FIXME: what is legal? 813*cdf0e10cSrcweir if (true) { 814*cdf0e10cSrcweir m_LocalName = arg1; 815*cdf0e10cSrcweir } else { 816*cdf0e10cSrcweir throw css::lang::IllegalArgumentException( 817*cdf0e10cSrcweir ::rtl::OUString::createFromAscii("CURI::initialize: " 818*cdf0e10cSrcweir "argument is not valid local name"), *this, 1); 819*cdf0e10cSrcweir } 820*cdf0e10cSrcweir } 821*cdf0e10cSrcweir 822*cdf0e10cSrcweir // ::com::sun::star::rdf::XNode: 823*cdf0e10cSrcweir ::rtl::OUString SAL_CALL CURI::getStringValue() throw (css::uno::RuntimeException) 824*cdf0e10cSrcweir { 825*cdf0e10cSrcweir return m_Namespace + m_LocalName; 826*cdf0e10cSrcweir } 827*cdf0e10cSrcweir 828*cdf0e10cSrcweir // ::com::sun::star::rdf::XURI: 829*cdf0e10cSrcweir ::rtl::OUString SAL_CALL CURI::getNamespace() throw (css::uno::RuntimeException) 830*cdf0e10cSrcweir { 831*cdf0e10cSrcweir return m_Namespace; 832*cdf0e10cSrcweir } 833*cdf0e10cSrcweir 834*cdf0e10cSrcweir ::rtl::OUString SAL_CALL CURI::getLocalName() throw (css::uno::RuntimeException) 835*cdf0e10cSrcweir { 836*cdf0e10cSrcweir return m_LocalName; 837*cdf0e10cSrcweir } 838*cdf0e10cSrcweir 839*cdf0e10cSrcweir } // closing anonymous implementation namespace 840*cdf0e10cSrcweir 841*cdf0e10cSrcweir 842*cdf0e10cSrcweir 843*cdf0e10cSrcweir // component helper namespace 844*cdf0e10cSrcweir namespace comp_CURI { 845*cdf0e10cSrcweir 846*cdf0e10cSrcweir ::rtl::OUString SAL_CALL _getImplementationName() { 847*cdf0e10cSrcweir return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( 848*cdf0e10cSrcweir "CURI")); 849*cdf0e10cSrcweir } 850*cdf0e10cSrcweir 851*cdf0e10cSrcweir css::uno::Sequence< ::rtl::OUString > SAL_CALL _getSupportedServiceNames() 852*cdf0e10cSrcweir { 853*cdf0e10cSrcweir css::uno::Sequence< ::rtl::OUString > s(1); 854*cdf0e10cSrcweir s[0] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( 855*cdf0e10cSrcweir "com.sun.star.rdf.URI")); 856*cdf0e10cSrcweir return s; 857*cdf0e10cSrcweir } 858*cdf0e10cSrcweir 859*cdf0e10cSrcweir css::uno::Reference< css::uno::XInterface > SAL_CALL _create( 860*cdf0e10cSrcweir const css::uno::Reference< css::uno::XComponentContext > & context) 861*cdf0e10cSrcweir SAL_THROW((css::uno::Exception)) 862*cdf0e10cSrcweir { 863*cdf0e10cSrcweir return static_cast< ::cppu::OWeakObject * >(new CURI(context)); 864*cdf0e10cSrcweir } 865*cdf0e10cSrcweir 866*cdf0e10cSrcweir } // closing component helper namespace 867*cdf0e10cSrcweir 868