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