summaryrefslogtreecommitdiff
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.idl74
-rw-r--r--udkapi/com/sun/star/reflection/FieldAccessMode.idl64
-rw-r--r--udkapi/com/sun/star/reflection/InvalidTypeNameException.idl55
-rw-r--r--udkapi/com/sun/star/reflection/InvocationTargetException.idl57
-rw-r--r--udkapi/com/sun/star/reflection/MethodMode.idl59
-rw-r--r--udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl54
-rw-r--r--udkapi/com/sun/star/reflection/ParamInfo.idl66
-rw-r--r--udkapi/com/sun/star/reflection/ParamMode.idl63
-rw-r--r--udkapi/com/sun/star/reflection/ProxyFactory.idl73
-rw-r--r--udkapi/com/sun/star/reflection/TypeDescriptionManager.idl125
-rw-r--r--udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl90
-rw-r--r--udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl59
-rw-r--r--udkapi/com/sun/star/reflection/XArrayTypeDescription.idl78
-rw-r--r--udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl85
-rw-r--r--udkapi/com/sun/star/reflection/XConstantTypeDescription.idl80
-rw-r--r--udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl65
-rw-r--r--udkapi/com/sun/star/reflection/XEnumTypeDescription.idl74
-rw-r--r--udkapi/com/sun/star/reflection/XIdlArray.idl134
-rw-r--r--udkapi/com/sun/star/reflection/XIdlClass.idl215
-rw-r--r--udkapi/com/sun/star/reflection/XIdlClassProvider.idl61
-rw-r--r--udkapi/com/sun/star/reflection/XIdlField.idl83
-rw-r--r--udkapi/com/sun/star/reflection/XIdlField2.idl133
-rw-r--r--udkapi/com/sun/star/reflection/XIdlMember.idl67
-rw-r--r--udkapi/com/sun/star/reflection/XIdlMethod.idl141
-rw-r--r--udkapi/com/sun/star/reflection/XIdlReflection.idl83
-rw-r--r--udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl63
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl77
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl79
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl71
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl90
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl96
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl76
-rw-r--r--udkapi/com/sun/star/reflection/XMethodParameter.idl98
-rw-r--r--udkapi/com/sun/star/reflection/XModuleTypeDescription.idl61
-rw-r--r--udkapi/com/sun/star/reflection/XParameter.idl59
-rw-r--r--udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl67
-rw-r--r--udkapi/com/sun/star/reflection/XProxyFactory.idl81
-rw-r--r--udkapi/com/sun/star/reflection/XPublished.idl113
-rw-r--r--udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl83
-rw-r--r--udkapi/com/sun/star/reflection/XServiceTypeDescription.idl109
-rw-r--r--udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl81
-rw-r--r--udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl72
-rw-r--r--udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl70
-rw-r--r--udkapi/com/sun/star/reflection/XStructTypeDescription.idl93
-rw-r--r--udkapi/com/sun/star/reflection/XTypeDescription.idl85
-rw-r--r--udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl69
-rw-r--r--udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl187
-rw-r--r--udkapi/com/sun/star/reflection/XUnionTypeDescription.idl100
-rw-r--r--udkapi/com/sun/star/reflection/makefile.mk93
49 files changed, 4211 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 000000000000..3398897c1984
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/CoreReflection.idl
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_CoreReflection_idl__
+#define __com_sun_star_reflection_CoreReflection_idl__
+
+#ifndef __com_sun_star_reflection_XIdlReflection_idl__
+#include <com/sun/star/reflection/XIdlReflection.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XComponent_idl__
+#include <com/sun/star/lang/XComponent.idl>
+#endif
+
+
+//=============================================================================
+
+ 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.
+*/
+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;
+};
+
+/** Accessable singleton to CoreReflection instance.
+singleton theCoreReflection
+{
+ service CoreReflection;
+};
+*/
+
+//=============================================================================
+
+}; }; }; };
+
+/*=============================================================================
+
+=============================================================================*/
+#endif
diff --git a/udkapi/com/sun/star/reflection/FieldAccessMode.idl b/udkapi/com/sun/star/reflection/FieldAccessMode.idl
new file mode 100644
index 000000000000..233c6c74b5d4
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/FieldAccessMode.idl
@@ -0,0 +1,64 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#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 <type>XIdlField2</type> 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
diff --git a/udkapi/com/sun/star/reflection/InvalidTypeNameException.idl b/udkapi/com/sun/star/reflection/InvalidTypeNameException.idl
new file mode 100644
index 000000000000..783763254a98
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/InvalidTypeNameException.idl
@@ -0,0 +1,55 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_reflection_InvaildTypeNameException_idl__
+#define __com_sun_star_reflection_InvalidTypeNameException_idl__
+
+#ifndef __com_sun_star_uno_Exception_idl__
+#include <com/sun/star/uno/Exception.idl>
+#endif
+
+//=============================================================================
+
+ 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
diff --git a/udkapi/com/sun/star/reflection/InvocationTargetException.idl b/udkapi/com/sun/star/reflection/InvocationTargetException.idl
new file mode 100644
index 000000000000..cbc3e9aec5be
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/InvocationTargetException.idl
@@ -0,0 +1,57 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_InvocationTargetException_idl__
+#define __com_sun_star_reflection_InvocationTargetException_idl__
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+
+//=============================================================================
+
+ 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
diff --git a/udkapi/com/sun/star/reflection/MethodMode.idl b/udkapi/com/sun/star/reflection/MethodMode.idl
new file mode 100644
index 000000000000..c5b2afe2c0de
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/MethodMode.idl
@@ -0,0 +1,59 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#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
diff --git a/udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl b/udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl
new file mode 100644
index 000000000000..b553d4d0aedc
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl
@@ -0,0 +1,54 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_reflection_NoSuchTypeNameException_idl__
+#define __com_sun_star_reflection_NoSuchTypeNameException_idl__
+
+#ifndef __com_sun_star_uno_Exception_idl__
+#include <com/sun/star/uno/Exception.idl>
+#endif
+
+//=============================================================================
+
+ 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
diff --git a/udkapi/com/sun/star/reflection/ParamInfo.idl b/udkapi/com/sun/star/reflection/ParamInfo.idl
new file mode 100644
index 000000000000..e3510a7502ea
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/ParamInfo.idl
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_ParamInfo_idl__
+#define __com_sun_star_reflection_ParamInfo_idl__
+
+#ifndef __com_sun_star_reflection_ParamMode_idl__
+#include <com/sun/star/reflection/ParamMode.idl>
+#endif
+
+//=============================================================================
+
+ 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
diff --git a/udkapi/com/sun/star/reflection/ParamMode.idl b/udkapi/com/sun/star/reflection/ParamMode.idl
new file mode 100644
index 000000000000..a14157eb603c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/ParamMode.idl
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#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
diff --git a/udkapi/com/sun/star/reflection/ProxyFactory.idl b/udkapi/com/sun/star/reflection/ProxyFactory.idl
new file mode 100644
index 000000000000..872a9b8529b3
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/ProxyFactory.idl
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_ProxyFactory_idl__
+#define __com_sun_star_reflection_ProxyFactory_idl__
+
+#ifndef __com_sun_star_reflection_XProxyFactory_idl__
+#include <com/sun/star/reflection/XProxyFactory.idl>
+#endif
+
+
+//=============================================================================
+
+ 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 an 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
+{
+ /** Factory interface to produce proxies
+ */
+ interface com::sun::star::reflection::XProxyFactory;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+/*=============================================================================
+
+=============================================================================*/
+#endif
diff --git a/udkapi/com/sun/star/reflection/TypeDescriptionManager.idl b/udkapi/com/sun/star/reflection/TypeDescriptionManager.idl
new file mode 100644
index 000000000000..77dd99f6b2a5
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/TypeDescriptionManager.idl
@@ -0,0 +1,125 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_TypeDescriptionManager_idl__
+#define __com_sun_star_reflection_TypeDescriptionManager_idl__
+
+#ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__
+#include <com/sun/star/container/XHierarchicalNameAccess.idl>
+#endif
+
+#ifndef __com_sun_star_container_XSet_idl__
+#include <com/sun/star/container/XSet.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XInitialization_idl__
+#include <com/sun/star/lang/XInitialization.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XComponent_idl__
+#include <com/sun/star/lang/XComponent.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_XTypeDescriptionEnumerationAccess_idl__
+#include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl>
+#endif
+
+//=============================================================================
+
+ 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
+ <type scope="com::sun::star::reflection">TypeDescriptionProvider</type>s
+ and may cache type descriptions.<br>
+ Using cppuhelper's bootstrapping routines bootstrapping an initial
+ component context, there is a singleton accessable 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.
+
+ <ul>
+ <li>Names are given in dotted notation, for example
+ <code>"com.sun.star.uno.XInterface"</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>The returned values are of interface type
+ <type>XTypeDescription</type>.</p>
+
+ <p>Even though the name of this interface suggests that the used type
+ names are hierarchic, this need not 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 <type>TypeDescriptionManager</type>
+
+ @since OOo 1.1.2
+ */
+ [optional] interface XTypeDescriptionEnumerationAccess;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+/*=============================================================================
+
+=============================================================================*/
+#endif
diff --git a/udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl b/udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl
new file mode 100644
index 000000000000..c99217a807fb
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl
@@ -0,0 +1,90 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_TypeDescriptionProvider_idl__
+#define __com_sun_star_reflection_TypeDescriptionProvider_idl__
+
+#ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__
+#include <com/sun/star/container/XHierarchicalNameAccess.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XComponent_idl__
+#include <com/sun/star/lang/XComponent.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_XTypeDescriptionEnumerationAccess_idl__
+#include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl>
+#endif
+
+//=============================================================================
+
+ 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>
+
+ @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>. The returned values are of
+ interface type <type>XTypeDescription</type>.</p>
+
+ <p>Even though the name of this interface suggests that the used type
+ names are hierarchic, this need not be the case.</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 <type>TypeDescriptionProvider</type>
+
+ @since OOo 1.1.2
+ */
+ [optional] interface XTypeDescriptionEnumerationAccess;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+/*=============================================================================
+
+=============================================================================*/
+#endif
diff --git a/udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl b/udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl
new file mode 100644
index 000000000000..b49d7ba3c019
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl
@@ -0,0 +1,59 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#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
diff --git a/udkapi/com/sun/star/reflection/XArrayTypeDescription.idl b/udkapi/com/sun/star/reflection/XArrayTypeDescription.idl
new file mode 100644
index 000000000000..9719376f16ac
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XArrayTypeDescription.idl
@@ -0,0 +1,78 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XArrayTypeDescription_idl__
+#define __com_sun_star_reflection_XArrayTypeDescription_idl__
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+
+
+//=============================================================================
+
+ module com { module sun { module star { module reflection {
+
+//=============================================================================
+
+/** Deprecated. Arrays are not supported.
+ Reflects a fixed-size array type.
+ The type class of this description is TypeClass_ARRAY.
+
+ @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
diff --git a/udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl b/udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl
new file mode 100644
index 000000000000..4ac232067452
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XCompoundTypeDescription_idl__
+#define __com_sun_star_reflection_XCompoundTypeDescription_idl__
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+
+
+//=============================================================================
+
+ 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
+ <type>XStructTypeDescription</type>, 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
+ <type scope="com::sun::star::reflection::">XTypeDescription</type> 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
diff --git a/udkapi/com/sun/star/reflection/XConstantTypeDescription.idl b/udkapi/com/sun/star/reflection/XConstantTypeDescription.idl
new file mode 100644
index 000000000000..e830a191bb6e
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XConstantTypeDescription.idl
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_reflection_XConstantTypeDescription_idl__
+#define __com_sun_star_reflection_XConstantTypeDescription_idl__
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+
+//=============================================================================
+
+ module com { module sun { module star { module reflection {
+
+//=============================================================================
+
+/** Reflects a constant.
+
+ <p>The type class of this type is
+ <member scope="com::sun::star::uno">TypeClass::CONSTANT</member>.
+
+ <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
diff --git a/udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl b/udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl
new file mode 100644
index 000000000000..438413614d98
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl
@@ -0,0 +1,65 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_reflection_XConstantsTypeDescription_idl__
+#define __com_sun_star_reflection_XConstantsTypeDescription_idl__
+
+#ifndef __com_sun_star_reflection_XConstantTypeDescription_idl__
+#include <com/sun/star/reflection/XConstantTypeDescription.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+
+//=============================================================================
+
+ module com { module sun { module star { module reflection {
+
+//=============================================================================
+
+/** Reflects a constants group.
+
+ <p>The type class of this type is
+ <member scope="com::sun::star::uno">TypeClass::CONSTANTS</member>.
+
+ @since OOo 1.1.2
+ */
+published interface XConstantsTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the contstants defined for this constants group.
+
+ @return a sequence containing constants descriptions.
+ */
+ sequence< XConstantTypeDescription > getConstants();
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl b/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl
new file mode 100644
index 000000000000..8226b9e21361
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XEnumTypeDescription_idl__
+#define __com_sun_star_reflection_XEnumTypeDescription_idl__
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+
+
+//=============================================================================
+
+ 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
diff --git a/udkapi/com/sun/star/reflection/XIdlArray.idl b/udkapi/com/sun/star/reflection/XIdlArray.idl
new file mode 100644
index 000000000000..702201642d2e
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlArray.idl
@@ -0,0 +1,134 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XIdlArray_idl__
+#define __com_sun_star_reflection_XIdlArray_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_ArrayIndexOutOfBoundsException_idl__
+#include <com/sun/star/lang/ArrayIndexOutOfBoundsException.idl>
+#endif
+
+
+//=============================================================================
+
+ 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
+{
+ /** Rellocates the length of the sequence instance.
+
+ @param array
+ sequence instance
+ @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
diff --git a/udkapi/com/sun/star/reflection/XIdlClass.idl b/udkapi/com/sun/star/reflection/XIdlClass.idl
new file mode 100644
index 000000000000..fd9048ce111c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlClass.idl
@@ -0,0 +1,215 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XIdlClass_idl__
+#define __com_sun_star_reflection_XIdlClass_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_uno_TypeClass_idl__
+#include <com/sun/star/uno/TypeClass.idl>
+#endif
+
+#ifndef __com_sun_star_uno_Uik_idl__
+#include <com/sun/star/uno/Uik.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module reflection {
+
+ published interface XIdlField;
+ published interface XIdlMethod;
+ published interface XIdlArray;
+
+//=============================================================================
+
+/** Provides information reflecting an 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 <type scope="com::sun::star::uno">TypeClass</type>
+ 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 <type>XIdlClass</type> 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 <type>XIdlClass</type> 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 <type>XIdlField</type> interface reflecting the demanded
+ field (/interface attribute) by name.
+ <br>
+ If the reflected type is not an interface, struct or union or the
+ interace, 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 <type>XIdlField</type> 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 <type>XIdlMethod</type> 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 <type>XIdlMethod</type> 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 <type>XIdlArray</type> interface to modify instances of the array type.
+ <br>
+ If the reflected type is not an array, then a null-reference is returned.
+
+ @return
+ inteface 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
diff --git a/udkapi/com/sun/star/reflection/XIdlClassProvider.idl b/udkapi/com/sun/star/reflection/XIdlClassProvider.idl
new file mode 100644
index 000000000000..0b61cdd68bd8
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlClassProvider.idl
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XIdlClassProvider_idl__
+#define __com_sun_star_reflection_XIdlClassProvider_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_XIdlClass_idl__
+#include <com/sun/star/reflection/XIdlClass.idl>
+#endif
+
+
+//=============================================================================
+
+ 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
diff --git a/udkapi/com/sun/star/reflection/XIdlField.idl b/udkapi/com/sun/star/reflection/XIdlField.idl
new file mode 100644
index 000000000000..76daf3a1d83e
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlField.idl
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XIdlField_idl__
+#define __com_sun_star_reflection_XIdlField_idl__
+
+#ifndef __com_sun_star_reflection_XIdlMember_idl__
+#include <com/sun/star/reflection/XIdlMember.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_XIdlClass_idl__
+#include <com/sun/star/reflection/XIdlClass.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_FieldAccessMode_idl__
+#include <com/sun/star/reflection/FieldAccessMode.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalAccessException_idl__
+#include <com/sun/star/lang/IllegalAccessException.idl>
+#endif
+
+
+//=============================================================================
+
+ module com { module sun { module star { module reflection {
+
+//=============================================================================
+
+/** Deprecated. Use <type scope="com::sun::star::reflection">XIdlField2</type>
+ 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
diff --git a/udkapi/com/sun/star/reflection/XIdlField2.idl b/udkapi/com/sun/star/reflection/XIdlField2.idl
new file mode 100644
index 000000000000..87e516c906dd
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlField2.idl
@@ -0,0 +1,133 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XIdlField2_idl__
+#define __com_sun_star_reflection_XIdlField2_idl__
+
+#ifndef __com_sun_star_reflection_XIdlMember_idl__
+#include <com/sun/star/reflection/XIdlMember.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_XIdlClass_idl__
+#include <com/sun/star/reflection/XIdlClass.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_FieldAccessMode_idl__
+#include <com/sun/star/reflection/FieldAccessMode.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalAccessException_idl__
+#include <com/sun/star/lang/IllegalAccessException.idl>
+#endif
+
+
+//=============================================================================
+
+ 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-<type scope="com::sun::star::uno">RuntimeException</type>, it is
+ wrapped in a <type
+ scope="com::sun::star::lang">WrappedTargetRuntimeException</type>.</p>
+
+ @param obj
+ object instance having member of reflected type
+ @return
+ value of field
+
+ @throws IllegalAccessException
+ An <type scope="com::sun::star::lang">IllegalAccessException</type>
+ 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-<type scope="com::sun::star::uno">RuntimeException</type>, it is
+ wrapped in a <type
+ scope="com::sun::star::lang">WrappedTargetRuntimeException</type>.</p>
+
+ @param obj
+ object instance having member of reflected type
+ @param value
+ value to be set
+
+ @throws IllegalAccessException
+ An <type scope="com::sun::star::lang">IllegalAccessException</type>
+ 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
diff --git a/udkapi/com/sun/star/reflection/XIdlMember.idl b/udkapi/com/sun/star/reflection/XIdlMember.idl
new file mode 100644
index 000000000000..b806b81652bf
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlMember.idl
@@ -0,0 +1,67 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XIdlMember_idl__
+#define __com_sun_star_reflection_XIdlMember_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+
+//=============================================================================
+
+ module com { module sun { module star { module reflection {
+
+ published interface XIdlClass;
+
+/** Base interface for <type>XIdlField2</type>s and <type>XIdlMethod</type>s.
+*/
+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
diff --git a/udkapi/com/sun/star/reflection/XIdlMethod.idl b/udkapi/com/sun/star/reflection/XIdlMethod.idl
new file mode 100644
index 000000000000..8a9f106ce66a
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlMethod.idl
@@ -0,0 +1,141 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XIdlMethod_idl__
+#define __com_sun_star_reflection_XIdlMethod_idl__
+
+#ifndef __com_sun_star_reflection_XIdlMember_idl__
+#include <com/sun/star/reflection/XIdlMember.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_ParamInfo_idl__
+#include <com/sun/star/reflection/ParamInfo.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_MethodMode_idl__
+#include <com/sun/star/reflection/MethodMode.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_InvocationTargetException_idl__
+#include <com/sun/star/reflection/InvocationTargetException.idl>
+#endif
+
+
+//=============================================================================
+
+ 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 informations 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 informations 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
diff --git a/udkapi/com/sun/star/reflection/XIdlReflection.idl b/udkapi/com/sun/star/reflection/XIdlReflection.idl
new file mode 100644
index 000000000000..9455430eabf1
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlReflection.idl
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XIdlReflection_idl__
+#define __com_sun_star_reflection_XIdlReflection_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_XIdlClass_idl__
+#include <com/sun/star/reflection/XIdlClass.idl>
+#endif
+
+
+//=============================================================================
+
+ 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
diff --git a/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl b/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl
new file mode 100644
index 000000000000..ef80d722d55e
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XIndirectTypeDescription_idl__
+#define __com_sun_star_reflection_XIndirectTypeDescription_idl__
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+
+
+//=============================================================================
+
+ 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
diff --git a/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl
new file mode 100644
index 000000000000..c16d620d6f0d
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl
@@ -0,0 +1,77 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XInterfaceAttributeTypeDescription_idl__
+#define __com_sun_star_reflection_XInterfaceAttributeTypeDescription_idl__
+
+#ifndef __com_sun_star_reflection_XInterfaceMemberTypeDescription_idl__
+#include <com/sun/star/reflection/XInterfaceMemberTypeDescription.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+
+
+//=============================================================================
+
+ module com { module sun { module star { module reflection {
+
+//=============================================================================
+
+/** Reflects an interface attribute type.
+
+ <p>This type is superseded by
+ <type>XInterfaceAttributeTypeDescription2</type>, 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
diff --git a/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl
new file mode 100644
index 000000000000..96b8957683ff
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl
@@ -0,0 +1,79 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#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 <type>XInterfaceAttributeTypeDescription</type>,
+ which does not support extended attributes.</p>
+
+ @since OOo 2.0.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
diff --git a/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl
new file mode 100644
index 000000000000..bbc57be77c8e
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl
@@ -0,0 +1,71 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XInterfaceMemberTypeDescription_idl__
+#define __com_sun_star_reflection_XInterfaceMemberTypeDescription_idl__
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+
+
+//=============================================================================
+
+ 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
diff --git a/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl
new file mode 100644
index 000000000000..c51af484f950
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl
@@ -0,0 +1,90 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XInterfaceMethodTypeDescription_idl__
+#define __com_sun_star_reflection_XInterfaceMethodTypeDescription_idl__
+
+#ifndef __com_sun_star_reflection_XInterfaceMemberTypeDescription_idl__
+#include <com/sun/star/reflection/XInterfaceMemberTypeDescription.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_XMethodParameter_idl__
+#include <com/sun/star/reflection/XMethodParameter.idl>
+#endif
+
+
+//=============================================================================
+
+ 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
diff --git a/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl
new file mode 100644
index 000000000000..d47dd7c3dd47
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XInterfaceTypeDescription_idl__
+#define __com_sun_star_reflection_XInterfaceTypeDescription_idl__
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+
+#ifndef __com_sun_star_uno_Uik_idl__
+#include <com/sun/star/uno/Uik.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_XInterfaceMemberTypeDescription_idl__
+#include <com/sun/star/reflection/XInterfaceMemberTypeDescription.idl>
+#endif
+
+
+//=============================================================================
+
+ module com { module sun { module star { module reflection {
+
+//=============================================================================
+
+/** Reflects an interface type.
+
+ <p>This type is superseded by <type>XInterfaceTypeDescription2</type>, 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 <type>XInterfaceTypeDescription2</type> 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
diff --git a/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl
new file mode 100644
index 000000000000..31ab93e4ecac
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#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 <type>XInterfaceTypeDescription</type>, which only
+ supported single inheritance.</p>
+
+ @since OOo 2.0.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 <type
+ scope="com::sun::star::reflection">XInterfaceTypeDescription</type>) or
+ a typedef (of type <type
+ scope="com::sun::star::reflection">XIndirectTypeDescription</type>)
+ 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 <type
+ scope="com::sun::star::reflection">XInterfaceTypeDescription</type>) or
+ a typedef (of type <type
+ scope="com::sun::star::reflection">XIndirectTypeDescription</type>)
+ that&mdash;directly or indirectly&mdash;denotes an interface type
+ */
+ sequence<XTypeDescription> getOptionalBaseTypes();
+};
+
+}; }; }; };
+
+#endif
diff --git a/udkapi/com/sun/star/reflection/XMethodParameter.idl b/udkapi/com/sun/star/reflection/XMethodParameter.idl
new file mode 100644
index 000000000000..c089f79336ac
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XMethodParameter.idl
@@ -0,0 +1,98 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XMethodParameter_idl__
+#define __com_sun_star_reflection_XMethodParameter_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+
+
+//=============================================================================
+
+ module com { module sun { module star { module reflection {
+
+//=============================================================================
+
+/** Reflects a method parameter.
+
+ <p>This type is superseded by <type>XParameter</type>, 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
diff --git a/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl b/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl
new file mode 100644
index 000000000000..d102f246dc76
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_reflection_XModuleTypeDescription_idl__
+#define __com_sun_star_reflection_XModuleTypeDescription_idl__
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+
+//=============================================================================
+
+ module com { module sun { module star { module reflection {
+
+//=============================================================================
+
+/** Reflects a module.
+
+ <p>The type class of this type is
+ <member scope="com::sun::star::uno">TypeClass::MODULE</member>.
+
+ @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
diff --git a/udkapi/com/sun/star/reflection/XParameter.idl b/udkapi/com/sun/star/reflection/XParameter.idl
new file mode 100644
index 000000000000..d7b8aaa16cbb
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XParameter.idl
@@ -0,0 +1,59 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#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 <type>XMethodParameter</type>, which only supports
+ parameters of interface methods (which cannot have rest parameters).</p>
+
+ @since OOo 2.0.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 <atom>any</atom>.</p>
+
+ @return <TRUE/> if and only if this parameter is a rest parameter
+ */
+ boolean isRestParameter();
+};
+
+}; }; }; };
+
+#endif
diff --git a/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl b/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl
new file mode 100644
index 000000000000..f280998221e9
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl
@@ -0,0 +1,67 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_reflection_XPropertyTypeDescription_idl__
+#define __com_sun_star_reflection_XPropertyTypeDescription_idl__
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+
+//=============================================================================
+
+ module com { module sun { module star { module reflection {
+
+//=============================================================================
+
+/** Reflects a property.
+
+ <p>The type class of this type is
+ <member scope="com::sun::star::uno">TypeClass::PROPERTY</member>.
+
+ @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
+ <type scope="com::sun::star::beans">PropertyAttribute</type>
+ */
+ short getPropertyFlags();
+
+ /** @return the type description for this property.
+ */
+ XTypeDescription getPropertyTypeDescription();
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/udkapi/com/sun/star/reflection/XProxyFactory.idl b/udkapi/com/sun/star/reflection/XProxyFactory.idl
new file mode 100644
index 000000000000..9b592e594031
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XProxyFactory.idl
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XProxyFactory_idl__
+#define __com_sun_star_reflection_XProxyFactory_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+#ifndef __com_sun_star_uno_XAggregation_idl__
+#include <com/sun/star/uno/XAggregation.idl>
+#endif
+
+//=============================================================================
+
+ 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 an 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
diff --git a/udkapi/com/sun/star/reflection/XPublished.idl b/udkapi/com/sun/star/reflection/XPublished.idl
new file mode 100644
index 000000000000..afb7cefa8a9a
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XPublished.idl
@@ -0,0 +1,113 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#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 &ldquo;published&rdquo; status of a UNOIDL entity.
+
+ <p>This interface is intended to be supported by objects that also support
+ <type scope="com::sun::star::reflection">XTypeDescription</type>.
+ (This interface could have been made an optional sub-interface of
+ <type scope="com::sun::star::reflection">XTypeDescription</type>, 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 <type scope="com::sun::star::reflection">XTypeDescription</type>
+ and its subtypes, this optional interface should be supported as follows:</p>
+ <ul>
+ <li>Enum types
+ (<type scope="com::sun::star::reflection">XEnumTypeDescription</type>),
+ plain struct types
+ (<type scope="com::sun::star::reflection">XStructTypeDescription</type>),
+ polymorphic struct type templates
+ (<type scope="com::sun::star::reflection">XStructTypeDescription</type>),
+ exception types (<type
+ scope="com::sun::star::reflection">XCompoundTypeDescription</type>),
+ interface types (<type
+ scope="com::sun::star::reflection">XInterfaceTypeDescription2</type>),
+ typedefs (<type
+ scope="com::sun::star::reflection">XIndirectTypeDescription</type>),
+ individual constants (<type
+ scope="com::sun::star::reflection">XConstantTypeDescription</type>),
+ constant groups (<type
+ scope="com::sun::star::reflection">XConstantsTypeDescription</type>),
+ single-interface&ndash;based services (<type
+ scope="com::sun::star::reflection">XServiceTypeDescription2</type>),
+ accumulation-based services (<type
+ scope="com::sun::star::reflection">XServiceTypeDescription2</type>),
+ interface-based singletons (<type
+ scope="com::sun::star::reflection">XSingletonTypeDescription2</type>),
+ and service-based singletons (<type
+ scope="com::sun::star::reflection">XSingletonTypeDescription2</type>)
+ support the notion of being published. Therefore, for an object that
+ represents any such entity,
+ <type scope="com::sun::star::reflection">XPublished</type> should be
+ supported.</li>
+
+ <li>Sequence types (<type
+ scope="com::sun::star::reflection">XIndirectTypeDescription</type>),
+ type parameters of polymorphic struct type templates
+ (<type scope="com::sun::star::reflection">XTypeDescription</type>),
+ instantiated polymorphic struct types
+ (<type scope="com::sun::star::reflection">XStructTypeDescription</type>),
+ attributes of interface types (<type scope="com::sun::star::reflection">
+ XInterfaceAttributeTypeDescription2</type>), methods of interface types
+ (<type scope="com::sun::star::reflection">
+ XInterfaceMethodTypeDescription</type>), properties of
+ accumulation-based services (<type
+ scope="com::sun::star::reflection">XPropertyTypeDescription</type>),
+ deprecated
+ <type scope="com::sun::star::reflection">XArrayTypeDescription</type>s,
+ and deprecated
+ <type scope="com::sun::star::reflection">XUnionTypeDescription</type>s do
+ not support the notion of being published. Therefore, for an object that
+ represents any such entity,
+ <type scope="com::sun::star::reflection">XPublished</type> should not be
+ supported.</li>
+ </ul>
+
+ @since OOo 2.0.0
+*/
+interface XPublished {
+ /**
+ Returns the &ldquo;published&rdquo; status of a UNOIDL entity.
+
+ @return <TRUE/> if the UNOIDL entity represented by this object is
+ published
+ */
+ boolean isPublished();
+};
+
+}; }; }; };
+
+#endif
diff --git a/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl b/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl
new file mode 100644
index 000000000000..2f8f05ba82cc
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_reflection_XServiceConstructorDescription2_idl__
+#define __com_sun_star_reflection_XServiceConstructorDescription2_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.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
+ <atom>string</atom> 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
diff --git a/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl b/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl
new file mode 100644
index 000000000000..8fcd27642e2b
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl
@@ -0,0 +1,109 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_reflection_XServiceTypeDescription_idl__
+#define __com_sun_star_reflection_XServiceTypeDescription_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+#ifndef __com_sun_star_reflection_XInterfaceTypeDescription_idl__
+#include <com/sun/star/reflection/XInterfaceTypeDescription.idl>
+#endif
+#ifndef __com_sun_star_reflection_XPropertyTypeDescription_idl__
+#include <com/sun/star/reflection/XPropertyTypeDescription.idl>
+#endif
+
+//=============================================================================
+
+ module com { module sun { module star { module reflection {
+
+//=============================================================================
+
+/** Reflects a service.
+
+ <p>This type is superseded by <type>XServiceTypeDescription2</type>, which
+ supports single-interface&ndash;based services, in addition to the obsolete,
+ accumulation-based services.</p>
+
+ <p>The type class of this type is
+ <member scope="com::sun::star::uno">TypeClass::SERVICE</member>.
+
+ @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
diff --git a/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl b/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl
new file mode 100644
index 000000000000..2536a2d2fe16
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#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 <type>XServiceTypeDescription</type>, which only
+ supports obsolete, accumulation-based services.</p>
+
+ @since OOo 2.0.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 <type
+ scope="com::sun::star::reflection">XInterfaceTypeDescription</type>
+ or, in case of a typedef, <type
+ scope="com::sun::star::reflection">XIndirectTypeDescription</type>),
+ 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
diff --git a/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl b/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl
new file mode 100644
index 000000000000..e77382730511
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_reflection_XSingletonTypeDescription_idl__
+#define __com_sun_star_reflection_XSingletonTypeDescription_idl__
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_XServiceTypeDescription_idl__
+#include <com/sun/star/reflection/XServiceTypeDescription.idl>
+#endif
+
+//=============================================================================
+
+ module com { module sun { module star { module reflection {
+
+//=============================================================================
+
+/** Reflects a singleton.
+
+ <p>This type is superseded by <type>XSingletonTypeDescription2</type>, which
+ supports interface-based singletons, in addition to the obsolete,
+ service-based singletons.</p>
+
+ <p>The type class of this type is
+ <member scope="com::sun::star::uno">TypeClass::SINGLETON</member>.
+
+ @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
diff --git a/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl b/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl
new file mode 100644
index 000000000000..c4b42d786b00
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#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 <type>XSingletonTypeDescription</type>, which only
+ supports obsolete, service-based singletons.</p>
+
+ @since OOo 2.0.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 <type
+ scope="com::sun::star::reflection">XInterfaceTypeDescription</type>
+ or, in case of a typedef, <type
+ scope="com::sun::star::reflection">XIndirectTypeDescription</type>),
+ for an interface-based singleton; for an obsolete, service-based
+ singleton, <NULL/> is returned
+ */
+ XTypeDescription getInterface();
+};
+
+}; }; }; };
+
+#endif
diff --git a/udkapi/com/sun/star/reflection/XStructTypeDescription.idl b/udkapi/com/sun/star/reflection/XStructTypeDescription.idl
new file mode 100644
index 000000000000..69063323874c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XStructTypeDescription.idl
@@ -0,0 +1,93 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#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 <type>XCompoundTypeDescription</type>, 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,
+ <member scope="com::sun::star::reflection"><!--
+ -->XStructTypeDescription::getTypeParameters</member> returns a non-empty
+ sequence, while <member scope="com::sun::star::reflection"><!--
+ -->XStructTypeDescription::getTypeArguments</member> returns an empty
+ sequence.</li>
+
+ <li>Instantiated polymorphic struct types, like <code>Struct&lt;long,
+ hyper&gt;</code>. For these,
+ <member scope="com::sun::star::reflection"><!--
+ -->XStructTypeDescription::getTypeParameters</member> returns an empty
+ sequence, while <member scope="com::sun::star::reflection"><!--
+ -->XStructTypeDescription::getTypeArguments</member> returns a non-empty
+ sequence.</li>
+
+ <li>Plain struct types. For these, both
+ <member scope="com::sun::star::reflection"><!--
+ -->XStructTypeDescription::getTypeParameters</member> and
+ <member scope="com::sun::star::reflection"><!--
+ -->XStructTypeDescription::getTypeArguments</member> return an empty
+ sequence.</li>
+ </ul>
+
+ @since OOo 2.0.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
diff --git a/udkapi/com/sun/star/reflection/XTypeDescription.idl b/udkapi/com/sun/star/reflection/XTypeDescription.idl
new file mode 100644
index 000000000000..34ce721d2f33
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XTypeDescription.idl
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#define __com_sun_star_reflection_XTypeDescription_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_uno_TypeClass_idl__
+#include <com/sun/star/uno/TypeClass.idl>
+#endif
+
+
+//=============================================================================
+
+ 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
diff --git a/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl
new file mode 100644
index 000000000000..bc47bdfc26d5
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl
@@ -0,0 +1,69 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_reflection_XTypeDescriptionEnumeration_idl__
+#define __com_sun_star_reflection_XTypeDescriptionEnumeration_idl__
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+#ifndef __com_sun_star_container_XEnumeration_idl__
+#include <com/sun/star/container/XEnumeration.idl>
+#endif
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+//=============================================================================
+
+ 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
diff --git a/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl
new file mode 100644
index 000000000000..5a7e129919b7
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl
@@ -0,0 +1,187 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_reflection_XTypeDescriptionEnumerationAccess_idl__
+#define __com_sun_star_reflection_XTypeDescriptionEnumerationAccess_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+#ifndef __com_sun_star_uno_TypeClass_idl__
+#include <com/sun/star/uno/TypeClass.idl>
+#endif
+#ifndef __com_sun_star_reflection_XTypeDescriptionEnumeration_idl__
+#include <com/sun/star/reflection/XTypeDescriptionEnumeration.idl>
+#endif
+#ifndef __com_sun_star_reflection_TypeDescriptionSearchDepth_idl__
+#include <com/sun/star/reflection/TypeDescriptionSearchDepth.idl>
+#endif
+#ifndef __com_sun_star_reflection_NoSuchTypeNameException_idl__
+#include <com/sun/star/reflection/NoSuchTypeNameException.idl>
+#endif
+#ifndef __com_sun_star_reflection_InvalidTypeNameException_idl__
+#include <com/sun/star/reflection/InvalidTypeNameException.idl>
+#endif
+
+//=============================================================================
+
+ 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 an 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 an UNOIDL module. Modules are seperated 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><member scope="com::sun::star::uno">TypeClass::MODULE</member>
+ <li><member scope="com::sun::star::uno">TypeClass::INTERFACE</member>
+ <li><member scope="com::sun::star::uno">TypeClass::SERVICE</member>
+ <li><member scope="com::sun::star::uno">TypeClass::STRUCT</member>
+ <li><member scope="com::sun::star::uno">TypeClass::ENUM</member>
+ <li><member scope="com::sun::star::uno">TypeClass::EXCEPTION</member>
+ <li><member scope="com::sun::star::uno">TypeClass::TYPEDEF</member>
+ <li><member scope="com::sun::star::uno">TypeClass::CONSTANT</member>
+ <li><member scope="com::sun::star::uno">TypeClass::CONSTANTS</member>
+ <li><member scope="com::sun::star::uno">TypeClass::SINGLETON</member>
+ </ul>
+
+ @param depth
+ specifies the depth of search in the underlying tree of type
+ descriptions. Clients should be aware of the fact that specifiying
+ <member>TypeDescriptionSearchDepth::INFINITE</member> can lead to
+ larger delays when constructing or using the
+ <type>XTypeDescriptionEnumeration</type> instance.
+
+ @returns
+ an enumeration of type descriptions.
+
+ <p>The enumeration returns implementations of
+ <type>XTypeDescription</type>. Following concrete UNOIDL parts
+ represented by specialized interfaces derived from
+ <type>XTypeDescription</type> can be returned by the enumerator:
+
+ <table border="1">
+ <thead><tr><th>IDL</th><th>interface</th></tr></thead>
+ <tbody>
+ <tr>
+ <td>enum</td>
+ <td><type>XEnumTypeDescription</type></td>
+ </tr>
+ <tr>
+ <td>struct</td>
+ <td><type>XCompoundTypeDescription</type> (the returned
+ object should actually implement
+ <type>XStructTypeDescription</type>)</td>
+ </tr>
+ <tr>
+ <td>exception</td>
+ <td><type>XCompoundTypeDescription</type></td>
+ </tr>
+ <tr>
+ <td>interface</td>
+ <td><type>XInterfaceTypeDescription</type> (the returned
+ object should actually implement
+ <type>XInterfaceTypeDescription2</type>)</td>
+ </tr>
+ <tr>
+ <td>service</td>
+ <td><type>XServiceTypeDescription</type> (the returned
+ object should actually implement
+ <type>XServiceTypeDescription2</type>)</td>
+ </tr>
+ <tr>
+ <td>singleton</td>
+ <td><type>XSingletonTypeDescription</type> (the returned
+ object should actually implement
+ <type>XSingletonTypeDescription2</type>)</td>
+ </tr>
+ <tr>
+ <td>module</td>
+ <td><type>XModuleTypeDescription</type></td>
+ </tr>
+ <tr>
+ <td>typedef</td>
+ <td><type>XIndirectTypeDescription</type></td>
+ </tr>
+ <tr>
+ <td>constant</td>
+ <td><type>XConstantTypeDescription</type></td>
+ </tr>
+ <tr>
+ <td>constants</td>
+ <td><type>XConstantsTypeDescription</type></td>
+ </tr>
+ </tbody>
+ </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
+ an 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
diff --git a/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl b/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl
new file mode 100644
index 000000000000..d02d6d53fd2d
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_reflection_XUnionTypeDescription_idl__
+#define __com_sun_star_reflection_XUnionTypeDescription_idl__
+
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#include <com/sun/star/reflection/XTypeDescription.idl>
+#endif
+
+
+//=============================================================================
+
+ module com { module sun { module star { module reflection {
+
+//=============================================================================
+
+/** Deprecated. Unions are not supported.
+ Reflects a union type.
+ The discriminant of a union switches between the current value types.
+ In addition, there is also a default case, having no discriminant.
+
+ @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
diff --git a/udkapi/com/sun/star/reflection/makefile.mk b/udkapi/com/sun/star/reflection/makefile.mk
new file mode 100644
index 000000000000..a8b1bc8e62a4
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/makefile.mk
@@ -0,0 +1,93 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..$/..
+
+PRJNAME=api
+
+TARGET=cssreflection
+PACKAGE=com$/sun$/star$/reflection
+
+# --- Settings -----------------------------------------------------
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# ------------------------------------------------------------------------
+
+IDLFILES=\
+ CoreReflection.idl\
+ FieldAccessMode.idl\
+ InvalidTypeNameException.idl\
+ InvocationTargetException.idl\
+ MethodMode.idl\
+ NoSuchTypeNameException.idl\
+ ParamInfo.idl\
+ ParamMode.idl\
+ ProxyFactory.idl\
+ TypeDescriptionManager.idl\
+ TypeDescriptionProvider.idl\
+ TypeDescriptionSearchDepth.idl\
+ XArrayTypeDescription.idl\
+ XCompoundTypeDescription.idl\
+ XConstantTypeDescription.idl\
+ XConstantsTypeDescription.idl\
+ XUnionTypeDescription.idl\
+ XEnumTypeDescription.idl\
+ XIdlArray.idl\
+ XIdlClass.idl\
+ XIdlClassProvider.idl\
+ XIdlField.idl\
+ XIdlField2.idl\
+ XIdlMember.idl\
+ XIdlMethod.idl\
+ XIdlReflection.idl\
+ XIndirectTypeDescription.idl\
+ XInterfaceAttributeTypeDescription.idl\
+ XInterfaceAttributeTypeDescription2.idl \
+ XInterfaceMemberTypeDescription.idl\
+ XInterfaceMethodTypeDescription.idl\
+ XInterfaceTypeDescription.idl\
+ XInterfaceTypeDescription2.idl \
+ XMethodParameter.idl\
+ XModuleTypeDescription.idl\
+ XParameter.idl \
+ XPropertyTypeDescription.idl\
+ XProxyFactory.idl\
+ XPublished.idl \
+ XServiceConstructorDescription.idl \
+ XServiceTypeDescription.idl\
+ XServiceTypeDescription2.idl \
+ XSingletonTypeDescription.idl\
+ XSingletonTypeDescription2.idl \
+ XStructTypeDescription.idl \
+ XTypeDescription.idl\
+ XTypeDescriptionEnumeration.idl\
+ XTypeDescriptionEnumerationAccess.idl
+
+# ------------------------------------------------------------------
+
+.INCLUDE : target.mk
+.INCLUDE : $(PRJ)$/util$/target.pmk