summaryrefslogtreecommitdiffstats
path: root/udkapi/com/sun/star/reflection/XIdlClass.idl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--udkapi/com/sun/star/reflection/XIdlClass.idl197
1 files changed, 197 insertions, 0 deletions
diff --git a/udkapi/com/sun/star/reflection/XIdlClass.idl b/udkapi/com/sun/star/reflection/XIdlClass.idl
new file mode 100644
index 000000000..d6c43861e
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlClass.idl
@@ -0,0 +1,197 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_reflection_XIdlClass_idl__
+#define __com_sun_star_reflection_XIdlClass_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/uno/TypeClass.idl>
+
+#include <com/sun/star/uno/Uik.idl>
+
+
+module com { module sun { module star { module reflection {
+
+ published interface XIdlField;
+ published interface XIdlMethod;
+ published interface XIdlArray;
+
+
+/** Provides information reflecting a UNO type.
+*/
+published interface XIdlClass: com::sun::star::uno::XInterface
+{
+ /** Deprecated. Do not call.
+ @deprecated
+ */
+ sequence<XIdlClass> getClasses();
+ /** Deprecated. Do not call.
+ @deprecated
+ */
+ XIdlClass getClass( [in] string aName );
+
+ /** Tests whether two reflecting objects reflect the same type.
+
+ @returns
+ true, if the objects reflect the same type, false otherwise.
+ */
+ boolean equals( [in] XIdlClass Type );
+
+ /** Tests whether values of this reflected type are assignable from values
+ of a second one (<code>xType</code>).
+
+ @param xType
+ another reflected type
+ @return
+ true, if values of this reflected type are assignable
+ from values of <code>xType</code>.
+ */
+ boolean isAssignableFrom( [in] XIdlClass xType );
+
+ /** Returns the com::sun::star::uno::TypeClass
+ of the reflected type.
+
+ @returns
+ type class of the reflected type.
+ */
+ com::sun::star::uno::TypeClass getTypeClass();
+
+ /** Returns the fully-qualified name of the reflected type.
+
+ @returns
+ the fully-qualified name of the type
+ */
+ string getName();
+
+ /** Deprecated. Do not call.
+
+ @deprecated
+ */
+ com::sun::star::uno::Uik getUik();
+
+ /** If the reflected type is an interface, then the returned
+ sequence of XIdlClass reflect the base interfaces.
+ <br>
+ If the reflected type is not an interface or an interface that is
+ not derived from another, then an empty sequence is returned.
+
+ @return
+ all base interfaces of an interface type or an empty sequence.
+ */
+ sequence<XIdlClass> getSuperclasses();
+
+ /** Deprecated. Do not call.
+ @deprecated
+ */
+ sequence<XIdlClass> getInterfaces();
+
+ /** If the reflected type is an array or sequence, then this method
+ returns a XIdlClass interface reflecting
+ the element.
+
+ @return
+ reflection interface of the element type of an array or
+ sequence type (null-reference otherwise).
+ */
+ XIdlClass getComponentType();
+
+ /** If the reflected type is an interface, struct or union, then you
+ get a XIdlField interface reflecting the demanded
+ field (/interface attribute) by name.
+ <br>
+ If the reflected type is not an interface, struct or union or the
+ interface, struct or union does not have a field (/interface attribute)
+ with the demanded name, then a null-reference is returned.
+
+ @param aName
+ name of the demanded field reflection
+ @return
+ demanded field (/interface attribute) reflection (or null-reference)
+ */
+ XIdlField getField( [in] string aName );
+
+ /** If the reflected type is an interface, struct or union, then you
+ get a sequence of XIdlField interfaces reflecting all fields
+ (/interface attributes). This also includes all inherited
+ fields (/interface attributes) of the interface, struct of union.
+ <br>
+ If the reflected type is not an interface, struct or union or the
+ interface, struct or union does not have any field (/interface attribute),
+ then an empty sequence is returned.
+
+ @return
+ all field (/interface attribute) reflections (or empty sequence)
+ */
+ sequence<XIdlField> getFields();
+
+ /** If the reflected type is an interface, then you get
+ a XIdlMethod interface reflecting the demanded method by name.
+ <br>
+ If the reflected type is not an interface or the interface does not have
+ a method with the demanded name (including inherited methods),
+ then a null-reference is returned.
+
+ @param aName
+ name of demanded method reflection
+ @return
+ demanded method reflection (or null-reference)
+ */
+ XIdlMethod getMethod( [in] string aName );
+
+ /** If the reflected type is an interface, then you get
+ a sequence of XIdlMethod interfaces reflecting all methods
+ of the interface. This also includes the inherited methods of the interface.
+ <br>
+ If the reflected type is not an interface or the interface
+ does not have any methods, then a null-reference is returned.
+
+ @return
+ all method reflections (or empty sequence)
+ */
+ sequence<XIdlMethod> getMethods();
+
+ /** If the reflected type is an array, then you get
+ a XIdlArray interface to modify instances of the array type.
+ <br>
+ If the reflected type is not an array, then a null-reference is returned.
+
+ @return
+ interface to modify array instances (or null-reference)
+ */
+ XIdlArray getArray();
+
+ /** This method creates instances of the reflected type.
+
+ @attention
+ Instances of type <code>any</code> can not be passed using an <code>any</code>, because
+ anys cannot be nested. So if the reflected type is an <code>any</code>, then the
+ returned value is empty.
+
+ @param obj
+ pure out parameter to pass the created instance
+ */
+ void createObject( [out] any obj );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */