+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a constants group.
+
+ The type class of this type is
+ com::sun::star::uno::TypeClass::CONSTANTS.
+
+ @since OOo 1.1.2
+ */
+published interface XConstantsTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the constants defined for this constants group.
+
+ @return a sequence containing constants descriptions.
+ */
+ sequence< XConstantTypeDescription > getConstants();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl b/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl
new file mode 100644
index 000000000..d01574342
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl
@@ -0,0 +1,60 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XEnumTypeDescription_idl__
+#define __com_sun_star_reflection_XEnumTypeDescription_idl__
+
+#include
+
+
+
+ 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 getEnumNames();
+
+ /** Returns the enum member names.
+
+ @return
+ enum member names
+ */
+ sequence getEnumValues();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlArray.idl b/udkapi/com/sun/star/reflection/XIdlArray.idl
new file mode 100644
index 000000000..6f60069d6
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlArray.idl
@@ -0,0 +1,116 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XIdlArray_idl__
+#define __com_sun_star_reflection_XIdlArray_idl__
+
+#include
+
+#include
+
+#include
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects an IDL sequence and provides dynamic access to instances of
+ that sequence.
+ This interface supports widening conversion when getting or setting elements.
+
+ @attention
+ Although the name of this interface denotes arrays,
+ sequences are meant. Don't be obfuscated, arrays are not supported by UNO!
+*/
+published interface XIdlArray: com::sun::star::uno::XInterface
+{
+ /** Reallocates the length of the sequence instance.
+
+ @param array
+ sequence instance
+ @param length
+ new length of sequence
+ */
+ void realloc(
+ [inout] any array,
+ [in] long length )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Returns the length of the given sequence.
+
+ @param array
+ sequence instance
+ @return
+ length of sequence
+ */
+ long getLen( [in] any array )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Returns element at given index.
+
+ @param aArray
+ sequence instance
+ @param nIndex
+ index
+ @return
+ value
+
+ @throws IllegalArgumentException
+ if the specified object is not a sequence or if the specified object is null
+
+ @throws ArrayIndexOutOfBoundsException
+ if the specified index argument is negative, or if it is greater than or equal to the
+ length of the specified sequence.
+ */
+ any get(
+ [in] any aArray,
+ [in] long nIndex )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::ArrayIndexOutOfBoundsException );
+
+ /** Sets a new value at given index.
+
+ @param aArray
+ sequence instance
+ @param nIndex
+ index
+ @param aNewValue
+ new value to be set
+
+ @throws IllegalArgumentException
+ if the specified object is not a sequence or if the specified object is null
+
+ @throws ArrayIndexOutOfBoundsException
+ if the specified index argument is negative, or if it is greater than or equal to the
+ length of the specified sequence.
+ */
+ void set(
+ [inout] any aArray,
+ [in] long nIndex,
+ [in] any aNewValue )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::ArrayIndexOutOfBoundsException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlClass.idl b/udkapi/com/sun/star/reflection/XIdlClass.idl
new file mode 100644
index 000000000..d6c43861e
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlClass.idl
@@ -0,0 +1,197 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XIdlClass_idl__
+#define __com_sun_star_reflection_XIdlClass_idl__
+
+#include
+
+#include
+
+#include
+
+
+module com { module sun { module star { module reflection {
+
+ published interface XIdlField;
+ published interface XIdlMethod;
+ published interface XIdlArray;
+
+
+/** Provides information reflecting a UNO type.
+*/
+published interface XIdlClass: com::sun::star::uno::XInterface
+{
+ /** Deprecated. Do not call.
+ @deprecated
+ */
+ sequence 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 (xType
).
+
+ @param xType
+ another reflected type
+ @return
+ true, if values of this reflected type are assignable
+ from values of xType
.
+ */
+ boolean isAssignableFrom( [in] XIdlClass xType );
+
+ /** Returns the com::sun::star::uno::TypeClass
+ of the reflected type.
+
+ @returns
+ type class of the reflected type.
+ */
+ com::sun::star::uno::TypeClass getTypeClass();
+
+ /** Returns the fully-qualified name of the reflected type.
+
+ @returns
+ the fully-qualified name of the type
+ */
+ string getName();
+
+ /** Deprecated. Do not call.
+
+ @deprecated
+ */
+ com::sun::star::uno::Uik getUik();
+
+ /** If the reflected type is an interface, then the returned
+ sequence of XIdlClass reflect the base interfaces.
+
+ 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 getSuperclasses();
+
+ /** Deprecated. Do not call.
+ @deprecated
+ */
+ sequence getInterfaces();
+
+ /** If the reflected type is an array or sequence, then this method
+ returns a XIdlClass interface reflecting
+ the element.
+
+ @return
+ reflection interface of the element type of an array or
+ sequence type (null-reference otherwise).
+ */
+ XIdlClass getComponentType();
+
+ /** If the reflected type is an interface, struct or union, then you
+ get a XIdlField interface reflecting the demanded
+ field (/interface attribute) by name.
+
+ If the reflected type is not an interface, struct or union or the
+ interface, struct or union does not have a field (/interface attribute)
+ with the demanded name, then a null-reference is returned.
+
+ @param aName
+ name of the demanded field reflection
+ @return
+ demanded field (/interface attribute) reflection (or null-reference)
+ */
+ XIdlField getField( [in] string aName );
+
+ /** If the reflected type is an interface, struct or union, then you
+ get a sequence of XIdlField interfaces reflecting all fields
+ (/interface attributes). This also includes all inherited
+ fields (/interface attributes) of the interface, struct of union.
+
+ 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 getFields();
+
+ /** If the reflected type is an interface, then you get
+ a XIdlMethod interface reflecting the demanded method by name.
+
+ If the reflected type is not an interface or the interface does not have
+ a method with the demanded name (including inherited methods),
+ then a null-reference is returned.
+
+ @param aName
+ name of demanded method reflection
+ @return
+ demanded method reflection (or null-reference)
+ */
+ XIdlMethod getMethod( [in] string aName );
+
+ /** If the reflected type is an interface, then you get
+ a sequence of XIdlMethod interfaces reflecting all methods
+ of the interface. This also includes the inherited methods of the interface.
+
+ 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 getMethods();
+
+ /** If the reflected type is an array, then you get
+ a XIdlArray interface to modify instances of the array type.
+
+ If the reflected type is not an array, then a null-reference is returned.
+
+ @return
+ interface to modify array instances (or null-reference)
+ */
+ XIdlArray getArray();
+
+ /** This method creates instances of the reflected type.
+
+ @attention
+ Instances of type any
can not be passed using an any
, because
+ anys cannot be nested. So if the reflected type is an any
, then the
+ returned value is empty.
+
+ @param obj
+ pure out parameter to pass the created instance
+ */
+ void createObject( [out] any obj );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlClassProvider.idl b/udkapi/com/sun/star/reflection/XIdlClassProvider.idl
new file mode 100644
index 000000000..97ee21dc4
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlClassProvider.idl
@@ -0,0 +1,45 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XIdlClassProvider_idl__
+#define __com_sun_star_reflection_XIdlClassProvider_idl__
+
+#include
+
+#include
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Deprecated interface. Do not use anymore.
+
+ @deprecated
+*/
+published interface XIdlClassProvider: com::sun::star::uno::XInterface
+{
+ sequence getIdlClasses();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlField.idl b/udkapi/com/sun/star/reflection/XIdlField.idl
new file mode 100644
index 000000000..79540f533
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlField.idl
@@ -0,0 +1,61 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XIdlField_idl__
+#define __com_sun_star_reflection_XIdlField_idl__
+
+#include
+
+#include
+
+#include
+
+#include
+
+#include
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Deprecated. Use com::sun::star::reflection::XIdlField2
+ instead.
+
+ @deprecated
+*/
+published interface XIdlField: com::sun::star::reflection::XIdlMember
+{
+ com::sun::star::reflection::XIdlClass getType();
+ com::sun::star::reflection::FieldAccessMode getAccessMode();
+ any get(
+ [in] any obj )
+ raises( com::sun::star::lang::IllegalArgumentException );
+ void set(
+ [in] any obj,
+ [in] any value )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::IllegalAccessException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlField2.idl b/udkapi/com/sun/star/reflection/XIdlField2.idl
new file mode 100644
index 000000000..4f21b6ab7
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlField2.idl
@@ -0,0 +1,109 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XIdlField2_idl__
+#define __com_sun_star_reflection_XIdlField2_idl__
+
+#include
+
+#include
+
+#include
+
+#include
+
+#include
+
+
+
+ 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.
+
+ When setting an interface attribute raises a
+ non com::sun::star::uno::RuntimeException, it is
+ wrapped in a com::sun::star::lang::WrappedTargetRuntimeException.
+
+ @param obj
+ object instance having member of reflected type
+ @return
+ value of field
+
+ @throws IllegalAccessException
+ A com::sun::star::lang::IllegalAccessException
+ is thrown if the given object is no interface, enum or compound type;
+ or the given object does not have the reflected field.
+ */
+ any get(
+ [in] any obj )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Sets the value of the reflected field of the given object,
+ i.e. an interface or compound type (struct/exception).
+
+ When setting an interface attribute raises a
+ non com::sun::star::uno::RuntimeException, it is
+ wrapped in a com::sun::star::lang::WrappedTargetRuntimeException.
+
+ @param obj
+ object instance having member of reflected type
+ @param value
+ value to be set
+
+ @throws IllegalAccessException
+ A com::sun::star::lang::IllegalAccessException
+ is thrown if the given object is no interface or compound type;
+ or the given object does not have the reflected field.
+ */
+ void set(
+ [inout] any obj,
+ [in] any value )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::IllegalAccessException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlMember.idl b/udkapi/com/sun/star/reflection/XIdlMember.idl
new file mode 100644
index 000000000..5f07cd3de
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlMember.idl
@@ -0,0 +1,54 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XIdlMember_idl__
+#define __com_sun_star_reflection_XIdlMember_idl__
+
+#include
+
+
+
+ module com { module sun { module star { module reflection {
+
+ published interface XIdlClass;
+
+/** Base interface for XIdlField2s and XIdlMethods.
+*/
+published interface XIdlMember: com::sun::star::uno::XInterface
+{
+ /** Returns the declaring type of this field, i.e. the type having
+ the member declared (interface, enum, struct, exception).
+
+ @returns
+ declaring type
+ */
+ XIdlClass getDeclaringClass();
+
+ /** Returns the fully-qualified name of the member.
+
+ @return fully-qualified name of the member
+ */
+ string getName();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlMethod.idl b/udkapi/com/sun/star/reflection/XIdlMethod.idl
new file mode 100644
index 000000000..4d6243454
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlMethod.idl
@@ -0,0 +1,119 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XIdlMethod_idl__
+#define __com_sun_star_reflection_XIdlMethod_idl__
+
+#include
+
+#include
+
+#include
+
+#include
+
+#include
+
+
+
+ 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 getParameterTypes();
+
+ /** Returns formal parameter information of the reflected method
+ in order of IDL declaration.
+ Parameter information reflects the parameter's access mode (in, out, inout),
+ the parameter's name and formal type.
+
+ @return
+ parameter information of reflected method
+ */
+ sequence getParameterInfos();
+
+ /** Returns the declared exceptions types of the reflected method.
+
+ @return
+ declared exception types of reflected method
+ */
+ sequence 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 args )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::reflection::InvocationTargetException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlReflection.idl b/udkapi/com/sun/star/reflection/XIdlReflection.idl
new file mode 100644
index 000000000..bbded9766
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlReflection.idl
@@ -0,0 +1,67 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XIdlReflection_idl__
+#define __com_sun_star_reflection_XIdlReflection_idl__
+
+#include
+
+#include
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Interface to reflect types.
+
+ @see CoreReflection
+ @see XIdlClass
+*/
+published interface XIdlReflection: com::sun::star::uno::XInterface
+{
+ /** Obtaining a reflection interface for a type. You specify the type by
+ its name.
+ If the given type name can not be reflected, then a null-reference
+ is returned.
+
+ @param aTypeName
+ the type's name
+ @return
+ reflection interface for the demanded type (or null)
+ */
+ com::sun::star::reflection::XIdlClass forName( [in] string aTypeName );
+
+ /** Obtaining a reflection interface for an object. This method takes
+ the type of the object the any contains into account. If the any
+ contains no object, then a null-reference is returned.
+
+ @param aObj
+ an object
+ @return
+ reflection interface of the type of the demanded object (or null)
+ */
+ com::sun::star::reflection::XIdlClass getType( [in] any aObj );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl b/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl
new file mode 100644
index 000000000..6bf55401c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl
@@ -0,0 +1,49 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XIndirectTypeDescription_idl__
+#define __com_sun_star_reflection_XIndirectTypeDescription_idl__
+
+#include
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a typedef or sequence type.
+ The type class of this description is TypeClass_TYPEDEF or
+ TypeClass_SEQUENCE.
+*/
+published interface XIndirectTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the typedefed type, if the type is a typedef,
+ or the element type, if the type is a sequence.
+
+ @return
+ referenced type
+ */
+ com::sun::star::reflection::XTypeDescription getReferencedType();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl
new file mode 100644
index 000000000..bb45ae14e
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl
@@ -0,0 +1,61 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XInterfaceAttributeTypeDescription_idl__
+#define __com_sun_star_reflection_XInterfaceAttributeTypeDescription_idl__
+
+#include
+
+#include
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects an interface attribute type.
+
+ This type is superseded by
+ XInterfaceAttributeTypeDescription2, which supports extended
+ attributes.
+
+ The type class of this type is TypeClass_INTERFACE_ATTRIBUTE.
+*/
+published interface XInterfaceAttributeTypeDescription: com::sun::star::reflection::XInterfaceMemberTypeDescription
+{
+ /** Returns true, if this attribute is read-only.
+
+ @return
+ true, if attribute is read-only
+ */
+ boolean isReadOnly();
+
+ /** Returns the type of the attribute.
+
+ @return
+ type of attribute
+ */
+ com::sun::star::reflection::XTypeDescription getType();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl
new file mode 100644
index 000000000..af6f7f911
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl
@@ -0,0 +1,73 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_reflection_XInterfaceAttributeTypeDescription2_idl__
+#define __com_sun_star_reflection_XInterfaceAttributeTypeDescription2_idl__
+
+#include
+
+module com { module sun { module star { module reflection {
+
+interface XCompoundTypeDescription;
+
+/**
+ Reflects an interface attribute, supporting extended attributes that are
+ bound or raise exceptions.
+
+ This type supersedes XInterfaceAttributeTypeDescription,
+ which does not support extended attributes.
+
+ @since OOo 2.0
+ */
+interface XInterfaceAttributeTypeDescription2:
+ XInterfaceAttributeTypeDescription
+{
+ /**
+ Returns whether this object reflects a bound attribute.
+
+ @return `TRUE` iff this object reflects a bound attribute
+ */
+ boolean isBound();
+
+ /**
+ Returns the exceptions that can be raised by the attribute's getter.
+
+ @return the reflections of all the exceptions that are listed in the
+ raises
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 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
+ raises
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 getSetExceptions();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl
new file mode 100644
index 000000000..c18d420ab
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XInterfaceMemberTypeDescription_idl__
+#define __com_sun_star_reflection_XInterfaceMemberTypeDescription_idl__
+
+#include
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Base interface for reflected interface members.
+
+ @see XInterfaceAttributeTypeDescription
+ @see XInterfaceMethodTypeDescription
+*/
+published interface XInterfaceMemberTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns name of member
+
+ @return
+ member name
+ */
+ string getMemberName();
+
+ /** Returns the position the member including all inherited members of base
+ interfaces.
+
+ @return
+ position of member
+ */
+ long getPosition();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl
new file mode 100644
index 000000000..bde37f622
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl
@@ -0,0 +1,72 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XInterfaceMethodTypeDescription_idl__
+#define __com_sun_star_reflection_XInterfaceMethodTypeDescription_idl__
+
+#include
+
+#include
+
+#include
+
+
+
+ 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 getParameters();
+
+ /** Returns declared exceptions that may occur upon invocations of the method.
+
+ @return
+ declared exceptions of method
+ */
+ sequence getExceptions();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl
new file mode 100644
index 000000000..cca82047c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl
@@ -0,0 +1,78 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XInterfaceTypeDescription_idl__
+#define __com_sun_star_reflection_XInterfaceTypeDescription_idl__
+
+#include
+
+#include
+
+#include
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects an interface type.
+
+ This type is superseded by XInterfaceTypeDescription2, which
+ supports multiple inheritance.
+
+ @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.
+
+ This method is deprecated, as it only supports single inheritance.
+ See XInterfaceTypeDescription2 for a replacement that
+ supports multiple inheritance.
+
+ @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.
+ 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 getMembers();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl
new file mode 100644
index 000000000..a48e51c66
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl
@@ -0,0 +1,68 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_reflection_XInterfaceTypeDescription2_idl__
+#define __com_sun_star_reflection_XInterfaceTypeDescription2_idl__
+
+#include
+
+module com { module sun { module star { module reflection {
+
+interface XTypeDescription;
+
+/** Reflects an interface type, supporting multiple inheritance.
+
+ This type supersedes XInterfaceTypeDescription, which only
+ supported single inheritance.
+
+ @since OOo 2.0
+ */
+interface XInterfaceTypeDescription2: XInterfaceTypeDescription {
+ /** Returns a sequence of all directly inherited (mandatory) base interface
+ types.
+
+ @returns
+ a sequence of all directly inherited (mandatory) base interface types,
+ in the correct order; each element of the returned sequence will be the
+ reflection of either an interface type (of
+ type com::sun::star::reflection::XInterfaceTypeDescription) or
+ a typedef (of type com::sun::star::reflection::XIndirectTypeDescription)
+ that—directly or indirectly—denotes an interface type
+ */
+ sequence getBaseTypes();
+
+ /** Returns a sequence of all directly inherited optional base interface
+ types.
+
+ @returns
+ a sequence of all directly inherited optional base interface types, in
+ the correct order; each element of the returned sequence will be the
+ reflection of either an interface type (of type
+ com::sun::star::reflection::XInterfaceTypeDescription) or
+ a typedef (of type com::sun::star::reflection::XIndirectTypeDescription)
+ that—directly or indirectly—denotes an interface type
+ */
+ sequence getOptionalBaseTypes();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XMethodParameter.idl b/udkapi/com/sun/star/reflection/XMethodParameter.idl
new file mode 100644
index 000000000..11c0eb076
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XMethodParameter.idl
@@ -0,0 +1,82 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XMethodParameter_idl__
+#define __com_sun_star_reflection_XMethodParameter_idl__
+
+#include
+
+#include
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a method parameter.
+
+ This type is superseded by XParameter, which supports
+ parameters of service constructors as well as parameters of interface
+ methods.
+
+ @see XInterfaceMethodTypeDescription
+*/
+published interface XMethodParameter: com::sun::star::uno::XInterface
+{
+ /** Returns the name of the parameter
+
+ @return
+ name of parameter
+ */
+ string getName();
+
+ /** Returns the type of the parameter.
+
+ @return
+ type of parameter
+ */
+ com::sun::star::reflection::XTypeDescription getType();
+
+ /** Returns true, if the parameter is declared as [in] or [inout] in IDL.
+
+ @return
+ true, if declared [in] or [inout] parameter
+ */
+ boolean isIn();
+
+ /** Returns true, if the parameter is declared as [out] or [inout] in IDL.
+
+ @return
+ true, if declared [out] or [inout] parameter
+ */
+ boolean isOut();
+
+ /** Returns the position of the parameter regarding the IDL method declaration.
+
+ @return
+ position of the parameter
+ */
+ long getPosition();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl b/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl
new file mode 100644
index 000000000..fb2838b6e
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl
@@ -0,0 +1,50 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_reflection_XModuleTypeDescription_idl__
+#define __com_sun_star_reflection_XModuleTypeDescription_idl__
+
+#include
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a module.
+
+ The type class of this type is
+ com::sun::star::uno::TypeClass::MODULE.
+
+ @since OOo 1.1.2
+ */
+published interface XModuleTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the type descriptions for the members of this module.
+
+ @return a sequence containing type descriptions.
+ */
+ sequence< XTypeDescription > getMembers();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XParameter.idl b/udkapi/com/sun/star/reflection/XParameter.idl
new file mode 100644
index 000000000..a2785c42a
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XParameter.idl
@@ -0,0 +1,53 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_reflection_XParameter_idl__
+#define __com_sun_star_reflection_XParameter_idl__
+
+#include
+
+module com { module sun { module star { module reflection {
+
+/**
+ Reflects a parameter of an interface method or a service constructor.
+
+ This type supersedes XMethodParameter, which only supports
+ parameters of interface methods (which cannot have rest parameters).
+
+ @since OOo 2.0
+ */
+interface XParameter: XMethodParameter {
+ /**
+ Returns whether this is a rest parameter.
+
+ A rest parameter must always come last in a parameter list.
+
+ Currently, only service constructors can have rest parameters, and
+ those rest parameters must be in parameters of type `any`.
+
+ @return `TRUE` if and only if this parameter is a rest parameter
+ */
+ boolean isRestParameter();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl b/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl
new file mode 100644
index 000000000..11e2b5526
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl
@@ -0,0 +1,56 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_reflection_XPropertyTypeDescription_idl__
+#define __com_sun_star_reflection_XPropertyTypeDescription_idl__
+
+#include
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a property.
+
+ The type class of this type is
+ com::sun::star::uno::TypeClass::PROPERTY.
+
+ @since OOo 1.1.2
+ */
+published interface XPropertyTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** @return the flags defined for this property.
+
+
The possible values are defined in
+ com::sun::star::beans::PropertyAttribute
+ */
+ short getPropertyFlags();
+
+ /** @return the type description for this property.
+ */
+ XTypeDescription getPropertyTypeDescription();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XProxyFactory.idl b/udkapi/com/sun/star/reflection/XProxyFactory.idl
new file mode 100644
index 000000000..2c8b57ead
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XProxyFactory.idl
@@ -0,0 +1,65 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XProxyFactory_idl__
+#define __com_sun_star_reflection_XProxyFactory_idl__
+
+#include
+#include
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Factory interface to produce proxy objects.
+
+ @deprecated
+ Aggregation will no longer be supported as a high-level concept of UNO.
+ You may still have the option to implement a UNO object consisting of
+ several single objects in your specific programming language, though this
+ depends on your programming language.
+ Thus this interface is deprecated, too.
+*/
+published interface XProxyFactory: com::sun::star::uno::XInterface
+{
+ /** This method creates a new proxy object that acts on behalf of the given
+ target object.
+ The proxy delegates calls to the given target object.
+ In addition, it is aggregatable, thus it is possible to
+ intercept calls on the proxy's interfaces.
+
+ @attention
+ The proxy object is UNO conform, but does NOT provide original target
+ interfaces on queryInterface() calls. This may lead to problems
+ regarding object identity, e.g. when dealing with listener proxies.
+
+ @param xTarget
+ target object
+ @return
+ proxy object
+ */
+ com::sun::star::uno::XAggregation createProxy(
+ [in] com::sun::star::uno::XInterface xTarget );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XPublished.idl b/udkapi/com/sun/star/reflection/XPublished.idl
new file mode 100644
index 000000000..880438f6c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XPublished.idl
@@ -0,0 +1,103 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_reflection_XPublished_idl__
+#define __com_sun_star_reflection_XPublished_idl__
+
+#include
+
+module com { module sun { module star { module reflection {
+
+/**
+ Reflects the “published” status of a UNOIDL entity.
+
+ This interface is intended to be supported by objects that also support
+ com::sun::star::reflection::XTypeDescription.
+ (This interface could have been made an optional sub-interface of
+ com::sun::star::reflection::XTypeDescription, but is
+ instead kept independent for reasons of backwards compatibility.)
+
+ For the various kinds of UNOIDL entities that are represented by objects
+ supporting com::sun::star::reflection::XTypeDescription
+ and its subtypes, this optional interface should be supported as follows:
+
+ - Enum types
+ (com::sun::star::reflection::XEnumTypeDescription),
+ plain struct types
+ (com::sun::star::reflection::XStructTypeDescription),
+ polymorphic struct type templates
+ (com::sun::star::reflection::XStructTypeDescription),
+ exception types (com::sun::star::reflection::XCompoundTypeDescription),
+ interface types (com::sun::star::reflection::XInterfaceTypeDescription2),
+ typedefs (com::sun::star::reflection::XIndirectTypeDescription),
+ individual constants
+ (com::sun::star::reflection::XConstantTypeDescription),
+ constant groups (com::sun::star::reflection::XConstantsTypeDescription),
+ single-interface–based services
+ (com::sun::star::reflection::XServiceTypeDescription2),
+ accumulation-based services
+ (com::sun::star::reflection::XServiceTypeDescription2),
+ interface-based singletons
+ (com::sun::star::reflection::XSingletonTypeDescription2),
+ and service-based singletons
+ (com::sun::star::reflection::XSingletonTypeDescription2)
+ support the notion of being published. Therefore, for an object that
+ represents any such entity,
+ com::sun::star::reflection::XPublished should be
+ supported.
+
+ - Sequence types
+ (com::sun::star::reflection::XIndirectTypeDescription),
+ type parameters of polymorphic struct type templates
+ (com::sun::star::reflection::XTypeDescription),
+ instantiated polymorphic struct types
+ (com::sun::star::reflection::XStructTypeDescription),
+ attributes of interface types
+ (com::sun::star::reflection::XInterfaceAttributeTypeDescription2),
+ methods of interface types
+ (com::sun::star::reflection::XInterfaceMethodTypeDescription),
+ properties of accumulation-based services
+ (com::sun::star::reflection::XPropertyTypeDescription),
+ deprecated
+ com::sun::star::reflection::XArrayTypeDescriptions,
+ and deprecated
+ com::sun::star::reflection::XUnionTypeDescriptions do
+ not support the notion of being published.
+ Therefore, for an object that represents any such entity,
+ com::sun::star::reflection::XPublished should not be
+ supported.
+
+
+ @since OOo 2.0
+*/
+interface XPublished {
+ /**
+ Returns the “published” status of a UNOIDL entity.
+
+ @return `TRUE` if the UNOIDL entity represented by this object is
+ published
+ */
+ boolean isPublished();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl b/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl
new file mode 100644
index 000000000..2ba4730c5
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl
@@ -0,0 +1,77 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_reflection_XServiceConstructorDescription_idl__
+#define __com_sun_star_reflection_XServiceConstructorDescription_idl__
+
+#include
+
+module com { module sun { module star { module reflection {
+
+interface XCompoundTypeDescription;
+interface XParameter;
+
+/**
+ Reflects a service constructor.
+
+ @since OOo 2.0
+ */
+interface XServiceConstructorDescription {
+ /**
+ Returns whether the constructor is a default constructor.
+
+ @return `TRUE` if the constructor is a default constructor
+ */
+ boolean isDefaultConstructor();
+
+ /**
+ Returns the constructor's name.
+
+ @return the constructor's name; for a default constructor, an empty
+ `string` is returned
+ */
+ string getName();
+
+ /**
+ Returns the constructor's parameters.
+
+ @return the reflections of all the constructor's parameters, in their
+ lexical order; for a default constructor, an empty sequence is
+ returned
+ */
+ sequence 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 raises
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 getExceptions();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl b/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl
new file mode 100644
index 000000000..cf6a4052c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl
@@ -0,0 +1,94 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_reflection_XServiceTypeDescription_idl__
+#define __com_sun_star_reflection_XServiceTypeDescription_idl__
+
+#include
+#include
+#include
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a service.
+
+ This type is superseded by XServiceTypeDescription2, which
+ supports single-interface–based services, in addition to the obsolete,
+ accumulation-based services.
+
+ The type class of this type is
+ com::sun::star::uno::TypeClass::SERVICE.
+
+ @since OOo 1.1.2
+ */
+published interface XServiceTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the type descriptions of the mandatory services
+ defined for this service.
+
+ @return a sequence containing service type descriptions, for an
+ obsolete, accumulation-based service; for a
+ single-interface–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–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–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–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–based
+ service, an empty sequence is returned
+ */
+ sequence< XPropertyTypeDescription > getProperties();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl b/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl
new file mode 100644
index 000000000..223c769c5
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl
@@ -0,0 +1,74 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_reflection_XServiceTypeDescription2_idl__
+#define __com_sun_star_reflection_XServiceTypeDescription2_idl__
+
+#include
+
+module com { module sun { module star { module reflection {
+
+interface XServiceConstructorDescription;
+interface XTypeDescription;
+
+/**
+ Reflects a service, supporting single-interface–based services.
+
+ This type supersedes XServiceTypeDescription, which only
+ supports obsolete, accumulation-based services.
+
+ @since OOo 2.0
+ */
+interface XServiceTypeDescription2: XServiceTypeDescription {
+ /**
+ Returns whether this object reflects a single-interface–based
+ service.
+
+ @return `TRUE` if this object reflects a single-interface–based
+ service, and `FALSE` if this object reflects an obsolete,
+ accumulation-based service
+ */
+ boolean isSingleInterfaceBased();
+
+ /**
+ Returns the interface type associated with the service.
+
+ @return the reflection of the interface type associated with the service
+ (of type com::sun::star::reflection::XInterfaceTypeDescription
+ or, in case of a typedef,
+ com::sun::star::reflection::XIndirectTypeDescription),
+ for a single-interface–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 getConstructors();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl b/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl
new file mode 100644
index 000000000..8de061ba8
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_reflection_XSingletonTypeDescription_idl__
+#define __com_sun_star_reflection_XSingletonTypeDescription_idl__
+
+#include
+#include
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a singleton.
+
+ This type is superseded by XSingletonTypeDescription2, which
+ supports interface-based singletons, in addition to the obsolete,
+ service-based singletons.
+
+ The type class of this type is
+ com::sun::star::uno::TypeClass::SINGLETON.
+
+ @since OOo 1.1.2
+ */
+published interface XSingletonTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the service associated with the singleton.
+
+ @return the reflection of the service associated with the singleton, for
+ an obsolete, service-based singleton; for an interface-based
+ singleton, `NULL` is returned
+ */
+ XServiceTypeDescription getService();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl b/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl
new file mode 100644
index 000000000..e2319c538
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl
@@ -0,0 +1,64 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_reflection_XSingletonTypeDescription2_idl__
+#define __com_sun_star_reflection_XSingletonTypeDescription2_idl__
+
+#include
+
+module com { module sun { module star { module reflection {
+
+interface XTypeDescription;
+
+/**
+ Reflects a singleton, supporting interface-based singletons.
+
+ This type supersedes XSingletonTypeDescription, which only
+ supports obsolete, service-based singletons.
+
+ @since OOo 2.0
+ */
+interface XSingletonTypeDescription2: XSingletonTypeDescription {
+ /**
+ Returns whether this object reflects an interface-based singleton.
+
+ @return `TRUE` if this object reflects an interface-based singleton, and
+ `FALSE` if this object reflects an obsolete, service-based singleton
+ */
+ boolean isInterfaceBased();
+
+ /**
+ Returns the interface type associated with the singleton.
+
+ @return the reflection of the interface type associated with the
+ singleton (of type
+ com::sun::star::reflection::XInterfaceTypeDescription
+ or, in case of a typedef,
+ com::sun::star::reflection::XIndirectTypeDescription),
+ for an interface-based singleton; for an obsolete, service-based
+ singleton, `NULL` is returned
+ */
+ XTypeDescription getInterface();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XStructTypeDescription.idl b/udkapi/com/sun/star/reflection/XStructTypeDescription.idl
new file mode 100644
index 000000000..a46d6bf03
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XStructTypeDescription.idl
@@ -0,0 +1,84 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_reflection_XStructTypeDescription_idl__
+#define __com_sun_star_reflection_XStructTypeDescription_idl__
+
+#include
+
+module com { module sun { module star { module reflection {
+
+interface XTypeDescription;
+
+/**
+ Reflects a struct type, supporting polymorphic struct types.
+
+ This type supersedes XCompoundTypeDescription, which only
+ supports plain struct types.
+
+ This type is used to reflect all of the following:
+
+ - Polymorphic struct type templates, like
+
Struct<T, U>
. For these,
+ com::sun::star::reflection::XStructTypeDescription::getTypeParameters()
+ returns a non-empty sequence, while
+ com::sun::star::reflection::XStructTypeDescription::getTypeArguments()
+ returns an empty sequence.
+
+ - Instantiated polymorphic struct types, like
Struct<long,
+ hyper>
. For these,
+ com::sun::star::reflection::XStructTypeDescription::getTypeParameters()
+ returns an empty sequence, while
+ com::sun::star::reflection::XStructTypeDescription::getTypeArguments()
+ returns a non-empty sequence.
+
+ - Plain struct types. For these, both
+ com::sun::star::reflection::XStructTypeDescription::getTypeParameters()
+ and
+ com::sun::star::reflection::XStructTypeDescription::getTypeArguments()
+ return an empty sequence.
+
+
+ @since OOo 2.0
+ */
+interface XStructTypeDescription: XCompoundTypeDescription {
+ /**
+ Returns the type parameters of a polymorphic struct type template.
+
+ @return a sequence of the names of all type parameters, in the correct
+ order; for a plain struct type, or an instantiated polymorphic struct
+ type, an empty sequence is returned
+ */
+ sequence 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 getTypeArguments();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XTypeDescription.idl b/udkapi/com/sun/star/reflection/XTypeDescription.idl
new file mode 100644
index 000000000..ae2d0c666
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XTypeDescription.idl
@@ -0,0 +1,69 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XTypeDescription_idl__
+#define __com_sun_star_reflection_XTypeDescription_idl__
+
+#include
+
+#include
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a UNOIDL entity.
+
+ @see XPublished
+ @see XIndirectTypeDescription
+ @see XEnumTypeDescription
+ @see XStructTypeDescription
+ @see XCompoundTypeDescription
+ @see XInterfaceTypeDescription2
+ @see XInterfaceAttributeTypeDescription2
+ @see XInterfaceMethodTypeDescription
+ @see XConstantTypeDescription
+ @see XConstantsTypeDescription
+ @see XServiceTypeDescription2
+ @see XPropertyTypeDescription2
+ @see XSingletonTypeDescription2
+*/
+published interface XTypeDescription : com::sun::star::uno::XInterface
+{
+ /** Returns the type class of the reflected UNOIDL entity.
+
+ @return
+ type class of the entity
+ */
+ com::sun::star::uno::TypeClass getTypeClass();
+
+ /** Returns the fully qualified name of the UNOIDL entity.
+
+ @return
+ fully qualified name of the entity
+ */
+ string getName();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl
new file mode 100644
index 000000000..855998194
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl
@@ -0,0 +1,54 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_reflection_XTypeDescriptionEnumeration_idl__
+#define __com_sun_star_reflection_XTypeDescriptionEnumeration_idl__
+
+#include
+#include
+#include
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Defines an enumeration for type descriptions.
+
+ @since OOo 1.1.2
+ */
+published interface XTypeDescriptionEnumeration : com::sun::star::container::XEnumeration
+{
+ /** Returns the next element of the enumeration.
+
+ @returns
+ the next element of this enumeration.
+
+ @throws com::sun::star::container::NoSuchElementException
+ if no more elements exist.
+ */
+ XTypeDescription nextTypeDescription()
+ raises( com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl
new file mode 100644
index 000000000..6627c52d2
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl
@@ -0,0 +1,164 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_reflection_XTypeDescriptionEnumerationAccess_idl__
+#define __com_sun_star_reflection_XTypeDescriptionEnumerationAccess_idl__
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+
+ 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.
+
+ An enumeration is always created for a UNOIDL module. The
+ enumeration contents can be restricted by specifying type classes.
+ Only types that match one of the supplied type classes will be part of
+ the collection. Additionally, it is possible to specify the depth
+ for the search within the underlying type description tree.
+
+ @param moduleName
+ contains the name of a UNOIDL module. Modules are separated by a
+ single '.' (i.e., "com.sun.star.reflection"). The root of the module
+ hierarchy is specified with an empty string. Module names are always
+ absolute, never relative.
+
+ @param types
+ restricts the contents of the enumeration. It will only contain
+ type descriptions that match one of the supplied type classes. An
+ empty sequence specifies that the enumeration shall contain all
+ type descriptions.
+
+
Valid types classes are:
+
+ - com::sun::star::uno::TypeClass::MODULE
+
- com::sun::star::uno::TypeClass::INTERFACE
+
- com::sun::star::uno::TypeClass::SERVICE
+
- com::sun::star::uno::TypeClass::STRUCT
+
- com::sun::star::uno::TypeClass::ENUM
+
- com::sun::star::uno::TypeClass::EXCEPTION
+
- com::sun::star::uno::TypeClass::TYPEDEF
+
- com::sun::star::uno::TypeClass::CONSTANT
+
- com::sun::star::uno::TypeClass::CONSTANTS
+
- com::sun::star::uno::TypeClass::SINGLETON
+
+
+ @param depth
+ specifies the depth of search in the underlying tree of type
+ descriptions. Clients should be aware of the fact that specifying
+ TypeDescriptionSearchDepth::INFINITE can lead to
+ larger delays when constructing or using the
+ XTypeDescriptionEnumeration instance.
+
+ @returns
+ an enumeration of type descriptions.
+
+ The enumeration returns implementations of
+ XTypeDescription. Following concrete UNOIDL parts
+ represented by specialized interfaces derived from
+ XTypeDescription can be returned by the enumerator:
+
+
+ IDL | interface |
+
+ enum |
+ XEnumTypeDescription |
+
+
+ struct |
+ XCompoundTypeDescription (the returned
+ object should actually implement
+ XStructTypeDescription) |
+
+
+ exception |
+ XCompoundTypeDescription |
+
+
+ interface |
+ XInterfaceTypeDescription (the returned
+ object should actually implement
+ XInterfaceTypeDescription2) |
+
+
+ service |
+ XServiceTypeDescription (the returned
+ object should actually implement
+ XServiceTypeDescription2) |
+
+
+ singleton |
+ XSingletonTypeDescription (the returned
+ object should actually implement
+ XSingletonTypeDescription2) |
+
+
+ module |
+ XModuleTypeDescription |
+
+
+ typedef |
+ XIndirectTypeDescription |
+
+
+ constant |
+ XConstantTypeDescription |
+
+
+ constants |
+ XConstantsTypeDescription |
+
+
+
+ @throws NoSuchTypeNameException
+ in case that the given module name does not exist. This exception
+ will never be thrown in case moduleName is the empty string.
+
+ @throws InvalidTypeNameException
+ in case that the given module name does exist, but does not specify
+ a UNOIDL module. This exception will never be thrown in case
+ moduleName is the empty string.
+ */
+ XTypeDescriptionEnumeration
+ createTypeDescriptionEnumeration(
+ [in] string moduleName,
+ [in] sequence< com::sun::star::uno::TypeClass > types,
+ [in] TypeDescriptionSearchDepth depth )
+ raises( NoSuchTypeNameException, InvalidTypeNameException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl b/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl
new file mode 100644
index 000000000..32bbe98e4
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl
@@ -0,0 +1,83 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XUnionTypeDescription_idl__
+#define __com_sun_star_reflection_XUnionTypeDescription_idl__
+
+#include
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Deprecated, UNOIDL does not have a union concept.
+
+ @deprecated
+*/
+published interface XUnionTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the (ordinal) discriminant type.
+
+ @return
+ type of the discriminant
+ */
+ com::sun::star::reflection::XTypeDescription getDiscriminantType();
+
+ /** Returns the default discriminant value.
+
+ @return
+ default discriminant value
+ */
+ any getDefaultDiscriminant();
+
+ /** Returns the type of the default value.
+
+ @return
+ type of the default value
+ */
+ com::sun::star::reflection::XTypeDescription getDefaultMemberType();
+
+ /** Returns discriminants of all members in order of IDL declaration.
+
+ @return
+ discriminants of all members
+ */
+ sequence< any > getDiscriminants();
+
+ /** Returns types of all members in order of IDL declaration.
+
+ @return
+ types of all members
+ */
+ sequence< com::sun::star::reflection::XTypeDescription > getMemberTypes();
+
+ /** Returns names of all members in order of IDL declaration.
+
+ @return
+ names of all members
+ */
+ sequence< string > getMemberNames();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/theCoreReflection.idl b/udkapi/com/sun/star/reflection/theCoreReflection.idl
new file mode 100644
index 000000000..e0aec455c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/theCoreReflection.idl
@@ -0,0 +1,37 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_theCoreReflection_idl__
+#define __com_sun_star_reflection_theCoreReflection_idl__
+
+#include
+
+
+module com { module sun { module star { module reflection {
+
+/**
+ @since LibreOffice 4.0
+ */
+singleton theCoreReflection : com::sun::star::reflection::XIdlReflection;
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
--
cgit v1.2.3