summaryrefslogtreecommitdiffstats
path: root/udkapi/com/sun/star/reflection
diff options
context:
space:
mode:
Diffstat (limited to 'udkapi/com/sun/star/reflection')
-rw-r--r--udkapi/com/sun/star/reflection/CoreReflection.idl51
-rw-r--r--udkapi/com/sun/star/reflection/FieldAccessMode.idl52
-rw-r--r--udkapi/com/sun/star/reflection/InvalidTypeNameException.idl44
-rw-r--r--udkapi/com/sun/star/reflection/InvocationTargetException.idl43
-rw-r--r--udkapi/com/sun/star/reflection/MethodMode.idl47
-rw-r--r--udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl43
-rw-r--r--udkapi/com/sun/star/reflection/ParamInfo.idl52
-rw-r--r--udkapi/com/sun/star/reflection/ParamMode.idl51
-rw-r--r--udkapi/com/sun/star/reflection/ProxyFactory.idl54
-rw-r--r--udkapi/com/sun/star/reflection/TypeDescriptionManager.idl105
-rw-r--r--udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl79
-rw-r--r--udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl50
-rw-r--r--udkapi/com/sun/star/reflection/XArrayTypeDescription.idl62
-rw-r--r--udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl71
-rw-r--r--udkapi/com/sun/star/reflection/XConstantTypeDescription.idl69
-rw-r--r--udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl51
-rw-r--r--udkapi/com/sun/star/reflection/XEnumTypeDescription.idl60
-rw-r--r--udkapi/com/sun/star/reflection/XIdlArray.idl116
-rw-r--r--udkapi/com/sun/star/reflection/XIdlClass.idl197
-rw-r--r--udkapi/com/sun/star/reflection/XIdlClassProvider.idl45
-rw-r--r--udkapi/com/sun/star/reflection/XIdlField.idl61
-rw-r--r--udkapi/com/sun/star/reflection/XIdlField2.idl109
-rw-r--r--udkapi/com/sun/star/reflection/XIdlMember.idl54
-rw-r--r--udkapi/com/sun/star/reflection/XIdlMethod.idl119
-rw-r--r--udkapi/com/sun/star/reflection/XIdlReflection.idl67
-rw-r--r--udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl49
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl61
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl73
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl57
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl72
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl78
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl68
-rw-r--r--udkapi/com/sun/star/reflection/XMethodParameter.idl82
-rw-r--r--udkapi/com/sun/star/reflection/XModuleTypeDescription.idl50
-rw-r--r--udkapi/com/sun/star/reflection/XParameter.idl53
-rw-r--r--udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl56
-rw-r--r--udkapi/com/sun/star/reflection/XProxyFactory.idl65
-rw-r--r--udkapi/com/sun/star/reflection/XPublished.idl103
-rw-r--r--udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl77
-rw-r--r--udkapi/com/sun/star/reflection/XServiceTypeDescription.idl94
-rw-r--r--udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl74
-rw-r--r--udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl58
-rw-r--r--udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl64
-rw-r--r--udkapi/com/sun/star/reflection/XStructTypeDescription.idl84
-rw-r--r--udkapi/com/sun/star/reflection/XTypeDescription.idl69
-rw-r--r--udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl54
-rw-r--r--udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl164
-rw-r--r--udkapi/com/sun/star/reflection/XUnionTypeDescription.idl83
-rw-r--r--udkapi/com/sun/star/reflection/theCoreReflection.idl37
49 files changed, 3477 insertions, 0 deletions
diff --git a/udkapi/com/sun/star/reflection/CoreReflection.idl b/udkapi/com/sun/star/reflection/CoreReflection.idl
new file mode 100644
index 000000000..7d2cddee3
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/CoreReflection.idl
@@ -0,0 +1,51 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_CoreReflection_idl__
+#define __com_sun_star_reflection_CoreReflection_idl__
+
+#include <com/sun/star/reflection/XIdlReflection.idl>
+#include <com/sun/star/lang/XComponent.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** This service is the implementation of the reflection API.
+ You can obtain information about types, modify values of reflected types
+ and call on objects.
+
+ @deprecated Rather use the 'theCoreReflection' singleton.
+*/
+published service CoreReflection
+{
+ /** Interface to reflect types.
+ */
+ interface com::sun::star::reflection::XIdlReflection;
+
+ /** CoreReflection has to be disposed if possible
+ */
+ [optional] interface com::sun::star::lang::XComponent;
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/FieldAccessMode.idl b/udkapi/com/sun/star/reflection/FieldAccessMode.idl
new file mode 100644
index 000000000..e48e04675
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/FieldAccessMode.idl
@@ -0,0 +1,52 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_FieldAccessMode_idl__
+#define __com_sun_star_reflection_FieldAccessMode_idl__
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Denotes the access possibilities via XIdlField2 to an
+ interface attribute, enum or compound type (struct/exception).
+*/
+published enum FieldAccessMode
+{
+ /** readable and writeable
+ */
+ READWRITE,
+ /** readable only
+ */
+ READONLY,
+ /** writeable only
+ */
+ WRITEONLY,
+ /** Deprecated. Not used anymore.
+ @deprecated
+ */
+ CONST
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/InvalidTypeNameException.idl b/udkapi/com/sun/star/reflection/InvalidTypeNameException.idl
new file mode 100644
index 000000000..c74f28e8c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/InvalidTypeNameException.idl
@@ -0,0 +1,44 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_InvalidTypeNameException_idl__
+#define __com_sun_star_reflection_InvalidTypeNameException_idl__
+
+#include <com/sun/star/uno/Exception.idl>
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** thrown in case that a certain type name does exist, but does not meet
+ some other criteria.
+
+ @since OOo 1.1.2
+ */
+published exception InvalidTypeNameException : com::sun::star::uno::Exception
+{
+};
+
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/InvocationTargetException.idl b/udkapi/com/sun/star/reflection/InvocationTargetException.idl
new file mode 100644
index 000000000..ce300f103
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/InvocationTargetException.idl
@@ -0,0 +1,43 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_InvocationTargetException_idl__
+#define __com_sun_star_reflection_InvocationTargetException_idl__
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** This exception denotes a checked exception (wrapping an originating exception)
+ and may be thrown upon using invocation API.
+
+ @see XIdlMethod
+*/
+published exception InvocationTargetException: com::sun::star::lang::WrappedTargetException
+{
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/MethodMode.idl b/udkapi/com/sun/star/reflection/MethodMode.idl
new file mode 100644
index 000000000..f0368c145
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/MethodMode.idl
@@ -0,0 +1,47 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_MethodMode_idl__
+#define __com_sun_star_reflection_MethodMode_idl__
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** MethodMode denotes the mode in which method calls are run, i.e. either oneway or
+ twoway. Mode oneway denotes that a call may be run asynchronously
+ (thus having no out parameters or return value)
+*/
+published enum MethodMode
+{
+ /** method may be run asynchronously
+ */
+ ONEWAY,
+
+ /** method is run The
+ */
+ TWOWAY
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl b/udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl
new file mode 100644
index 000000000..980487d4f
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl
@@ -0,0 +1,43 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_NoSuchTypeNameException_idl__
+#define __com_sun_star_reflection_NoSuchTypeNameException_idl__
+
+#include <com/sun/star/uno/Exception.idl>
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** thrown in case that a certain type name does not exist.
+
+ @since OOo 1.1.2
+ */
+published exception NoSuchTypeNameException : com::sun::star::uno::Exception
+{
+};
+
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/ParamInfo.idl b/udkapi/com/sun/star/reflection/ParamInfo.idl
new file mode 100644
index 000000000..73167f074
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/ParamInfo.idl
@@ -0,0 +1,52 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_ParamInfo_idl__
+#define __com_sun_star_reflection_ParamInfo_idl__
+
+#include <com/sun/star/reflection/ParamMode.idl>
+
+
+ module com { module sun { module star { module reflection {
+
+ published interface XIdlClass;
+
+
+/** Provides information about a formal parameter of a method.
+*/
+published struct ParamInfo
+{
+ /** name of the parameter
+ */
+ string aName;
+
+ /** parameter mode: in, out, inout
+ */
+ ParamMode aMode;
+
+ /** formal type of the parameter
+ */
+ XIdlClass aType;
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/ParamMode.idl b/udkapi/com/sun/star/reflection/ParamMode.idl
new file mode 100644
index 000000000..71924bb16
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/ParamMode.idl
@@ -0,0 +1,51 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_ParamMode_idl__
+#define __com_sun_star_reflection_ParamMode_idl__
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** The parameter mode denotes the transfer between caller and callee
+ of a method.
+*/
+published enum ParamMode
+{
+ /** parameter serves as pure input for a called method
+ */
+ IN,
+
+ /** parameter serves as pure output for the callee (in addition to the return value)
+ */
+ OUT,
+
+ /** parameter serves as input as well as output; data can transferred in both directions
+ */
+ INOUT
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/ProxyFactory.idl b/udkapi/com/sun/star/reflection/ProxyFactory.idl
new file mode 100644
index 000000000..f838eeb34
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/ProxyFactory.idl
@@ -0,0 +1,54 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_ProxyFactory_idl__
+#define __com_sun_star_reflection_ProxyFactory_idl__
+
+#include <com/sun/star/reflection/XProxyFactory.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Service to create proxy objects acting on behalf of a given
+ target object.<br>
+ A proxy delegates calls to a given target object.
+ In addition, it is aggregatable, thus it is possible to
+ intercept calls on the proxy's interfaces.
+
+ @attention
+ A proxy object is UNO conform, but does NOT provide original target
+ interfaces on queryInterface() calls. This may lead to problems
+ regarding object identity, e.g. when dealing with listener proxies.
+
+ @deprecated
+ Aggregation will no longer be supported as a high-level concept of UNO.
+ You may still have the option to implement a UNO object consisting of
+ several single objects in your specific programming language, though this
+ depends on your programming language.
+ Thus this service is deprecated, too.
+*/
+published service ProxyFactory : XProxyFactory;
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/TypeDescriptionManager.idl b/udkapi/com/sun/star/reflection/TypeDescriptionManager.idl
new file mode 100644
index 000000000..e81fe0b78
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/TypeDescriptionManager.idl
@@ -0,0 +1,105 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_TypeDescriptionManager_idl__
+#define __com_sun_star_reflection_TypeDescriptionManager_idl__
+
+#include <com/sun/star/container/XHierarchicalNameAccess.idl>
+#include <com/sun/star/container/XSet.idl>
+#include <com/sun/star/lang/XInitialization.idl>
+#include <com/sun/star/lang/XComponent.idl>
+#include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl>
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** This service manages type descriptions and acts as a central access point
+ to every type description. It delegates calls for demanded types to
+ subsequent
+ com::sun::star::reflection::TypeDescriptionProviders
+ and may cache type descriptions.<br>
+ Using cppuhelper's bootstrapping routines bootstrapping an initial
+ component context, there is a singleton accessible via key
+ "/singletons/com.sun.star.reflection.theTypeDescriptionManager".
+ This singleton object is hooked into the C UNO runtime typelib and
+ lives until the context is shut down.<br>
+
+ @see com::sun::star::reflection::TypeDescriptionProvider
+ @see com::sun::star::reflection::XTypeDescription
+*/
+published service TypeDescriptionManager
+{
+ /** Interface to retrieve type descriptions.
+
+ In addition to the semantics specified for the corresponding interface
+ of the TypeDescriptionProvider service (which changed
+ slightly for LibreOffice&nbsp;4.1; see there), this interface allows to
+ retrieve the following entities:
+ <ul>
+ <li>The simple types are accessible via <code>"void"</code>,
+ <code>"boolean"</code>, <code>"byte"</code>, <code>"short"</code>,
+ <code>"unsigned short"</code>, <code>"long"</code>, <code>"unsigned
+ long"</code>, <code>"hyper"</code>, <code>"unsigned hyper"</code>,
+ <code>"float"</code>, <code>"double"</code>, <code>"char"</code>,
+ <code>"string"</code>, <code>"type"</code>, and
+ <code>"any"</code>.</li>
+
+ <li>Sequence types are accessible via
+ <code>"[]<var>ComponentType</var>"</code></li>
+
+ <li>Instantiated polymorphic struct types are accessible via
+ <code>"<var>StructType</var>&lt;<!--
+ --><var>Parameter</var><sub>1</sub>,&hellip;,<!--
+ --><var>Parameter</var><sub><var>n</var></sub>&gt;"</code>.</li>
+
+ <li>Members of interface types are accessible via
+ <code>"<var>InterfaceType</var>::<var>Member</var>"</code>.</li>
+ </ul>
+
+ <p>Even though the name of this interface suggests that the used type
+ names are hierarchical, this doesn't need to be the case. (For example, consider
+ the names of instantiated polymorphic struct types, like
+ <code>"Struct&lt;long&gt;"</code>.)</p>
+ */
+ interface com::sun::star::container::XHierarchicalNameAccess;
+
+ /** You can manually add or remove a providers via this interface.
+ */
+ interface com::sun::star::container::XSet;
+
+ /** Interface to signal shutdown to the manager.<br>
+ This signals all providers to shut down, because usually each provider
+ references its manager, listening for disposing events.
+ */
+ [optional] interface com::sun::star::lang::XComponent;
+
+ /** Interface for creating enumerations for type descriptions supported
+ by this TypeDescriptionManager
+
+ @since OOo 1.1.2
+ */
+ [optional] interface XTypeDescriptionEnumerationAccess;
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl b/udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl
new file mode 100644
index 000000000..7049a4298
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl
@@ -0,0 +1,79 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_TypeDescriptionProvider_idl__
+#define __com_sun_star_reflection_TypeDescriptionProvider_idl__
+
+#include <com/sun/star/container/XHierarchicalNameAccess.idl>
+#include <com/sun/star/lang/XComponent.idl>
+#include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl>
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** This service provides type descriptions, i.e. concrete
+ service implementations read from source like the persistent registry
+ database format.<br>
+
+ This old-style service definition mostly serves documentation purposes. It
+ is not intended that an implementation of this service can be obtained at
+ the global service manager using this service identifier.
+
+ @see com::sun::star::reflection::TypeDescriptionManager
+ @see com::sun::star::reflection::XTypeDescription
+*/
+published service TypeDescriptionProvider
+{
+ /** Interface to retrieve type descriptions.
+
+ <p>Names are given in dotted notation, for example
+ <code>"com.sun.star.uno.XInterface"</code>.</p>
+
+ </p>The returned values are generally non-null references of type
+ XTypeDescription. However, before LibreOffice&nbsp;4.1,
+ the value returned for a UNO constant was the value of the constant,
+ rather than a reference to an XConstantTypeDescription
+ object. (It also appears that some implementations return values for
+ individual UNO enum members, e.g.
+ <code>"com.sun.star.uno.TypeClass.VOID"</code>, though this is probably
+ best treated as an implementation obscurity.)</p>
+ */
+ interface com::sun::star::container::XHierarchicalNameAccess;
+
+ /** Interface to signal shutdown to the provider.<br>
+ This has to be done manually, because usually each provider references
+ its manager (which may implement type caching) for late resolution of
+ partial types (e.g. parameter types).
+ */
+ interface com::sun::star::lang::XComponent;
+
+ /** Interface for creating enumerations for type descriptions supported
+ by this TypeDescriptionProvider
+
+ @since OOo 1.1.2
+ */
+ [optional] interface XTypeDescriptionEnumerationAccess;
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl b/udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl
new file mode 100644
index 000000000..080c23c12
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl
@@ -0,0 +1,50 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_TypeDescriptionSearchDepth_idl__
+#define __com_sun_star_reflection_TypeDescriptionSearchDepth_idl__
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Defines depths for searching through type description collections.
+
+ @since OOo 1.1.2
+ */
+published enum TypeDescriptionSearchDepth
+{
+ /** Infinite search depth. Search through all children including direct
+ children, grand children, grand children's children, ...
+ */
+ INFINITE = -1,
+
+ /** Search only through direct children.
+ */
+ ONE = 1
+};
+
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XArrayTypeDescription.idl b/udkapi/com/sun/star/reflection/XArrayTypeDescription.idl
new file mode 100644
index 000000000..ff5673df1
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XArrayTypeDescription.idl
@@ -0,0 +1,62 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XArrayTypeDescription_idl__
+#define __com_sun_star_reflection_XArrayTypeDescription_idl__
+
+#include <com/sun/star/reflection/XTypeDescription.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Deprecated, UNOIDL does not have an array concept.
+
+ @deprecated
+*/
+published interface XArrayTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the element type of the array.
+
+ @return
+ element type of the array
+ */
+ com::sun::star::reflection::XTypeDescription getType();
+
+ /** Returns the number of dimensions of the array.
+
+ @return
+ dimension of the array
+ */
+ long getNumberOfDimensions();
+
+ /** Returns dimensions of array (same length as getNumberOfDimensions()).
+
+ @return
+ dimensions of array
+ */
+ sequence< long > getDimensions();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl b/udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl
new file mode 100644
index 000000000..1fde54692
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl
@@ -0,0 +1,71 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XCompoundTypeDescription_idl__
+#define __com_sun_star_reflection_XCompoundTypeDescription_idl__
+
+#include <com/sun/star/reflection/XTypeDescription.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a compound type, i.e. a struct or exception.
+
+ <p>For struct types, this type is superseded by
+ XStructTypeDescription, which supports polymorphic struct
+ types.</p>
+*/
+published interface XCompoundTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the type of the base type of the compound type.
+ If the compound does not have a base type, the method returns a null interface.
+
+ @return
+ base interface or null
+ */
+ com::sun::star::reflection::XTypeDescription getBaseType();
+
+ /** Returns the member types of the struct/exception in IDL declaration order.
+
+ <p>For a polymorphic struct type template, a member of parameterized
+ type is represented by an instance of
+ com::sun::star::reflection::XTypeDescription whose
+ type class is <code>UNKNOWN</code> and whose name is the name of the
+ type parameter.</p>
+
+ @return
+ members of struct/exception
+ */
+ sequence<com::sun::star::reflection::XTypeDescription> getMemberTypes();
+
+ /** Returns the member names of the struct/exception in IDL declaration order.
+
+ @return
+ members names of struct/exception
+ */
+ sequence<string> getMemberNames();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XConstantTypeDescription.idl b/udkapi/com/sun/star/reflection/XConstantTypeDescription.idl
new file mode 100644
index 000000000..c7905380a
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XConstantTypeDescription.idl
@@ -0,0 +1,69 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XConstantTypeDescription_idl__
+#define __com_sun_star_reflection_XConstantTypeDescription_idl__
+
+#include <com/sun/star/reflection/XTypeDescription.idl>
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a constant.
+
+ <p>The type class of this type is
+ com::sun::star::uno::TypeClass::CONSTANT.
+
+ <p>Constants may be contained in constants groups and modules.
+
+ @see XModuleTypeDescription
+ @see XConstantsTypeDescription
+
+ @since OOo 1.1.2
+
+ */
+published interface XConstantTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** @return the value of the constant.
+
+ <p>Following types are allowed for constants:
+ <ul>
+ <li>boolean
+ <li>byte
+ <li>short
+ <li>unsigned short
+ <li>long
+ <li>unsigned long
+ <li>hyper
+ <li>unsigned hyper
+ <li>float
+ <li>double
+ </ul>
+ */
+ any getConstantValue();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl b/udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl
new file mode 100644
index 000000000..e1bfb4346
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl
@@ -0,0 +1,51 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XConstantsTypeDescription_idl__
+#define __com_sun_star_reflection_XConstantsTypeDescription_idl__
+
+#include <com/sun/star/reflection/XConstantTypeDescription.idl>
+#include <com/sun/star/reflection/XTypeDescription.idl>
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a constants group.
+
+ <p>The type class of this type is
+ com::sun::star::uno::TypeClass::CONSTANTS.
+
+ @since OOo 1.1.2
+ */
+published interface XConstantsTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the constants defined for this constants group.
+
+ @return a sequence containing constants descriptions.
+ */
+ sequence< XConstantTypeDescription > getConstants();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl b/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl
new file mode 100644
index 000000000..d01574342
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl
@@ -0,0 +1,60 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XEnumTypeDescription_idl__
+#define __com_sun_star_reflection_XEnumTypeDescription_idl__
+
+#include <com/sun/star/reflection/XTypeDescription.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects an enum type.
+*/
+published interface XEnumTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the default enum value.
+
+ @return
+ default enum value
+ */
+ long getDefaultEnumValue();
+
+ /** Returns the enum member values.
+
+ @return
+ enum member values
+ */
+ sequence<string> getEnumNames();
+
+ /** Returns the enum member names.
+
+ @return
+ enum member names
+ */
+ sequence<long> getEnumValues();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlArray.idl b/udkapi/com/sun/star/reflection/XIdlArray.idl
new file mode 100644
index 000000000..6f60069d6
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlArray.idl
@@ -0,0 +1,116 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XIdlArray_idl__
+#define __com_sun_star_reflection_XIdlArray_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+#include <com/sun/star/lang/ArrayIndexOutOfBoundsException.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects an IDL sequence and provides dynamic access to instances of
+ that sequence.
+ This interface supports widening conversion when getting or setting elements.
+
+ @attention
+ Although the name of this interface denotes arrays,
+ sequences are meant. Don't be obfuscated, arrays are not supported by UNO!
+*/
+published interface XIdlArray: com::sun::star::uno::XInterface
+{
+ /** Reallocates the length of the sequence instance.
+
+ @param array
+ sequence instance
+ @param length
+ new length of sequence
+ */
+ void realloc(
+ [inout] any array,
+ [in] long length )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Returns the length of the given sequence.
+
+ @param array
+ sequence instance
+ @return
+ length of sequence
+ */
+ long getLen( [in] any array )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Returns element at given index.
+
+ @param aArray
+ sequence instance
+ @param nIndex
+ index
+ @return
+ value
+
+ @throws IllegalArgumentException
+ if the specified object is not a sequence or if the specified object is null
+
+ @throws ArrayIndexOutOfBoundsException
+ if the specified index argument is negative, or if it is greater than or equal to the
+ length of the specified sequence.
+ */
+ any get(
+ [in] any aArray,
+ [in] long nIndex )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::ArrayIndexOutOfBoundsException );
+
+ /** Sets a new value at given index.
+
+ @param aArray
+ sequence instance
+ @param nIndex
+ index
+ @param aNewValue
+ new value to be set
+
+ @throws IllegalArgumentException
+ if the specified object is not a sequence or if the specified object is null
+
+ @throws ArrayIndexOutOfBoundsException
+ if the specified index argument is negative, or if it is greater than or equal to the
+ length of the specified sequence.
+ */
+ void set(
+ [inout] any aArray,
+ [in] long nIndex,
+ [in] any aNewValue )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::ArrayIndexOutOfBoundsException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlClass.idl b/udkapi/com/sun/star/reflection/XIdlClass.idl
new file mode 100644
index 000000000..d6c43861e
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlClass.idl
@@ -0,0 +1,197 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XIdlClass_idl__
+#define __com_sun_star_reflection_XIdlClass_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/uno/TypeClass.idl>
+
+#include <com/sun/star/uno/Uik.idl>
+
+
+module com { module sun { module star { module reflection {
+
+ published interface XIdlField;
+ published interface XIdlMethod;
+ published interface XIdlArray;
+
+
+/** Provides information reflecting a UNO type.
+*/
+published interface XIdlClass: com::sun::star::uno::XInterface
+{
+ /** Deprecated. Do not call.
+ @deprecated
+ */
+ sequence<XIdlClass> getClasses();
+ /** Deprecated. Do not call.
+ @deprecated
+ */
+ XIdlClass getClass( [in] string aName );
+
+ /** Tests whether two reflecting objects reflect the same type.
+
+ @returns
+ true, if the objects reflect the same type, false otherwise.
+ */
+ boolean equals( [in] XIdlClass Type );
+
+ /** Tests whether values of this reflected type are assignable from values
+ of a second one (<code>xType</code>).
+
+ @param xType
+ another reflected type
+ @return
+ true, if values of this reflected type are assignable
+ from values of <code>xType</code>.
+ */
+ boolean isAssignableFrom( [in] XIdlClass xType );
+
+ /** Returns the com::sun::star::uno::TypeClass
+ of the reflected type.
+
+ @returns
+ type class of the reflected type.
+ */
+ com::sun::star::uno::TypeClass getTypeClass();
+
+ /** Returns the fully-qualified name of the reflected type.
+
+ @returns
+ the fully-qualified name of the type
+ */
+ string getName();
+
+ /** Deprecated. Do not call.
+
+ @deprecated
+ */
+ com::sun::star::uno::Uik getUik();
+
+ /** If the reflected type is an interface, then the returned
+ sequence of XIdlClass reflect the base interfaces.
+ <br>
+ If the reflected type is not an interface or an interface that is
+ not derived from another, then an empty sequence is returned.
+
+ @return
+ all base interfaces of an interface type or an empty sequence.
+ */
+ sequence<XIdlClass> getSuperclasses();
+
+ /** Deprecated. Do not call.
+ @deprecated
+ */
+ sequence<XIdlClass> getInterfaces();
+
+ /** If the reflected type is an array or sequence, then this method
+ returns a XIdlClass interface reflecting
+ the element.
+
+ @return
+ reflection interface of the element type of an array or
+ sequence type (null-reference otherwise).
+ */
+ XIdlClass getComponentType();
+
+ /** If the reflected type is an interface, struct or union, then you
+ get a XIdlField interface reflecting the demanded
+ field (/interface attribute) by name.
+ <br>
+ If the reflected type is not an interface, struct or union or the
+ interface, struct or union does not have a field (/interface attribute)
+ with the demanded name, then a null-reference is returned.
+
+ @param aName
+ name of the demanded field reflection
+ @return
+ demanded field (/interface attribute) reflection (or null-reference)
+ */
+ XIdlField getField( [in] string aName );
+
+ /** If the reflected type is an interface, struct or union, then you
+ get a sequence of XIdlField interfaces reflecting all fields
+ (/interface attributes). This also includes all inherited
+ fields (/interface attributes) of the interface, struct of union.
+ <br>
+ If the reflected type is not an interface, struct or union or the
+ interface, struct or union does not have any field (/interface attribute),
+ then an empty sequence is returned.
+
+ @return
+ all field (/interface attribute) reflections (or empty sequence)
+ */
+ sequence<XIdlField> getFields();
+
+ /** If the reflected type is an interface, then you get
+ a XIdlMethod interface reflecting the demanded method by name.
+ <br>
+ If the reflected type is not an interface or the interface does not have
+ a method with the demanded name (including inherited methods),
+ then a null-reference is returned.
+
+ @param aName
+ name of demanded method reflection
+ @return
+ demanded method reflection (or null-reference)
+ */
+ XIdlMethod getMethod( [in] string aName );
+
+ /** If the reflected type is an interface, then you get
+ a sequence of XIdlMethod interfaces reflecting all methods
+ of the interface. This also includes the inherited methods of the interface.
+ <br>
+ If the reflected type is not an interface or the interface
+ does not have any methods, then a null-reference is returned.
+
+ @return
+ all method reflections (or empty sequence)
+ */
+ sequence<XIdlMethod> getMethods();
+
+ /** If the reflected type is an array, then you get
+ a XIdlArray interface to modify instances of the array type.
+ <br>
+ If the reflected type is not an array, then a null-reference is returned.
+
+ @return
+ interface to modify array instances (or null-reference)
+ */
+ XIdlArray getArray();
+
+ /** This method creates instances of the reflected type.
+
+ @attention
+ Instances of type <code>any</code> can not be passed using an <code>any</code>, because
+ anys cannot be nested. So if the reflected type is an <code>any</code>, then the
+ returned value is empty.
+
+ @param obj
+ pure out parameter to pass the created instance
+ */
+ void createObject( [out] any obj );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlClassProvider.idl b/udkapi/com/sun/star/reflection/XIdlClassProvider.idl
new file mode 100644
index 000000000..97ee21dc4
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlClassProvider.idl
@@ -0,0 +1,45 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XIdlClassProvider_idl__
+#define __com_sun_star_reflection_XIdlClassProvider_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/reflection/XIdlClass.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Deprecated interface. Do not use anymore.
+
+ @deprecated
+*/
+published interface XIdlClassProvider: com::sun::star::uno::XInterface
+{
+ sequence<com::sun::star::reflection::XIdlClass> getIdlClasses();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlField.idl b/udkapi/com/sun/star/reflection/XIdlField.idl
new file mode 100644
index 000000000..79540f533
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlField.idl
@@ -0,0 +1,61 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XIdlField_idl__
+#define __com_sun_star_reflection_XIdlField_idl__
+
+#include <com/sun/star/reflection/XIdlMember.idl>
+
+#include <com/sun/star/reflection/XIdlClass.idl>
+
+#include <com/sun/star/reflection/FieldAccessMode.idl>
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+#include <com/sun/star/lang/IllegalAccessException.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Deprecated. Use com::sun::star::reflection::XIdlField2
+ instead.
+
+ @deprecated
+*/
+published interface XIdlField: com::sun::star::reflection::XIdlMember
+{
+ com::sun::star::reflection::XIdlClass getType();
+ com::sun::star::reflection::FieldAccessMode getAccessMode();
+ any get(
+ [in] any obj )
+ raises( com::sun::star::lang::IllegalArgumentException );
+ void set(
+ [in] any obj,
+ [in] any value )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::IllegalAccessException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlField2.idl b/udkapi/com/sun/star/reflection/XIdlField2.idl
new file mode 100644
index 000000000..4f21b6ab7
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlField2.idl
@@ -0,0 +1,109 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XIdlField2_idl__
+#define __com_sun_star_reflection_XIdlField2_idl__
+
+#include <com/sun/star/reflection/XIdlMember.idl>
+
+#include <com/sun/star/reflection/XIdlClass.idl>
+
+#include <com/sun/star/reflection/FieldAccessMode.idl>
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+#include <com/sun/star/lang/IllegalAccessException.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects an IDL interface attribute, enum or compound type
+ (i.e. struct/exception) member.
+*/
+published interface XIdlField2: com::sun::star::reflection::XIdlMember
+{
+ /** Returns the type of the field.
+
+ @return
+ type of the field
+ */
+ com::sun::star::reflection::XIdlClass getType();
+
+ /** Returns the access mode of the field, i.e. read-write, read-only or
+ write-only (access mode "const" is deprecated).
+
+ @return
+ access mode of the field
+ */
+ com::sun::star::reflection::FieldAccessMode getAccessMode();
+
+ /** Gets the value of the reflected field from the given object,
+ i.e. an interface, enum or compound type (struct/exception).
+ For enums, the given object is ignored; the returned value
+ reflects the constant enum 32-bit value.
+
+ <p>When setting an interface attribute raises a
+ non com::sun::star::uno::RuntimeException, it is
+ wrapped in a com::sun::star::lang::WrappedTargetRuntimeException.</p>
+
+ @param obj
+ object instance having member of reflected type
+ @return
+ value of field
+
+ @throws IllegalAccessException
+ A com::sun::star::lang::IllegalAccessException
+ is thrown if the given object is no interface, enum or compound type;
+ or the given object does not have the reflected field.
+ */
+ any get(
+ [in] any obj )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Sets the value of the reflected field of the given object,
+ i.e. an interface or compound type (struct/exception).
+
+ <p>When setting an interface attribute raises a
+ non com::sun::star::uno::RuntimeException, it is
+ wrapped in a com::sun::star::lang::WrappedTargetRuntimeException.</p>
+
+ @param obj
+ object instance having member of reflected type
+ @param value
+ value to be set
+
+ @throws IllegalAccessException
+ A com::sun::star::lang::IllegalAccessException
+ is thrown if the given object is no interface or compound type;
+ or the given object does not have the reflected field.
+ */
+ void set(
+ [inout] any obj,
+ [in] any value )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::IllegalAccessException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlMember.idl b/udkapi/com/sun/star/reflection/XIdlMember.idl
new file mode 100644
index 000000000..5f07cd3de
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlMember.idl
@@ -0,0 +1,54 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XIdlMember_idl__
+#define __com_sun_star_reflection_XIdlMember_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+ published interface XIdlClass;
+
+/** Base interface for XIdlField2s and XIdlMethods.
+*/
+published interface XIdlMember: com::sun::star::uno::XInterface
+{
+ /** Returns the declaring type of this field, i.e. the type having
+ the member declared (interface, enum, struct, exception).
+
+ @returns
+ declaring type
+ */
+ XIdlClass getDeclaringClass();
+
+ /** Returns the fully-qualified name of the member.
+
+ @return fully-qualified name of the member
+ */
+ string getName();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlMethod.idl b/udkapi/com/sun/star/reflection/XIdlMethod.idl
new file mode 100644
index 000000000..4d6243454
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlMethod.idl
@@ -0,0 +1,119 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XIdlMethod_idl__
+#define __com_sun_star_reflection_XIdlMethod_idl__
+
+#include <com/sun/star/reflection/XIdlMember.idl>
+
+#include <com/sun/star/reflection/ParamInfo.idl>
+
+#include <com/sun/star/reflection/MethodMode.idl>
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+#include <com/sun/star/reflection/InvocationTargetException.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+ published interface XIdlClass;
+
+
+/** Reflects an IDL interface method.
+*/
+published interface XIdlMethod: com::sun::star::reflection::XIdlMember
+{
+ /** Returns the return type of the reflected method.
+
+ @return
+ return type of reflected method
+ */
+ XIdlClass getReturnType();
+
+ /** Returns the formal parameter types of the reflected method in order of IDL
+ declaration.
+
+ @return
+ formal parameter types of reflected method
+ */
+ sequence<XIdlClass> getParameterTypes();
+
+ /** Returns formal parameter information of the reflected method
+ in order of IDL declaration.
+ Parameter information reflects the parameter's access mode (in, out, inout),
+ the parameter's name and formal type.
+
+ @return
+ parameter information of reflected method
+ */
+ sequence<ParamInfo> getParameterInfos();
+
+ /** Returns the declared exceptions types of the reflected method.
+
+ @return
+ declared exception types of reflected method
+ */
+ sequence<com::sun::star::reflection::XIdlClass> getExceptionTypes();
+
+ /** Returns the method mode in which calls are run, i.e. either oneway or
+ twoway. Method mode oneway denotes that a call may be run asynchronously
+ (thus having no out parameters or return value)
+
+ @return
+ method mode of reflected method
+ */
+ com::sun::star::reflection::MethodMode getMode();
+
+ /** Invokes the reflected method on a given object with the given parameters.
+ The parameters may be widening converted to fit their exact IDL type,
+ meaning no loss of information.
+
+ @param obj
+ object to call on
+ @param args
+ arguments passed to the method
+ @return
+ return value of the method call (may be empty for methods returning void)
+
+ @throws IllegalArgumentException
+ if the given object is a nuull reference or does not support the reflected
+ method's interface
+ @throws IllegalArgumentException
+ if the given number of arguments differ from the expected number
+ or the given arguments' types differ from the expected ones (even a
+ widening conversion was not possible)
+ @throws InvocationTargetException
+ if the reflected method that has been invoked has thrown an exception.
+ The original exception will be wrapped up and signalled by the
+ InvocationTargetException
+ */
+ any invoke(
+ [in] any obj,
+ [inout] sequence<any> args )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::reflection::InvocationTargetException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlReflection.idl b/udkapi/com/sun/star/reflection/XIdlReflection.idl
new file mode 100644
index 000000000..bbded9766
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlReflection.idl
@@ -0,0 +1,67 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XIdlReflection_idl__
+#define __com_sun_star_reflection_XIdlReflection_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/reflection/XIdlClass.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Interface to reflect types.
+
+ @see CoreReflection
+ @see XIdlClass
+*/
+published interface XIdlReflection: com::sun::star::uno::XInterface
+{
+ /** Obtaining a reflection interface for a type. You specify the type by
+ its name.
+ If the given type name can not be reflected, then a null-reference
+ is returned.
+
+ @param aTypeName
+ the type's name
+ @return
+ reflection interface for the demanded type (or null)
+ */
+ com::sun::star::reflection::XIdlClass forName( [in] string aTypeName );
+
+ /** Obtaining a reflection interface for an object. This method takes
+ the type of the object the any contains into account. If the any
+ contains no object, then a null-reference is returned.
+
+ @param aObj
+ an object
+ @return
+ reflection interface of the type of the demanded object (or null)
+ */
+ com::sun::star::reflection::XIdlClass getType( [in] any aObj );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl b/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl
new file mode 100644
index 000000000..6bf55401c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl
@@ -0,0 +1,49 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XIndirectTypeDescription_idl__
+#define __com_sun_star_reflection_XIndirectTypeDescription_idl__
+
+#include <com/sun/star/reflection/XTypeDescription.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a typedef or sequence type.
+ The type class of this description is TypeClass_TYPEDEF or
+ TypeClass_SEQUENCE.
+*/
+published interface XIndirectTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the typedefed type, if the type is a typedef,
+ or the element type, if the type is a sequence.
+
+ @return
+ referenced type
+ */
+ com::sun::star::reflection::XTypeDescription getReferencedType();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl
new file mode 100644
index 000000000..bb45ae14e
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl
@@ -0,0 +1,61 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XInterfaceAttributeTypeDescription_idl__
+#define __com_sun_star_reflection_XInterfaceAttributeTypeDescription_idl__
+
+#include <com/sun/star/reflection/XInterfaceMemberTypeDescription.idl>
+
+#include <com/sun/star/reflection/XTypeDescription.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects an interface attribute type.
+
+ <p>This type is superseded by
+ XInterfaceAttributeTypeDescription2, which supports extended
+ attributes.</p>
+
+ The type class of this type is TypeClass_INTERFACE_ATTRIBUTE.
+*/
+published interface XInterfaceAttributeTypeDescription: com::sun::star::reflection::XInterfaceMemberTypeDescription
+{
+ /** Returns true, if this attribute is read-only.
+
+ @return
+ true, if attribute is read-only
+ */
+ boolean isReadOnly();
+
+ /** Returns the type of the attribute.
+
+ @return
+ type of attribute
+ */
+ com::sun::star::reflection::XTypeDescription getType();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl
new file mode 100644
index 000000000..af6f7f911
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl
@@ -0,0 +1,73 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XInterfaceAttributeTypeDescription2_idl__
+#define __com_sun_star_reflection_XInterfaceAttributeTypeDescription2_idl__
+
+#include <com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl>
+
+module com { module sun { module star { module reflection {
+
+interface XCompoundTypeDescription;
+
+/**
+ Reflects an interface attribute, supporting extended attributes that are
+ bound or raise exceptions.
+
+ <p>This type supersedes XInterfaceAttributeTypeDescription,
+ which does not support extended attributes.</p>
+
+ @since OOo 2.0
+ */
+interface XInterfaceAttributeTypeDescription2:
+ XInterfaceAttributeTypeDescription
+{
+ /**
+ Returns whether this object reflects a bound attribute.
+
+ @return `TRUE` iff this object reflects a bound attribute
+ */
+ boolean isBound();
+
+ /**
+ Returns the exceptions that can be raised by the attribute's getter.
+
+ @return the reflections of all the exceptions that are listed in the
+ <code>raises</code> specification of the attribute's getter (if any), in
+ no particular order; all elements of the returned sequence will be
+ reflections of exception types
+ */
+ sequence<XCompoundTypeDescription> getGetExceptions();
+
+ /**
+ Returns the exceptions that can be raised by the attribute's setter.
+
+ @return the reflections of all the exceptions that are listed in the
+ <code>raises</code> specification of the attribute's setter (if any), in
+ no particular order; all elements of the returned sequence will be
+ reflections of exception types
+ */
+ sequence<XCompoundTypeDescription> getSetExceptions();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl
new file mode 100644
index 000000000..c18d420ab
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XInterfaceMemberTypeDescription_idl__
+#define __com_sun_star_reflection_XInterfaceMemberTypeDescription_idl__
+
+#include <com/sun/star/reflection/XTypeDescription.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Base interface for reflected interface members.
+
+ @see XInterfaceAttributeTypeDescription
+ @see XInterfaceMethodTypeDescription
+*/
+published interface XInterfaceMemberTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns name of member
+
+ @return
+ member name
+ */
+ string getMemberName();
+
+ /** Returns the position the member including all inherited members of base
+ interfaces.
+
+ @return
+ position of member
+ */
+ long getPosition();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl
new file mode 100644
index 000000000..bde37f622
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl
@@ -0,0 +1,72 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XInterfaceMethodTypeDescription_idl__
+#define __com_sun_star_reflection_XInterfaceMethodTypeDescription_idl__
+
+#include <com/sun/star/reflection/XInterfaceMemberTypeDescription.idl>
+
+#include <com/sun/star/reflection/XTypeDescription.idl>
+
+#include <com/sun/star/reflection/XMethodParameter.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects an interface method type.
+ The type class of this type is TypeClass_INTERFACE_METHOD.
+*/
+published interface XInterfaceMethodTypeDescription: com::sun::star::reflection::XInterfaceMemberTypeDescription
+{
+ /** Returns the method's return type.
+
+ @return
+ method's return type
+ */
+ com::sun::star::reflection::XTypeDescription getReturnType();
+
+ /** Returns true, if this method is declared oneway.
+
+ @return
+ true, if this method is declared oneway
+ */
+ boolean isOneway();
+
+ /** Returns all parameters of the method in order of IDL declaration.
+
+ @return
+ method parameters
+ */
+ sequence<com::sun::star::reflection::XMethodParameter> getParameters();
+
+ /** Returns declared exceptions that may occur upon invocations of the method.
+
+ @return
+ declared exceptions of method
+ */
+ sequence<com::sun::star::reflection::XTypeDescription> getExceptions();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl
new file mode 100644
index 000000000..cca82047c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl
@@ -0,0 +1,78 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XInterfaceTypeDescription_idl__
+#define __com_sun_star_reflection_XInterfaceTypeDescription_idl__
+
+#include <com/sun/star/reflection/XTypeDescription.idl>
+
+#include <com/sun/star/uno/Uik.idl>
+
+#include <com/sun/star/reflection/XInterfaceMemberTypeDescription.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects an interface type.
+
+ <p>This type is superseded by XInterfaceTypeDescription2, which
+ supports multiple inheritance.</p>
+
+ @see XInterfaceMemberTypeDescription
+*/
+published interface XInterfaceTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the base interface or null, if the reflected interface is not
+ inherited from another.
+
+ <p>This method is deprecated, as it only supports single inheritance.
+ See XInterfaceTypeDescription2 for a replacement that
+ supports multiple inheritance.</p>
+
+ @return
+ base interface or null
+ @deprecated
+ */
+ com::sun::star::reflection::XTypeDescription getBaseType();
+
+ /** Deprecated. UIK are not used anymore, a type is uniquely identified by
+ its name.<br>
+ Returns the UIK, i.e. the unique identifier of the interface.
+
+ @return
+ uik of the interface
+ @deprecated
+ */
+ com::sun::star::uno::Uik getUik();
+
+ /** Returns the members of the interfaces, i.e. attributes and methods.
+
+ @returns
+ interface members
+ */
+ sequence<com::sun::star::reflection::XInterfaceMemberTypeDescription> getMembers();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl
new file mode 100644
index 000000000..a48e51c66
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl
@@ -0,0 +1,68 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XInterfaceTypeDescription2_idl__
+#define __com_sun_star_reflection_XInterfaceTypeDescription2_idl__
+
+#include <com/sun/star/reflection/XInterfaceTypeDescription.idl>
+
+module com { module sun { module star { module reflection {
+
+interface XTypeDescription;
+
+/** Reflects an interface type, supporting multiple inheritance.
+
+ <p>This type supersedes XInterfaceTypeDescription, which only
+ supported single inheritance.</p>
+
+ @since OOo 2.0
+ */
+interface XInterfaceTypeDescription2: XInterfaceTypeDescription {
+ /** Returns a sequence of all directly inherited (mandatory) base interface
+ types.
+
+ @returns
+ a sequence of all directly inherited (mandatory) base interface types,
+ in the correct order; each element of the returned sequence will be the
+ reflection of either an interface type (of
+ type com::sun::star::reflection::XInterfaceTypeDescription) or
+ a typedef (of type com::sun::star::reflection::XIndirectTypeDescription)
+ that&mdash;directly or indirectly&mdash;denotes an interface type
+ */
+ sequence<XTypeDescription> getBaseTypes();
+
+ /** Returns a sequence of all directly inherited optional base interface
+ types.
+
+ @returns
+ a sequence of all directly inherited optional base interface types, in
+ the correct order; each element of the returned sequence will be the
+ reflection of either an interface type (of type
+ com::sun::star::reflection::XInterfaceTypeDescription) or
+ a typedef (of type com::sun::star::reflection::XIndirectTypeDescription)
+ that&mdash;directly or indirectly&mdash;denotes an interface type
+ */
+ sequence<XTypeDescription> getOptionalBaseTypes();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XMethodParameter.idl b/udkapi/com/sun/star/reflection/XMethodParameter.idl
new file mode 100644
index 000000000..11c0eb076
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XMethodParameter.idl
@@ -0,0 +1,82 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XMethodParameter_idl__
+#define __com_sun_star_reflection_XMethodParameter_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/reflection/XTypeDescription.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a method parameter.
+
+ <p>This type is superseded by XParameter, which supports
+ parameters of service constructors as well as parameters of interface
+ methods.</p>
+
+ @see XInterfaceMethodTypeDescription
+*/
+published interface XMethodParameter: com::sun::star::uno::XInterface
+{
+ /** Returns the name of the parameter
+
+ @return
+ name of parameter
+ */
+ string getName();
+
+ /** Returns the type of the parameter.
+
+ @return
+ type of parameter
+ */
+ com::sun::star::reflection::XTypeDescription getType();
+
+ /** Returns true, if the parameter is declared as [in] or [inout] in IDL.
+
+ @return
+ true, if declared [in] or [inout] parameter
+ */
+ boolean isIn();
+
+ /** Returns true, if the parameter is declared as [out] or [inout] in IDL.
+
+ @return
+ true, if declared [out] or [inout] parameter
+ */
+ boolean isOut();
+
+ /** Returns the position of the parameter regarding the IDL method declaration.
+
+ @return
+ position of the parameter
+ */
+ long getPosition();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl b/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl
new file mode 100644
index 000000000..fb2838b6e
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl
@@ -0,0 +1,50 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XModuleTypeDescription_idl__
+#define __com_sun_star_reflection_XModuleTypeDescription_idl__
+
+#include <com/sun/star/reflection/XTypeDescription.idl>
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a module.
+
+ <p>The type class of this type is
+ com::sun::star::uno::TypeClass::MODULE.
+
+ @since OOo 1.1.2
+ */
+published interface XModuleTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the type descriptions for the members of this module.
+
+ @return a sequence containing type descriptions.
+ */
+ sequence< XTypeDescription > getMembers();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XParameter.idl b/udkapi/com/sun/star/reflection/XParameter.idl
new file mode 100644
index 000000000..a2785c42a
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XParameter.idl
@@ -0,0 +1,53 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XParameter_idl__
+#define __com_sun_star_reflection_XParameter_idl__
+
+#include <com/sun/star/reflection/XMethodParameter.idl>
+
+module com { module sun { module star { module reflection {
+
+/**
+ Reflects a parameter of an interface method or a service constructor.
+
+ <p>This type supersedes XMethodParameter, which only supports
+ parameters of interface methods (which cannot have rest parameters).</p>
+
+ @since OOo 2.0
+ */
+interface XParameter: XMethodParameter {
+ /**
+ Returns whether this is a rest parameter.
+
+ <p>A rest parameter must always come last in a parameter list.</p>
+
+ <p>Currently, only service constructors can have rest parameters, and
+ those rest parameters must be in parameters of type `any`.</p>
+
+ @return `TRUE` if and only if this parameter is a rest parameter
+ */
+ boolean isRestParameter();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl b/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl
new file mode 100644
index 000000000..11e2b5526
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl
@@ -0,0 +1,56 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XPropertyTypeDescription_idl__
+#define __com_sun_star_reflection_XPropertyTypeDescription_idl__
+
+#include <com/sun/star/reflection/XTypeDescription.idl>
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a property.
+
+ <p>The type class of this type is
+ com::sun::star::uno::TypeClass::PROPERTY.
+
+ @since OOo 1.1.2
+ */
+published interface XPropertyTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** @return the flags defined for this property.
+
+ <p>The possible values are defined in
+ com::sun::star::beans::PropertyAttribute
+ */
+ short getPropertyFlags();
+
+ /** @return the type description for this property.
+ */
+ XTypeDescription getPropertyTypeDescription();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XProxyFactory.idl b/udkapi/com/sun/star/reflection/XProxyFactory.idl
new file mode 100644
index 000000000..2c8b57ead
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XProxyFactory.idl
@@ -0,0 +1,65 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XProxyFactory_idl__
+#define __com_sun_star_reflection_XProxyFactory_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/uno/XAggregation.idl>
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Factory interface to produce proxy objects.
+
+ @deprecated
+ Aggregation will no longer be supported as a high-level concept of UNO.
+ You may still have the option to implement a UNO object consisting of
+ several single objects in your specific programming language, though this
+ depends on your programming language.
+ Thus this interface is deprecated, too.
+*/
+published interface XProxyFactory: com::sun::star::uno::XInterface
+{
+ /** This method creates a new proxy object that acts on behalf of the given
+ target object.<br>
+ The proxy delegates calls to the given target object.
+ In addition, it is aggregatable, thus it is possible to
+ intercept calls on the proxy's interfaces.
+
+ @attention
+ The proxy object is UNO conform, but does NOT provide original target
+ interfaces on queryInterface() calls. This may lead to problems
+ regarding object identity, e.g. when dealing with listener proxies.
+
+ @param xTarget
+ target object
+ @return
+ proxy object
+ */
+ com::sun::star::uno::XAggregation createProxy(
+ [in] com::sun::star::uno::XInterface xTarget );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XPublished.idl b/udkapi/com/sun/star/reflection/XPublished.idl
new file mode 100644
index 000000000..880438f6c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XPublished.idl
@@ -0,0 +1,103 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XPublished_idl__
+#define __com_sun_star_reflection_XPublished_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+module com { module sun { module star { module reflection {
+
+/**
+ Reflects the “published” status of a UNOIDL entity.
+
+ <p>This interface is intended to be supported by objects that also support
+ com::sun::star::reflection::XTypeDescription.
+ (This interface could have been made an optional sub-interface of
+ com::sun::star::reflection::XTypeDescription, but is
+ instead kept independent for reasons of backwards compatibility.)</p>
+
+ <p>For the various kinds of UNOIDL entities that are represented by objects
+ supporting com::sun::star::reflection::XTypeDescription
+ and its subtypes, this optional interface should be supported as follows:</p>
+ <ul>
+ <li>Enum types
+ (com::sun::star::reflection::XEnumTypeDescription),
+ plain struct types
+ (com::sun::star::reflection::XStructTypeDescription),
+ polymorphic struct type templates
+ (com::sun::star::reflection::XStructTypeDescription),
+ exception types (com::sun::star::reflection::XCompoundTypeDescription),
+ interface types (com::sun::star::reflection::XInterfaceTypeDescription2),
+ typedefs (com::sun::star::reflection::XIndirectTypeDescription),
+ individual constants
+ (com::sun::star::reflection::XConstantTypeDescription),
+ constant groups (com::sun::star::reflection::XConstantsTypeDescription),
+ single-interface&ndash;based services
+ (com::sun::star::reflection::XServiceTypeDescription2),
+ accumulation-based services
+ (com::sun::star::reflection::XServiceTypeDescription2),
+ interface-based singletons
+ (com::sun::star::reflection::XSingletonTypeDescription2),
+ and service-based singletons
+ (com::sun::star::reflection::XSingletonTypeDescription2)
+ support the notion of being published. Therefore, for an object that
+ represents any such entity,
+ com::sun::star::reflection::XPublished should be
+ supported.</li>
+
+ <li>Sequence types
+ (com::sun::star::reflection::XIndirectTypeDescription),
+ type parameters of polymorphic struct type templates
+ (com::sun::star::reflection::XTypeDescription),
+ instantiated polymorphic struct types
+ (com::sun::star::reflection::XStructTypeDescription),
+ attributes of interface types
+ (com::sun::star::reflection::XInterfaceAttributeTypeDescription2),
+ methods of interface types
+ (com::sun::star::reflection::XInterfaceMethodTypeDescription),
+ properties of accumulation-based services
+ (com::sun::star::reflection::XPropertyTypeDescription),
+ deprecated
+ com::sun::star::reflection::XArrayTypeDescriptions,
+ and deprecated
+ com::sun::star::reflection::XUnionTypeDescriptions do
+ not support the notion of being published.
+ Therefore, for an object that represents any such entity,
+ com::sun::star::reflection::XPublished should not be
+ supported.</li>
+ </ul>
+
+ @since OOo 2.0
+*/
+interface XPublished {
+ /**
+ Returns the “published” status of a UNOIDL entity.
+
+ @return `TRUE` if the UNOIDL entity represented by this object is
+ published
+ */
+ boolean isPublished();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl b/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl
new file mode 100644
index 000000000..2ba4730c5
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl
@@ -0,0 +1,77 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XServiceConstructorDescription_idl__
+#define __com_sun_star_reflection_XServiceConstructorDescription_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+module com { module sun { module star { module reflection {
+
+interface XCompoundTypeDescription;
+interface XParameter;
+
+/**
+ Reflects a service constructor.
+
+ @since OOo 2.0
+ */
+interface XServiceConstructorDescription {
+ /**
+ Returns whether the constructor is a default constructor.
+
+ @return `TRUE` if the constructor is a default constructor
+ */
+ boolean isDefaultConstructor();
+
+ /**
+ Returns the constructor's name.
+
+ @return the constructor's name; for a default constructor, an empty
+ `string` is returned
+ */
+ string getName();
+
+ /**
+ Returns the constructor's parameters.
+
+ @return the reflections of all the constructor's parameters, in their
+ lexical order; for a default constructor, an empty sequence is
+ returned
+ */
+ sequence<XParameter> getParameters();
+
+ /**
+ Returns the exceptions that can be raised by the constructor.
+
+ @return the reflections of all the exceptions that are listed in the
+ constructor's <code>raises</code> specification, in no particular order;
+ all elements of the returned sequence will be reflections of exception
+ types; for a default constructor, an empty sequence is returned (even
+ though the mapping of a default constructor in a particular language
+ binding may well raise certain UNO exceptions)
+ */
+ sequence<XCompoundTypeDescription> getExceptions();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl b/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl
new file mode 100644
index 000000000..cf6a4052c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl
@@ -0,0 +1,94 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XServiceTypeDescription_idl__
+#define __com_sun_star_reflection_XServiceTypeDescription_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/reflection/XInterfaceTypeDescription.idl>
+#include <com/sun/star/reflection/XPropertyTypeDescription.idl>
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a service.
+
+ <p>This type is superseded by XServiceTypeDescription2, which
+ supports single-interface&ndash;based services, in addition to the obsolete,
+ accumulation-based services.</p>
+
+ <p>The type class of this type is
+ com::sun::star::uno::TypeClass::SERVICE.
+
+ @since OOo 1.1.2
+ */
+published interface XServiceTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the type descriptions of the mandatory services
+ defined for this service.
+
+ @return a sequence containing service type descriptions, for an
+ obsolete, accumulation-based service; for a
+ single-interface&ndash;based service, an empty sequence is returned
+ */
+ sequence< XServiceTypeDescription > getMandatoryServices();
+
+ /** Returns the type descriptions of the optional services
+ defined for this service.
+
+ @return a sequence containing service type descriptions, for an
+ obsolete, accumulation-based service; for a
+ single-interface&ndash;based service, an empty sequence is returned
+ */
+ sequence< XServiceTypeDescription > getOptionalServices();
+
+ /** Returns the type descriptions of the mandatory interfaces
+ defined for this service.
+
+ @return a sequence containing interface type descriptions, for an
+ obsolete, accumulation-based service; for a
+ single-interface&ndash;based service, an empty sequence is returned
+ */
+ sequence< XInterfaceTypeDescription > getMandatoryInterfaces();
+
+ /** Returns the type descriptions of the optional interface
+ defined for this service.
+
+ @return a sequence containing interface type descriptions, for an
+ obsolete, accumulation-based service; for a
+ single-interface&ndash;based service, an empty sequence is returned
+ */
+ sequence< XInterfaceTypeDescription > getOptionalInterfaces();
+
+ /** Returns the properties defined for this service.
+
+ @return a sequence containing property descriptions, for an obsolete,
+ accumulation-based service; for a single-interface&ndash;based
+ service, an empty sequence is returned
+ */
+ sequence< XPropertyTypeDescription > getProperties();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl b/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl
new file mode 100644
index 000000000..223c769c5
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl
@@ -0,0 +1,74 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XServiceTypeDescription2_idl__
+#define __com_sun_star_reflection_XServiceTypeDescription2_idl__
+
+#include <com/sun/star/reflection/XServiceTypeDescription.idl>
+
+module com { module sun { module star { module reflection {
+
+interface XServiceConstructorDescription;
+interface XTypeDescription;
+
+/**
+ Reflects a service, supporting single-interface&ndash;based services.
+
+ <p>This type supersedes XServiceTypeDescription, which only
+ supports obsolete, accumulation-based services.</p>
+
+ @since OOo 2.0
+ */
+interface XServiceTypeDescription2: XServiceTypeDescription {
+ /**
+ Returns whether this object reflects a single-interface&ndash;based
+ service.
+
+ @return `TRUE` if this object reflects a single-interface&ndash;based
+ service, and `FALSE` if this object reflects an obsolete,
+ accumulation-based service
+ */
+ boolean isSingleInterfaceBased();
+
+ /**
+ Returns the interface type associated with the service.
+
+ @return the reflection of the interface type associated with the service
+ (of type com::sun::star::reflection::XInterfaceTypeDescription
+ or, in case of a typedef,
+ com::sun::star::reflection::XIndirectTypeDescription),
+ for a single-interface&ndash;based service; for an obsolete,
+ accumulation-based service, `NULL` is returned
+ */
+ XTypeDescription getInterface();
+
+ /**
+ Returns the constructors of the service.
+
+ @return the reflections of all constructors of the service, in no
+ particular order
+ */
+ sequence<XServiceConstructorDescription> getConstructors();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl b/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl
new file mode 100644
index 000000000..8de061ba8
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XSingletonTypeDescription_idl__
+#define __com_sun_star_reflection_XSingletonTypeDescription_idl__
+
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#include <com/sun/star/reflection/XServiceTypeDescription.idl>
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a singleton.
+
+ <p>This type is superseded by XSingletonTypeDescription2, which
+ supports interface-based singletons, in addition to the obsolete,
+ service-based singletons.</p>
+
+ <p>The type class of this type is
+ com::sun::star::uno::TypeClass::SINGLETON.
+
+ @since OOo 1.1.2
+ */
+published interface XSingletonTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the service associated with the singleton.
+
+ @return the reflection of the service associated with the singleton, for
+ an obsolete, service-based singleton; for an interface-based
+ singleton, `NULL` is returned
+ */
+ XServiceTypeDescription getService();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl b/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl
new file mode 100644
index 000000000..e2319c538
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl
@@ -0,0 +1,64 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XSingletonTypeDescription2_idl__
+#define __com_sun_star_reflection_XSingletonTypeDescription2_idl__
+
+#include <com/sun/star/reflection/XSingletonTypeDescription.idl>
+
+module com { module sun { module star { module reflection {
+
+interface XTypeDescription;
+
+/**
+ Reflects a singleton, supporting interface-based singletons.
+
+ <p>This type supersedes XSingletonTypeDescription, which only
+ supports obsolete, service-based singletons.</p>
+
+ @since OOo 2.0
+ */
+interface XSingletonTypeDescription2: XSingletonTypeDescription {
+ /**
+ Returns whether this object reflects an interface-based singleton.
+
+ @return `TRUE` if this object reflects an interface-based singleton, and
+ `FALSE` if this object reflects an obsolete, service-based singleton
+ */
+ boolean isInterfaceBased();
+
+ /**
+ Returns the interface type associated with the singleton.
+
+ @return the reflection of the interface type associated with the
+ singleton (of type
+ com::sun::star::reflection::XInterfaceTypeDescription
+ or, in case of a typedef,
+ com::sun::star::reflection::XIndirectTypeDescription),
+ for an interface-based singleton; for an obsolete, service-based
+ singleton, `NULL` is returned
+ */
+ XTypeDescription getInterface();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XStructTypeDescription.idl b/udkapi/com/sun/star/reflection/XStructTypeDescription.idl
new file mode 100644
index 000000000..a46d6bf03
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XStructTypeDescription.idl
@@ -0,0 +1,84 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XStructTypeDescription_idl__
+#define __com_sun_star_reflection_XStructTypeDescription_idl__
+
+#include <com/sun/star/reflection/XCompoundTypeDescription.idl>
+
+module com { module sun { module star { module reflection {
+
+interface XTypeDescription;
+
+/**
+ Reflects a struct type, supporting polymorphic struct types.
+
+ <p>This type supersedes XCompoundTypeDescription, which only
+ supports plain struct types.</p>
+
+ <p>This type is used to reflect all of the following:</p>
+ <ul>
+ <li>Polymorphic struct type templates, like
+ <code>Struct&lt;T, U&gt;</code>. For these,
+ com::sun::star::reflection::XStructTypeDescription::getTypeParameters()
+ returns a non-empty sequence, while
+ com::sun::star::reflection::XStructTypeDescription::getTypeArguments()
+ returns an empty sequence.</li>
+
+ <li>Instantiated polymorphic struct types, like <code>Struct&lt;long,
+ hyper&gt;</code>. For these,
+ com::sun::star::reflection::XStructTypeDescription::getTypeParameters()
+ returns an empty sequence, while
+ com::sun::star::reflection::XStructTypeDescription::getTypeArguments()
+ returns a non-empty sequence.</li>
+
+ <li>Plain struct types. For these, both
+ com::sun::star::reflection::XStructTypeDescription::getTypeParameters()
+ and
+ com::sun::star::reflection::XStructTypeDescription::getTypeArguments()
+ return an empty sequence.</li>
+ </ul>
+
+ @since OOo 2.0
+ */
+interface XStructTypeDescription: XCompoundTypeDescription {
+ /**
+ Returns the type parameters of a polymorphic struct type template.
+
+ @return a sequence of the names of all type parameters, in the correct
+ order; for a plain struct type, or an instantiated polymorphic struct
+ type, an empty sequence is returned
+ */
+ sequence<string> getTypeParameters();
+
+ /**
+ Returns the type arguments of an instantiated polymorphic struct type.
+
+ @return a sequence of all type arguments, in the correct order; for a
+ plain struct type, or a polymorphic struct type template, an empty
+ sequence is returned
+ */
+ sequence<XTypeDescription> getTypeArguments();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XTypeDescription.idl b/udkapi/com/sun/star/reflection/XTypeDescription.idl
new file mode 100644
index 000000000..ae2d0c666
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XTypeDescription.idl
@@ -0,0 +1,69 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#define __com_sun_star_reflection_XTypeDescription_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/uno/TypeClass.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a UNOIDL entity.
+
+ @see XPublished
+ @see XIndirectTypeDescription
+ @see XEnumTypeDescription
+ @see XStructTypeDescription
+ @see XCompoundTypeDescription
+ @see XInterfaceTypeDescription2
+ @see XInterfaceAttributeTypeDescription2
+ @see XInterfaceMethodTypeDescription
+ @see XConstantTypeDescription
+ @see XConstantsTypeDescription
+ @see XServiceTypeDescription2
+ @see XPropertyTypeDescription2
+ @see XSingletonTypeDescription2
+*/
+published interface XTypeDescription : com::sun::star::uno::XInterface
+{
+ /** Returns the type class of the reflected UNOIDL entity.
+
+ @return
+ type class of the entity
+ */
+ com::sun::star::uno::TypeClass getTypeClass();
+
+ /** Returns the fully qualified name of the UNOIDL entity.
+
+ @return
+ fully qualified name of the entity
+ */
+ string getName();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl
new file mode 100644
index 000000000..855998194
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl
@@ -0,0 +1,54 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XTypeDescriptionEnumeration_idl__
+#define __com_sun_star_reflection_XTypeDescriptionEnumeration_idl__
+
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#include <com/sun/star/container/XEnumeration.idl>
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Defines an enumeration for type descriptions.
+
+ @since OOo 1.1.2
+ */
+published interface XTypeDescriptionEnumeration : com::sun::star::container::XEnumeration
+{
+ /** Returns the next element of the enumeration.
+
+ @returns
+ the next element of this enumeration.
+
+ @throws com::sun::star::container::NoSuchElementException
+ if no more elements exist.
+ */
+ XTypeDescription nextTypeDescription()
+ raises( com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl
new file mode 100644
index 000000000..6627c52d2
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl
@@ -0,0 +1,164 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_reflection_XTypeDescriptionEnumerationAccess_idl__
+#define __com_sun_star_reflection_XTypeDescriptionEnumerationAccess_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/uno/TypeClass.idl>
+#include <com/sun/star/reflection/XTypeDescriptionEnumeration.idl>
+#include <com/sun/star/reflection/TypeDescriptionSearchDepth.idl>
+#include <com/sun/star/reflection/NoSuchTypeNameException.idl>
+#include <com/sun/star/reflection/InvalidTypeNameException.idl>
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Defines an interface for creating enumerations for type descriptions.
+
+ @since OOo 1.1.2
+
+ */
+published interface XTypeDescriptionEnumerationAccess : com::sun::star::uno::XInterface
+{
+ /** Creates an enumeration for type descriptions.
+
+ <p>An enumeration is always created for a UNOIDL module. The
+ enumeration contents can be restricted by specifying type classes.
+ Only types that match one of the supplied type classes will be part of
+ the collection. Additionally, it is possible to specify the depth
+ for the search within the underlying type description tree.
+
+ @param moduleName
+ contains the name of a UNOIDL module. Modules are separated by a
+ single '.' (i.e., "com.sun.star.reflection"). The root of the module
+ hierarchy is specified with an empty string. Module names are always
+ absolute, never relative.
+
+ @param types
+ restricts the contents of the enumeration. It will only contain
+ type descriptions that match one of the supplied type classes. An
+ empty sequence specifies that the enumeration shall contain all
+ type descriptions.
+
+ <p>Valid types classes are:
+ <ul>
+ <li>com::sun::star::uno::TypeClass::MODULE
+ <li>com::sun::star::uno::TypeClass::INTERFACE
+ <li>com::sun::star::uno::TypeClass::SERVICE
+ <li>com::sun::star::uno::TypeClass::STRUCT
+ <li>com::sun::star::uno::TypeClass::ENUM
+ <li>com::sun::star::uno::TypeClass::EXCEPTION
+ <li>com::sun::star::uno::TypeClass::TYPEDEF
+ <li>com::sun::star::uno::TypeClass::CONSTANT
+ <li>com::sun::star::uno::TypeClass::CONSTANTS
+ <li>com::sun::star::uno::TypeClass::SINGLETON
+ </ul>
+
+ @param depth
+ specifies the depth of search in the underlying tree of type
+ descriptions. Clients should be aware of the fact that specifying
+ TypeDescriptionSearchDepth::INFINITE can lead to
+ larger delays when constructing or using the
+ XTypeDescriptionEnumeration instance.
+
+ @returns
+ an enumeration of type descriptions.
+
+ <p>The enumeration returns implementations of
+ XTypeDescription. Following concrete UNOIDL parts
+ represented by specialized interfaces derived from
+ XTypeDescription can be returned by the enumerator:
+
+ <table border="1">
+ <tr><th>IDL</th><th>interface</th></tr>
+ <tr>
+ <td>enum</td>
+ <td>XEnumTypeDescription</td>
+ </tr>
+ <tr>
+ <td>struct</td>
+ <td>XCompoundTypeDescription (the returned
+ object should actually implement
+ XStructTypeDescription)</td>
+ </tr>
+ <tr>
+ <td>exception</td>
+ <td>XCompoundTypeDescription</td>
+ </tr>
+ <tr>
+ <td>interface</td>
+ <td>XInterfaceTypeDescription (the returned
+ object should actually implement
+ XInterfaceTypeDescription2)</td>
+ </tr>
+ <tr>
+ <td>service</td>
+ <td>XServiceTypeDescription (the returned
+ object should actually implement
+ XServiceTypeDescription2)</td>
+ </tr>
+ <tr>
+ <td>singleton</td>
+ <td>XSingletonTypeDescription (the returned
+ object should actually implement
+ XSingletonTypeDescription2)</td>
+ </tr>
+ <tr>
+ <td>module</td>
+ <td>XModuleTypeDescription</td>
+ </tr>
+ <tr>
+ <td>typedef</td>
+ <td>XIndirectTypeDescription</td>
+ </tr>
+ <tr>
+ <td>constant</td>
+ <td>XConstantTypeDescription</td>
+ </tr>
+ <tr>
+ <td>constants</td>
+ <td>XConstantsTypeDescription</td>
+ </tr>
+ </table>
+
+ @throws NoSuchTypeNameException
+ in case that the given module name does not exist. This exception
+ will never be thrown in case moduleName is the empty string.
+
+ @throws InvalidTypeNameException
+ in case that the given module name does exist, but does not specify
+ a UNOIDL module. This exception will never be thrown in case
+ moduleName is the empty string.
+ */
+ XTypeDescriptionEnumeration
+ createTypeDescriptionEnumeration(
+ [in] string moduleName,
+ [in] sequence< com::sun::star::uno::TypeClass > types,
+ [in] TypeDescriptionSearchDepth depth )
+ raises( NoSuchTypeNameException, InvalidTypeNameException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl b/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl
new file mode 100644
index 000000000..32bbe98e4
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl
@@ -0,0 +1,83 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_XUnionTypeDescription_idl__
+#define __com_sun_star_reflection_XUnionTypeDescription_idl__
+
+#include <com/sun/star/reflection/XTypeDescription.idl>
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Deprecated, UNOIDL does not have a union concept.
+
+ @deprecated
+*/
+published interface XUnionTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the (ordinal) discriminant type.
+
+ @return
+ type of the discriminant
+ */
+ com::sun::star::reflection::XTypeDescription getDiscriminantType();
+
+ /** Returns the default discriminant value.
+
+ @return
+ default discriminant value
+ */
+ any getDefaultDiscriminant();
+
+ /** Returns the type of the default value.
+
+ @return
+ type of the default value
+ */
+ com::sun::star::reflection::XTypeDescription getDefaultMemberType();
+
+ /** Returns discriminants of all members in order of IDL declaration.
+
+ @return
+ discriminants of all members
+ */
+ sequence< any > getDiscriminants();
+
+ /** Returns types of all members in order of IDL declaration.
+
+ @return
+ types of all members
+ */
+ sequence< com::sun::star::reflection::XTypeDescription > getMemberTypes();
+
+ /** Returns names of all members in order of IDL declaration.
+
+ @return
+ names of all members
+ */
+ sequence< string > getMemberNames();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/theCoreReflection.idl b/udkapi/com/sun/star/reflection/theCoreReflection.idl
new file mode 100644
index 000000000..e0aec455c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/theCoreReflection.idl
@@ -0,0 +1,37 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_reflection_theCoreReflection_idl__
+#define __com_sun_star_reflection_theCoreReflection_idl__
+
+#include <com/sun/star/reflection/XIdlReflection.idl>
+
+
+module com { module sun { module star { module reflection {
+
+/**
+ @since LibreOffice 4.0
+ */
+singleton theCoreReflection : com::sun::star::reflection::XIdlReflection;
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */