diff options
Diffstat (limited to 'udkapi/com/sun/star/reflection')
49 files changed, 4211 insertions, 0 deletions
diff --git a/udkapi/com/sun/star/reflection/CoreReflection.idl b/udkapi/com/sun/star/reflection/CoreReflection.idl new file mode 100644 index 000000000000..3398897c1984 --- /dev/null +++ b/udkapi/com/sun/star/reflection/CoreReflection.idl @@ -0,0 +1,74 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_CoreReflection_idl__ +#define __com_sun_star_reflection_CoreReflection_idl__ + +#ifndef __com_sun_star_reflection_XIdlReflection_idl__ +#include <com/sun/star/reflection/XIdlReflection.idl> +#endif + +#ifndef __com_sun_star_lang_XComponent_idl__ +#include <com/sun/star/lang/XComponent.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** This service is the implementation of the reflection API. + You can obtain information about types, modify values of reflected types + and call on objects. +*/ +published service CoreReflection +{ + /** Interface to reflect types. + */ + interface com::sun::star::reflection::XIdlReflection; + + /** CoreReflection has to be disposed if possible + */ + [optional] interface com::sun::star::lang::XComponent; +}; + +/** Accessable singleton to CoreReflection instance. +singleton theCoreReflection +{ + service CoreReflection; +}; +*/ + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/FieldAccessMode.idl b/udkapi/com/sun/star/reflection/FieldAccessMode.idl new file mode 100644 index 000000000000..233c6c74b5d4 --- /dev/null +++ b/udkapi/com/sun/star/reflection/FieldAccessMode.idl @@ -0,0 +1,64 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_FieldAccessMode_idl__ +#define __com_sun_star_reflection_FieldAccessMode_idl__ + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Denotes the access possibilities via <type>XIdlField2</type> to an + interface attribute, enum or compound type (struct/exception). +*/ +published enum FieldAccessMode +{ + /** readable and writeable + */ + READWRITE, + /** readable only + */ + READONLY, + /** writeable only + */ + WRITEONLY, + /** Deprecated. Not used anymore. + @deprecated + */ + CONST +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/InvalidTypeNameException.idl b/udkapi/com/sun/star/reflection/InvalidTypeNameException.idl new file mode 100644 index 000000000000..783763254a98 --- /dev/null +++ b/udkapi/com/sun/star/reflection/InvalidTypeNameException.idl @@ -0,0 +1,55 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_InvaildTypeNameException_idl__ +#define __com_sun_star_reflection_InvalidTypeNameException_idl__ + +#ifndef __com_sun_star_uno_Exception_idl__ +#include <com/sun/star/uno/Exception.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** thrown in case that a certain type name does exist, but does not meet + some other criteria. + + @since OOo 1.1.2 + */ +published exception InvalidTypeNameException : com::sun::star::uno::Exception +{ +}; + + +//============================================================================= + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/InvocationTargetException.idl b/udkapi/com/sun/star/reflection/InvocationTargetException.idl new file mode 100644 index 000000000000..cbc3e9aec5be --- /dev/null +++ b/udkapi/com/sun/star/reflection/InvocationTargetException.idl @@ -0,0 +1,57 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_InvocationTargetException_idl__ +#define __com_sun_star_reflection_InvocationTargetException_idl__ + +#ifndef __com_sun_star_lang_WrappedTargetException_idl__ +#include <com/sun/star/lang/WrappedTargetException.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** This exception denotes a checked exception (wrapping an originating exception) + and may be thrown upon using invocation API. + + @see XIdlMethod +*/ +published exception InvocationTargetException: com::sun::star::lang::WrappedTargetException +{ +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/MethodMode.idl b/udkapi/com/sun/star/reflection/MethodMode.idl new file mode 100644 index 000000000000..c5b2afe2c0de --- /dev/null +++ b/udkapi/com/sun/star/reflection/MethodMode.idl @@ -0,0 +1,59 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_MethodMode_idl__ +#define __com_sun_star_reflection_MethodMode_idl__ + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** MethodMode denotes the mode in which method calls are run, i.e. either oneway or + twoway. Mode oneway denotes that a call may be run asynchronously + (thus having no out parameters or return value) +*/ +published enum MethodMode +{ + /** method may be run asynchronously + */ + ONEWAY, + + /** method is run The + */ + TWOWAY +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl b/udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl new file mode 100644 index 000000000000..b553d4d0aedc --- /dev/null +++ b/udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl @@ -0,0 +1,54 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_NoSuchTypeNameException_idl__ +#define __com_sun_star_reflection_NoSuchTypeNameException_idl__ + +#ifndef __com_sun_star_uno_Exception_idl__ +#include <com/sun/star/uno/Exception.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** thrown in case that a certain type name does not exist. + + @since OOo 1.1.2 + */ +published exception NoSuchTypeNameException : com::sun::star::uno::Exception +{ +}; + + +//============================================================================= + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/ParamInfo.idl b/udkapi/com/sun/star/reflection/ParamInfo.idl new file mode 100644 index 000000000000..e3510a7502ea --- /dev/null +++ b/udkapi/com/sun/star/reflection/ParamInfo.idl @@ -0,0 +1,66 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_ParamInfo_idl__ +#define __com_sun_star_reflection_ParamInfo_idl__ + +#ifndef __com_sun_star_reflection_ParamMode_idl__ +#include <com/sun/star/reflection/ParamMode.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module reflection { + + published interface XIdlClass; + +//============================================================================= + +/** Provides information about a formal parameter of a method. +*/ +published struct ParamInfo +{ + /** name of the parameter + */ + string aName; + + /** parameter mode: in, out, inout + */ + ParamMode aMode; + + /** formal type of the parameter + */ + XIdlClass aType; +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/ParamMode.idl b/udkapi/com/sun/star/reflection/ParamMode.idl new file mode 100644 index 000000000000..a14157eb603c --- /dev/null +++ b/udkapi/com/sun/star/reflection/ParamMode.idl @@ -0,0 +1,63 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_ParamMode_idl__ +#define __com_sun_star_reflection_ParamMode_idl__ + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** The parameter mode denotes the transfer between caller and callee + of a method. +*/ +published enum ParamMode +{ + /** parameter serves as pure input for a called method + */ + IN, + + /** parameter serves as pure output for the callee (in addition to the return value) + */ + OUT, + + /** parameter serves as input as well as output; data can transferred in both directions + */ + INOUT + +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/ProxyFactory.idl b/udkapi/com/sun/star/reflection/ProxyFactory.idl new file mode 100644 index 000000000000..872a9b8529b3 --- /dev/null +++ b/udkapi/com/sun/star/reflection/ProxyFactory.idl @@ -0,0 +1,73 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_ProxyFactory_idl__ +#define __com_sun_star_reflection_ProxyFactory_idl__ + +#ifndef __com_sun_star_reflection_XProxyFactory_idl__ +#include <com/sun/star/reflection/XProxyFactory.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Service to create proxy objects acting on behalf of a given + target object.<br> + A proxy delegates calls to a given target object. + In addition, it is aggregatable, thus it is possible to + intercept calls on the proxy's interfaces. + + @attention + A proxy object is UNO conform, but does NOT provide original target + interfaces on queryInterface() calls. This may lead to problems + regarding object identity, e.g. when dealing with listener proxies. + + @deprecated + Aggregation will no longer be supported as a high-level concept of UNO. + You may still have the option to implement an UNO object consisting of + several single objects in your specific programming language, though this + depends on your programming language. + Thus this service is deprecated, too. +*/ +published service ProxyFactory +{ + /** Factory interface to produce proxies + */ + interface com::sun::star::reflection::XProxyFactory; +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/TypeDescriptionManager.idl b/udkapi/com/sun/star/reflection/TypeDescriptionManager.idl new file mode 100644 index 000000000000..77dd99f6b2a5 --- /dev/null +++ b/udkapi/com/sun/star/reflection/TypeDescriptionManager.idl @@ -0,0 +1,125 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_TypeDescriptionManager_idl__ +#define __com_sun_star_reflection_TypeDescriptionManager_idl__ + +#ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__ +#include <com/sun/star/container/XHierarchicalNameAccess.idl> +#endif + +#ifndef __com_sun_star_container_XSet_idl__ +#include <com/sun/star/container/XSet.idl> +#endif + +#ifndef __com_sun_star_lang_XInitialization_idl__ +#include <com/sun/star/lang/XInitialization.idl> +#endif + +#ifndef __com_sun_star_lang_XComponent_idl__ +#include <com/sun/star/lang/XComponent.idl> +#endif + +#ifndef __com_sun_star_reflection_XTypeDescriptionEnumerationAccess_idl__ +#include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** This service manages type descriptions and acts as a central access point + to every type description. It delegates calls for demanded types to + subsequent + <type scope="com::sun::star::reflection">TypeDescriptionProvider</type>s + and may cache type descriptions.<br> + Using cppuhelper's bootstrapping routines bootstrapping an initial + component context, there is a singleton accessable via key + "/singletons/com.sun.star.reflection.theTypeDescriptionManager". + This singleton object is hooked into the C UNO runtime typelib and + lives until the context is shut down.<br> + + @see com::sun::star::reflection::TypeDescriptionProvider + @see com::sun::star::reflection::XTypeDescription +*/ +published service TypeDescriptionManager +{ + /** Interface to retrieve type descriptions. + + <ul> + <li>Names are given in dotted notation, for example + <code>"com.sun.star.uno.XInterface"</code>.</li> + + <li>Sequence types are accessible via + <code>"[]<var>ComponentType</var>"</code></li> + + <li>Instantiated polymorphic struct types are accessible via + <code>"<var>StructType</var><<!-- + --><var>Parameter</var><sub>1</sub>,…,<!-- + --><var>Parameter</var><sub><var>n</var></sub>>"</code>.</li> + + <li>Members of interface types are accessible via + <code>"<var>InterfaceType</var>::<var>Member</var>"</code>.</li> + </ul> + + <p>The returned values are of interface type + <type>XTypeDescription</type>.</p> + + <p>Even though the name of this interface suggests that the used type + names are hierarchic, this need not be the case. (For example, consider + the names of instantiated polymorphic struct types, like + <code>"Struct<long>"</code>.)</p> + */ + interface com::sun::star::container::XHierarchicalNameAccess; + + /** You can manually add or remove a providers via this interface. + */ + interface com::sun::star::container::XSet; + + /** Interface to signal shutdown to the manager.<br> + This signals all providers to shut down, because usually each provider + references its manager, listening for disposing events. + */ + [optional] interface com::sun::star::lang::XComponent; + + /** Interface for creating enumerations for type descriptions supported + by this <type>TypeDescriptionManager</type> + + @since OOo 1.1.2 + */ + [optional] interface XTypeDescriptionEnumerationAccess; +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl b/udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl new file mode 100644 index 000000000000..c99217a807fb --- /dev/null +++ b/udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl @@ -0,0 +1,90 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_TypeDescriptionProvider_idl__ +#define __com_sun_star_reflection_TypeDescriptionProvider_idl__ + +#ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__ +#include <com/sun/star/container/XHierarchicalNameAccess.idl> +#endif + +#ifndef __com_sun_star_lang_XComponent_idl__ +#include <com/sun/star/lang/XComponent.idl> +#endif + +#ifndef __com_sun_star_reflection_XTypeDescriptionEnumerationAccess_idl__ +#include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** This service provides type descriptions, i.e. concrete + service implementations read from source like the persistent registry + database format.<br> + + @see com::sun::star::reflection::TypeDescriptionManager + @see com::sun::star::reflection::XTypeDescription +*/ +published service TypeDescriptionProvider +{ + /** Interface to retrieve type descriptions. + + <p>Names are given in dotted notation, for example + <code>"com.sun.star.uno.XInterface"</code>. The returned values are of + interface type <type>XTypeDescription</type>.</p> + + <p>Even though the name of this interface suggests that the used type + names are hierarchic, this need not be the case.</p> + */ + interface com::sun::star::container::XHierarchicalNameAccess; + + /** Interface to signal shutdown to the provider.<br> + This has to be done manually, because usually each provider references + its manager (which may implement type caching) for late resolution of + partial types (e.g. parameter types). + */ + interface com::sun::star::lang::XComponent; + + /** Interface for creating enumerations for type descriptions supported + by this <type>TypeDescriptionProvider</type> + + @since OOo 1.1.2 + */ + [optional] interface XTypeDescriptionEnumerationAccess; +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl b/udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl new file mode 100644 index 000000000000..b49d7ba3c019 --- /dev/null +++ b/udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl @@ -0,0 +1,59 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_TypeDescriptionSearchDepth_idl__ +#define __com_sun_star_reflection_TypeDescriptionSearchDepth_idl__ + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Defines depths for searching through type description collections. + + @since OOo 1.1.2 + */ +published enum TypeDescriptionSearchDepth +{ + /** Infinite search depth. Search through all children including direct + children, grand children, grand children's children, ... + */ + INFINITE = -1, + + /** Search only through direct children. + */ + ONE = 1 +}; + + +//============================================================================= + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XArrayTypeDescription.idl b/udkapi/com/sun/star/reflection/XArrayTypeDescription.idl new file mode 100644 index 000000000000..9719376f16ac --- /dev/null +++ b/udkapi/com/sun/star/reflection/XArrayTypeDescription.idl @@ -0,0 +1,78 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XArrayTypeDescription_idl__ +#define __com_sun_star_reflection_XArrayTypeDescription_idl__ + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Deprecated. Arrays are not supported. + Reflects a fixed-size array type. + The type class of this description is TypeClass_ARRAY. + + @deprecated +*/ +published interface XArrayTypeDescription: com::sun::star::reflection::XTypeDescription +{ + /** Returns the element type of the array. + + @return + element type of the array + */ + com::sun::star::reflection::XTypeDescription getType(); + + /** Returns the number of dimensions of the array. + + @return + dimension of the array + */ + long getNumberOfDimensions(); + + /** Returns dimensions of array (same length as getNumberOfDimensions()). + + @return + dimensions of array + */ + sequence< long > getDimensions(); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl b/udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl new file mode 100644 index 000000000000..4ac232067452 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl @@ -0,0 +1,85 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XCompoundTypeDescription_idl__ +#define __com_sun_star_reflection_XCompoundTypeDescription_idl__ + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects a compound type, i.e. a struct or exception. + + <p>For struct types, this type is superseded by + <type>XStructTypeDescription</type>, which supports polymorphic struct + types.</p> +*/ +published interface XCompoundTypeDescription: com::sun::star::reflection::XTypeDescription +{ + /** Returns the type of the base type of the compound type. + If the compound does not have a base type, the method returns a null interface. + + @return + base interface or null + */ + com::sun::star::reflection::XTypeDescription getBaseType(); + + /** Returns the member types of the struct/exception in IDL declaration order. + + <p>For a polymorphic struct type template, a member of parameterized + type is represented by an instance of + <type scope="com::sun::star::reflection::">XTypeDescription</type> whose + type class is <code>UNKNOWN</code> and whose name is the name of the + type parameter.</p> + + @return + members of struct/exception + */ + sequence<com::sun::star::reflection::XTypeDescription> getMemberTypes(); + + /** Returns the member names of the struct/exception in IDL declaration order. + + @return + members names of struct/exception + */ + sequence<string> getMemberNames(); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XConstantTypeDescription.idl b/udkapi/com/sun/star/reflection/XConstantTypeDescription.idl new file mode 100644 index 000000000000..e830a191bb6e --- /dev/null +++ b/udkapi/com/sun/star/reflection/XConstantTypeDescription.idl @@ -0,0 +1,80 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XConstantTypeDescription_idl__ +#define __com_sun_star_reflection_XConstantTypeDescription_idl__ + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects a constant. + + <p>The type class of this type is + <member scope="com::sun::star::uno">TypeClass::CONSTANT</member>. + + <p>Constants may be contained in constants groups and modules. + + @see XModuleTypeDescription + @see XConstantsTypeDescription + + @since OOo 1.1.2 + + */ +published interface XConstantTypeDescription : com::sun::star::reflection::XTypeDescription +{ + /** @return the value of the constant. + + <p>Following types are allowed for constants: + <ul> + <li>boolean + <li>byte + <li>short + <li>unsigned short + <li>long + <li>unsigned long + <li>hyper + <li>unsigned hyper + <li>float + <li>double + </ul> + */ + any getConstantValue(); + +}; + +//============================================================================= + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl b/udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl new file mode 100644 index 000000000000..438413614d98 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl @@ -0,0 +1,65 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XConstantsTypeDescription_idl__ +#define __com_sun_star_reflection_XConstantsTypeDescription_idl__ + +#ifndef __com_sun_star_reflection_XConstantTypeDescription_idl__ +#include <com/sun/star/reflection/XConstantTypeDescription.idl> +#endif + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects a constants group. + + <p>The type class of this type is + <member scope="com::sun::star::uno">TypeClass::CONSTANTS</member>. + + @since OOo 1.1.2 + */ +published interface XConstantsTypeDescription : com::sun::star::reflection::XTypeDescription +{ + /** Returns the contstants defined for this constants group. + + @return a sequence containing constants descriptions. + */ + sequence< XConstantTypeDescription > getConstants(); +}; + +//============================================================================= + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl b/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl new file mode 100644 index 000000000000..8226b9e21361 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl @@ -0,0 +1,74 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XEnumTypeDescription_idl__ +#define __com_sun_star_reflection_XEnumTypeDescription_idl__ + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects an enum type. +*/ +published interface XEnumTypeDescription: com::sun::star::reflection::XTypeDescription +{ + /** Returns the default enum value. + + @return + default enum value + */ + long getDefaultEnumValue(); + + /** Returns the enum member values. + + @return + enum member values + */ + sequence<string> getEnumNames(); + + /** Returns the enum member names. + + @return + enum member names + */ + sequence<long> getEnumValues(); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XIdlArray.idl b/udkapi/com/sun/star/reflection/XIdlArray.idl new file mode 100644 index 000000000000..702201642d2e --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlArray.idl @@ -0,0 +1,134 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XIdlArray_idl__ +#define __com_sun_star_reflection_XIdlArray_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ +#include <com/sun/star/lang/IllegalArgumentException.idl> +#endif + +#ifndef __com_sun_star_lang_ArrayIndexOutOfBoundsException_idl__ +#include <com/sun/star/lang/ArrayIndexOutOfBoundsException.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects an IDL sequence and provides dynamic access to instances of + that sequence. + This interface supports widening conversion when getting or setting elements. + + @attention + Although the name of this interface denotes arrays, + sequences are meant. Don't be obfuscated, arrays are not supported by UNO! +*/ +published interface XIdlArray: com::sun::star::uno::XInterface +{ + /** Rellocates the length of the sequence instance. + + @param array + sequence instance + @length + new length of sequence + */ + void realloc( + [inout] any array, + [in] long length ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** Returns the length of the given sequence. + + @param array + sequence instance + @return + length of sequence + */ + long getLen( [in] any array ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** Returns element at given index. + + @param aArray + sequence instance + @param nIndex + index + @return + value + + @throws IllegalArgumentException + if the specified object is not a sequence or if the specified object is null + + @throws ArrayIndexOutOfBoundsException + if the specified index argument is negative, or if it is greater than or equal to the + length of the specified sequence. + */ + any get( + [in] any aArray, + [in] long nIndex ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::ArrayIndexOutOfBoundsException ); + + /** Sets a new value at given index. + + @param aArray + sequence instance + @param nIndex + index + @param aNewValue + new value to be set + + @throws IllegalArgumentException + if the specified object is not a sequence or if the specified object is null + + @throws ArrayIndexOutOfBoundsException + if the specified index argument is negative, or if it is greater than or equal to the + length of the specified sequence. + */ + void set( + [inout] any aArray, + [in] long nIndex, + [in] any aNewValue ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::ArrayIndexOutOfBoundsException ); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XIdlClass.idl b/udkapi/com/sun/star/reflection/XIdlClass.idl new file mode 100644 index 000000000000..fd9048ce111c --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlClass.idl @@ -0,0 +1,215 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XIdlClass_idl__ +#define __com_sun_star_reflection_XIdlClass_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +#ifndef __com_sun_star_uno_TypeClass_idl__ +#include <com/sun/star/uno/TypeClass.idl> +#endif + +#ifndef __com_sun_star_uno_Uik_idl__ +#include <com/sun/star/uno/Uik.idl> +#endif + +//============================================================================= + +module com { module sun { module star { module reflection { + + published interface XIdlField; + published interface XIdlMethod; + published interface XIdlArray; + +//============================================================================= + +/** Provides information reflecting an UNO type. +*/ +published interface XIdlClass: com::sun::star::uno::XInterface +{ + /** Deprecated. Do not call. + @deprecated + */ + sequence<XIdlClass> getClasses(); + /** Deprecated. Do not call. + @deprecated + */ + XIdlClass getClass( [in] string aName ); + + /** Tests whether two reflecting objects reflect the same type. + + @returns + true, if the objects reflect the same type, false otherwise. + */ + boolean equals( [in] XIdlClass Type ); + + /** Tests whether values of this reflected type are assignable from values + of a second one (<code>xType</code>). + + @param xType + another reflected type + @return + true, if values of this reflected type are assignable + from values of <code>xType</code>. + */ + boolean isAssignableFrom( [in] XIdlClass xType ); + + /** Returns the <type scope="com::sun::star::uno">TypeClass</type> + of the reflected type. + + @returns + type class of the reflected type. + */ + com::sun::star::uno::TypeClass getTypeClass(); + + /** Returns the fully-qualified name of the reflected type. + + @returns + the fully-qualified name of the type + */ + string getName(); + + /** Deprecated. Do not call. + + @deprecated + */ + com::sun::star::uno::Uik getUik(); + + /** If the reflected type is an interface, then the returned + sequence of <type>XIdlClass</type> reflect the base interfaces. + <br> + If the reflected type is not an interface or an interface that is + not derived from another, then an empty sequence is returned. + + @return + all base interfaces of an interface type or an empty sequence. + */ + sequence<XIdlClass> getSuperclasses(); + + /** Deprecated. Do not call. + @deprecated + */ + sequence<XIdlClass> getInterfaces(); + + /** If the reflected type is an array or sequence, then this method + returns a <type>XIdlClass</type> interface reflecting + the element. + + @return + reflection interface of the element type of an array or + sequence type (null-reference otherwise). + */ + XIdlClass getComponentType(); + + /** If the reflected type is an interface, struct or union, then you + get a <type>XIdlField</type> interface reflecting the demanded + field (/interface attribute) by name. + <br> + If the reflected type is not an interface, struct or union or the + interace, struct or union does not have a field (/interface attribute) + with the demanded name, then a null-reference is returned. + + @param aName + name of the demanded field reflection + @return + demanded field (/interface attribute) reflection (or null-reference) + */ + XIdlField getField( [in] string aName ); + + /** If the reflected type is an interface, struct or union, then you + get a sequence of <type>XIdlField</type> interfaces reflecting all fields + (/interface attributes). This also includes all inherited + fields (/interface attributes) of the interface, struct of union. + <br> + If the reflected type is not an interface, struct or union or the + interface, struct or union does not have any field (/interface attribute), + then an empty sequence is returned. + + @return + all field (/interface attribute) reflections (or empty sequence) + */ + sequence<XIdlField> getFields(); + + /** If the reflected type is an interface, then you get + a <type>XIdlMethod</type> interface reflecting the demanded method by name. + <br> + If the reflected type is not an interface or the interface does not have + a method with the demanded name (including inherited methods), + then a null-reference is returned. + + @param aName + name of demanded method reflection + @return + demanded method reflection (or null-reference) + */ + XIdlMethod getMethod( [in] string aName ); + + /** If the reflected type is an interface, then you get + a sequence of <type>XIdlMethod</type> interfaces reflecting all methods + of the interface. This also includes the inherited methods of the interface. + <br> + If the reflected type is not an interface or the interface + does not have any methods, then a null-reference is returned. + + @return + all method reflections (or empty sequence) + */ + sequence<XIdlMethod> getMethods(); + + /** If the reflected type is an array, then you get + a <type>XIdlArray</type> interface to modify instances of the array type. + <br> + If the reflected type is not an array, then a null-reference is returned. + + @return + inteface to modify array instances (or null-reference) + */ + XIdlArray getArray(); + + /** This method creates instances of the reflected type. + + @attention + Instances of type <code>any</code> can not be passed using an <code>any</code>, because + anys cannot be nested. So if the reflected type is an <code>any</code>, then the + returned value is empty. + + @param obj + pure out parameter to pass the created instance + */ + void createObject( [out] any obj ); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XIdlClassProvider.idl b/udkapi/com/sun/star/reflection/XIdlClassProvider.idl new file mode 100644 index 000000000000..0b61cdd68bd8 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlClassProvider.idl @@ -0,0 +1,61 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XIdlClassProvider_idl__ +#define __com_sun_star_reflection_XIdlClassProvider_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +#ifndef __com_sun_star_reflection_XIdlClass_idl__ +#include <com/sun/star/reflection/XIdlClass.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Deprecated interface. Do not use anymore. + + @deprecated +*/ +published interface XIdlClassProvider: com::sun::star::uno::XInterface +{ + sequence<com::sun::star::reflection::XIdlClass> getIdlClasses(); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XIdlField.idl b/udkapi/com/sun/star/reflection/XIdlField.idl new file mode 100644 index 000000000000..76daf3a1d83e --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlField.idl @@ -0,0 +1,83 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XIdlField_idl__ +#define __com_sun_star_reflection_XIdlField_idl__ + +#ifndef __com_sun_star_reflection_XIdlMember_idl__ +#include <com/sun/star/reflection/XIdlMember.idl> +#endif + +#ifndef __com_sun_star_reflection_XIdlClass_idl__ +#include <com/sun/star/reflection/XIdlClass.idl> +#endif + +#ifndef __com_sun_star_reflection_FieldAccessMode_idl__ +#include <com/sun/star/reflection/FieldAccessMode.idl> +#endif + +#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ +#include <com/sun/star/lang/IllegalArgumentException.idl> +#endif + +#ifndef __com_sun_star_lang_IllegalAccessException_idl__ +#include <com/sun/star/lang/IllegalAccessException.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Deprecated. Use <type scope="com::sun::star::reflection">XIdlField2</type> + instead. + + @deprecated +*/ +published interface XIdlField: com::sun::star::reflection::XIdlMember +{ + com::sun::star::reflection::XIdlClass getType(); + com::sun::star::reflection::FieldAccessMode getAccessMode(); + any get( + [in] any obj ) + raises( com::sun::star::lang::IllegalArgumentException ); + void set( + [in] any obj, + [in] any value ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::IllegalAccessException ); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XIdlField2.idl b/udkapi/com/sun/star/reflection/XIdlField2.idl new file mode 100644 index 000000000000..87e516c906dd --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlField2.idl @@ -0,0 +1,133 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XIdlField2_idl__ +#define __com_sun_star_reflection_XIdlField2_idl__ + +#ifndef __com_sun_star_reflection_XIdlMember_idl__ +#include <com/sun/star/reflection/XIdlMember.idl> +#endif + +#ifndef __com_sun_star_reflection_XIdlClass_idl__ +#include <com/sun/star/reflection/XIdlClass.idl> +#endif + +#ifndef __com_sun_star_reflection_FieldAccessMode_idl__ +#include <com/sun/star/reflection/FieldAccessMode.idl> +#endif + +#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ +#include <com/sun/star/lang/IllegalArgumentException.idl> +#endif + +#ifndef __com_sun_star_lang_IllegalAccessException_idl__ +#include <com/sun/star/lang/IllegalAccessException.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects an IDL interface attribute, enum or compound type + (i.e. struct/exception) member. +*/ +published interface XIdlField2: com::sun::star::reflection::XIdlMember +{ + /** Returns the type of the field. + + @return + type of the field + */ + com::sun::star::reflection::XIdlClass getType(); + + /** Returns the access mode of the field, i.e. read-write, read-only or + write-only (access mode "const" is deprecated). + + @return + access mode of the field + */ + com::sun::star::reflection::FieldAccessMode getAccessMode(); + + /** Gets the value of the reflected field from the given object, + i.e. an interface, enum or compound type (struct/exception). + For enums, the given object is ignored; the returned value + reflects the constant enum 32-bit value. + + <p>When setting an interface attribute raises a + non-<type scope="com::sun::star::uno">RuntimeException</type>, it is + wrapped in a <type + scope="com::sun::star::lang">WrappedTargetRuntimeException</type>.</p> + + @param obj + object instance having member of reflected type + @return + value of field + + @throws IllegalAccessException + An <type scope="com::sun::star::lang">IllegalAccessException</type> + is thrown if the given object is no interface, enum or compound type; + or the given object does not have the reflected field. + */ + any get( + [in] any obj ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** Sets the value of the reflected field of the given object, + i.e. an interface or compound type (struct/exception). + + <p>When setting an interface attribute raises a + non-<type scope="com::sun::star::uno">RuntimeException</type>, it is + wrapped in a <type + scope="com::sun::star::lang">WrappedTargetRuntimeException</type>.</p> + + @param obj + object instance having member of reflected type + @param value + value to be set + + @throws IllegalAccessException + An <type scope="com::sun::star::lang">IllegalAccessException</type> + is thrown if the given object is no interface or compound type; + or the given object does not have the reflected field. + */ + void set( + [inout] any obj, + [in] any value ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::IllegalAccessException ); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XIdlMember.idl b/udkapi/com/sun/star/reflection/XIdlMember.idl new file mode 100644 index 000000000000..b806b81652bf --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlMember.idl @@ -0,0 +1,67 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XIdlMember_idl__ +#define __com_sun_star_reflection_XIdlMember_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + + published interface XIdlClass; + +/** Base interface for <type>XIdlField2</type>s and <type>XIdlMethod</type>s. +*/ +published interface XIdlMember: com::sun::star::uno::XInterface +{ + /** Returns the declaring type of this field, i.e. the type having + the member declared (interface, enum, struct, exception). + + @returns + declaring type + */ + XIdlClass getDeclaringClass(); + + /** Returns the fully-qualified name of the member. + + @return fully-qualified name of the member + */ + string getName(); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XIdlMethod.idl b/udkapi/com/sun/star/reflection/XIdlMethod.idl new file mode 100644 index 000000000000..8a9f106ce66a --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlMethod.idl @@ -0,0 +1,141 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XIdlMethod_idl__ +#define __com_sun_star_reflection_XIdlMethod_idl__ + +#ifndef __com_sun_star_reflection_XIdlMember_idl__ +#include <com/sun/star/reflection/XIdlMember.idl> +#endif + +#ifndef __com_sun_star_reflection_ParamInfo_idl__ +#include <com/sun/star/reflection/ParamInfo.idl> +#endif + +#ifndef __com_sun_star_reflection_MethodMode_idl__ +#include <com/sun/star/reflection/MethodMode.idl> +#endif + +#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ +#include <com/sun/star/lang/IllegalArgumentException.idl> +#endif + +#ifndef __com_sun_star_reflection_InvocationTargetException_idl__ +#include <com/sun/star/reflection/InvocationTargetException.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + + published interface XIdlClass; + +//============================================================================= + +/** Reflects an IDL interface method. +*/ +published interface XIdlMethod: com::sun::star::reflection::XIdlMember +{ + /** Returns the return type of the reflected method. + + @return + return type of reflected method + */ + XIdlClass getReturnType(); + + /** Returns the formal parameter types of the reflected method in order of IDL + declaration. + + @return + formal parameter types of reflected method + */ + sequence<XIdlClass> getParameterTypes(); + + /** Returns formal parameter informations of the reflected method + in order of IDL declaration. + Parameter information reflects the parameter's access mode (in, out, inout), + the parameter's name and formal type. + + @return + parameter informations of reflected method + */ + sequence<ParamInfo> getParameterInfos(); + + /** Returns the declared exceptions types of the reflected method. + + @return + declared exception types of reflected method + */ + sequence<com::sun::star::reflection::XIdlClass> getExceptionTypes(); + + /** Returns the method mode in which calls are run, i.e. either oneway or + twoway. Method mode oneway denotes that a call may be run asynchronously + (thus having no out parameters or return value) + + @return + method mode of reflected method + */ + com::sun::star::reflection::MethodMode getMode(); + + /** Invokes the reflected method on a given object with the given parameters. + The parameters may be widening converted to fit their exact IDL type, + meaning no loss of information. + + @param obj + object to call on + @param args + arguments passed to the method + @return + return value of the method call (may be empty for methods returning void) + + @throws IllegalArgumentException + if the given object is a nuull reference or does not support the reflected + method's interface + @throws IllegalArgumentException + if the given number of arguments differ from the expected number + or the given arguments' types differ from the expected ones (even a + widening conversion was not possible) + @throws InvocationTargetException + if the reflected method that has been invoked has thrown an exception. + The original exception will be wrapped up and signalled by the + InvocationTargetException + */ + any invoke( + [in] any obj, + [inout] sequence<any> args ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::reflection::InvocationTargetException ); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XIdlReflection.idl b/udkapi/com/sun/star/reflection/XIdlReflection.idl new file mode 100644 index 000000000000..9455430eabf1 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlReflection.idl @@ -0,0 +1,83 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XIdlReflection_idl__ +#define __com_sun_star_reflection_XIdlReflection_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +#ifndef __com_sun_star_reflection_XIdlClass_idl__ +#include <com/sun/star/reflection/XIdlClass.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Interface to reflect types. + + @see CoreReflection + @see XIdlClass +*/ +published interface XIdlReflection: com::sun::star::uno::XInterface +{ + /** Obtaining a reflection interface for a type. You specify the type by + its name. + If the given type name can not be reflected, then a null-reference + is returned. + + @param aTypeName + the type's name + @return + reflection interface for the demanded type (or null) + */ + com::sun::star::reflection::XIdlClass forName( [in] string aTypeName ); + + /** Obtaining a reflection interface for an object. This method takes + the type of the object the any contains into account. If the any + contains no object, then a null-reference is returned. + + @param aObj + an object + @return + reflection interface of the type of the demanded object (or null) + */ + com::sun::star::reflection::XIdlClass getType( [in] any aObj ); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl b/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl new file mode 100644 index 000000000000..ef80d722d55e --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl @@ -0,0 +1,63 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XIndirectTypeDescription_idl__ +#define __com_sun_star_reflection_XIndirectTypeDescription_idl__ + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects a typedef or sequence type. + The type class of this description is TypeClass_TYPEDEF or + TypeClass_SEQUENCE. +*/ +published interface XIndirectTypeDescription: com::sun::star::reflection::XTypeDescription +{ + /** Returns the typedefed type, if the type is a typedef, + or the element type, if the type is a sequence. + + @return + referenced type + */ + com::sun::star::reflection::XTypeDescription getReferencedType(); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl new file mode 100644 index 000000000000..c16d620d6f0d --- /dev/null +++ b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl @@ -0,0 +1,77 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XInterfaceAttributeTypeDescription_idl__ +#define __com_sun_star_reflection_XInterfaceAttributeTypeDescription_idl__ + +#ifndef __com_sun_star_reflection_XInterfaceMemberTypeDescription_idl__ +#include <com/sun/star/reflection/XInterfaceMemberTypeDescription.idl> +#endif + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects an interface attribute type. + + <p>This type is superseded by + <type>XInterfaceAttributeTypeDescription2</type>, which supports extended + attributes.</p> + + The type class of this type is TypeClass_INTERFACE_ATTRIBUTE. +*/ +published interface XInterfaceAttributeTypeDescription: com::sun::star::reflection::XInterfaceMemberTypeDescription +{ + /** Returns true, if this attribute is read-only. + + @return + true, if attribute is read-only + */ + boolean isReadOnly(); + + /** Returns the type of the attribute. + + @return + type of attribute + */ + com::sun::star::reflection::XTypeDescription getType(); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl new file mode 100644 index 000000000000..96b8957683ff --- /dev/null +++ b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl @@ -0,0 +1,79 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XInterfaceAttributeTypeDescription2_idl__ +#define __com_sun_star_reflection_XInterfaceAttributeTypeDescription2_idl__ + +#include "com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl" + +module com { module sun { module star { module reflection { + +interface XCompoundTypeDescription; + +/** + Reflects an interface attribute, supporting extended attributes that are + bound or raise exceptions. + + <p>This type supersedes <type>XInterfaceAttributeTypeDescription</type>, + which does not support extended attributes.</p> + + @since OOo 2.0.0 + */ +interface XInterfaceAttributeTypeDescription2: + XInterfaceAttributeTypeDescription +{ + /** + Returns whether this object reflects a bound attribute. + + @return <TRUE/> iff this object reflects a bound attribute + */ + boolean isBound(); + + /** + Returns the exceptions that can be raised by the attribute's getter. + + @return the reflections of all the exceptions that are listed in the + <code>raises</code> specification of the attribute's getter (if any), in + no particular order; all elements of the returned sequence will be + reflections of exception types + */ + sequence<XCompoundTypeDescription> getGetExceptions(); + + /** + Returns the exceptions that can be raised by the attribute's setter. + + @return the reflections of all the exceptions that are listed in the + <code>raises</code> specification of the attribute's setter (if any), in + no particular order; all elements of the returned sequence will be + reflections of exception types + */ + sequence<XCompoundTypeDescription> getSetExceptions(); +}; + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl new file mode 100644 index 000000000000..bbc57be77c8e --- /dev/null +++ b/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl @@ -0,0 +1,71 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XInterfaceMemberTypeDescription_idl__ +#define __com_sun_star_reflection_XInterfaceMemberTypeDescription_idl__ + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Base interface for reflected interface members. + + @see XInterfaceAttributeTypeDescription + @see XInterfaceMethodTypeDescription +*/ +published interface XInterfaceMemberTypeDescription: com::sun::star::reflection::XTypeDescription +{ + /** Returns name of member + + @return + member name + */ + string getMemberName(); + + /** Returns the position the member including all inherited members of base + interfaces. + + @return + position of member + */ + long getPosition(); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl new file mode 100644 index 000000000000..c51af484f950 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl @@ -0,0 +1,90 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XInterfaceMethodTypeDescription_idl__ +#define __com_sun_star_reflection_XInterfaceMethodTypeDescription_idl__ + +#ifndef __com_sun_star_reflection_XInterfaceMemberTypeDescription_idl__ +#include <com/sun/star/reflection/XInterfaceMemberTypeDescription.idl> +#endif + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif + +#ifndef __com_sun_star_reflection_XMethodParameter_idl__ +#include <com/sun/star/reflection/XMethodParameter.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects an interface method type. + The type class of this type is TypeClass_INTERFACE_METHOD. +*/ +published interface XInterfaceMethodTypeDescription: com::sun::star::reflection::XInterfaceMemberTypeDescription +{ + /** Returns the method's return type. + + @return + method's return type + */ + com::sun::star::reflection::XTypeDescription getReturnType(); + + /** Returns true, if this method is declared oneway. + + @return + true, if this method is declared oneway + */ + boolean isOneway(); + + /** Returns all parameters of the method in order of IDL declaration. + + @return + method parameters + */ + sequence<com::sun::star::reflection::XMethodParameter> getParameters(); + + /** Returns declared exceptions that may occur upon invocations of the method. + + @return + declared exceptions of method + */ + sequence<com::sun::star::reflection::XTypeDescription> getExceptions(); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl new file mode 100644 index 000000000000..d47dd7c3dd47 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl @@ -0,0 +1,96 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XInterfaceTypeDescription_idl__ +#define __com_sun_star_reflection_XInterfaceTypeDescription_idl__ + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif + +#ifndef __com_sun_star_uno_Uik_idl__ +#include <com/sun/star/uno/Uik.idl> +#endif + +#ifndef __com_sun_star_reflection_XInterfaceMemberTypeDescription_idl__ +#include <com/sun/star/reflection/XInterfaceMemberTypeDescription.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects an interface type. + + <p>This type is superseded by <type>XInterfaceTypeDescription2</type>, which + supports multiple inheritance.</p> + + @see XInterfaceMemberTypeDescription +*/ +published interface XInterfaceTypeDescription: com::sun::star::reflection::XTypeDescription +{ + /** Returns the base interface or null, if the reflected interface is not + inherited from another. + + <p>This method is deprecated, as it only supports single inheritance. + See <type>XInterfaceTypeDescription2</type> for a replacement that + supports multiple inheritance.</p> + + @return + base interface or null + @deprecated + */ + com::sun::star::reflection::XTypeDescription getBaseType(); + + /** Deprecated. UIK are not used anymore, a type is uniquely identified by + its name.<br> + Returns the UIK, i.e. the unique identifier of the interface. + + @return + uik of the interface + @deprecated + */ + com::sun::star::uno::Uik getUik(); + + /** Returns the members of the interfaces, i.e. attributes and methods. + + @returns + interface members + */ + sequence<com::sun::star::reflection::XInterfaceMemberTypeDescription> getMembers(); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl new file mode 100644 index 000000000000..31ab93e4ecac --- /dev/null +++ b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl @@ -0,0 +1,76 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XInterfaceTypeDescription2_idl__ +#define __com_sun_star_reflection_XInterfaceTypeDescription2_idl__ + +#include "com/sun/star/reflection/XInterfaceTypeDescription.idl" + +module com { module sun { module star { module reflection { + +interface XTypeDescription; + +/** Reflects an interface type, supporting multiple inheritance. + + <p>This type supersedes <type>XInterfaceTypeDescription</type>, which only + supported single inheritance.</p> + + @since OOo 2.0.0 + */ +interface XInterfaceTypeDescription2: XInterfaceTypeDescription { + /** Returns a sequence of all directly inherited (mandatory) base interface + types. + + @returns + a sequence of all directly inherited (mandatory) base interface types, + in the correct order; each element of the returned sequence will be the + reflection of either an interface type (of type <type + scope="com::sun::star::reflection">XInterfaceTypeDescription</type>) or + a typedef (of type <type + scope="com::sun::star::reflection">XIndirectTypeDescription</type>) + that—directly or indirectly—denotes an interface type + */ + sequence<XTypeDescription> getBaseTypes(); + + /** Returns a sequence of all directly inherited optional base interface + types. + + @returns + a sequence of all directly inherited optional base interface types, in + the correct order; each element of the returned sequence will be the + reflection of either an interface type (of type <type + scope="com::sun::star::reflection">XInterfaceTypeDescription</type>) or + a typedef (of type <type + scope="com::sun::star::reflection">XIndirectTypeDescription</type>) + that—directly or indirectly—denotes an interface type + */ + sequence<XTypeDescription> getOptionalBaseTypes(); +}; + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XMethodParameter.idl b/udkapi/com/sun/star/reflection/XMethodParameter.idl new file mode 100644 index 000000000000..c089f79336ac --- /dev/null +++ b/udkapi/com/sun/star/reflection/XMethodParameter.idl @@ -0,0 +1,98 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XMethodParameter_idl__ +#define __com_sun_star_reflection_XMethodParameter_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects a method parameter. + + <p>This type is superseded by <type>XParameter</type>, which supports + parameters of service constructors as well as parameters of interface + methods.</p> + + @see XInterfaceMethodTypeDescription +*/ +published interface XMethodParameter: com::sun::star::uno::XInterface +{ + /** Returns the name of the parameter + + @return + name of parameter + */ + string getName(); + + /** Returns the type of the parameter. + + @return + type of parameter + */ + com::sun::star::reflection::XTypeDescription getType(); + + /** Returns true, if the parameter is declared as [in] or [inout] in IDL. + + @return + true, if declared [in] or [inout] parameter + */ + boolean isIn(); + + /** Returns true, if the parameter is declared as [out] or [inout] in IDL. + + @return + true, if declared [out] or [inout] parameter + */ + boolean isOut(); + + /** Returns the position of the parameter regarding the IDL method declaration. + + @return + position of the parameter + */ + long getPosition(); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl b/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl new file mode 100644 index 000000000000..d102f246dc76 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl @@ -0,0 +1,61 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XModuleTypeDescription_idl__ +#define __com_sun_star_reflection_XModuleTypeDescription_idl__ + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects a module. + + <p>The type class of this type is + <member scope="com::sun::star::uno">TypeClass::MODULE</member>. + + @since OOo 1.1.2 + */ +published interface XModuleTypeDescription : com::sun::star::reflection::XTypeDescription +{ + /** Returns the type descriptions for the members of this module. + + @return a sequence containing type descriptions. + */ + sequence< XTypeDescription > getMembers(); +}; + +//============================================================================= + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XParameter.idl b/udkapi/com/sun/star/reflection/XParameter.idl new file mode 100644 index 000000000000..d7b8aaa16cbb --- /dev/null +++ b/udkapi/com/sun/star/reflection/XParameter.idl @@ -0,0 +1,59 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XParameter_idl__ +#define __com_sun_star_reflection_XParameter_idl__ + +#include "com/sun/star/reflection/XMethodParameter.idl" + +module com { module sun { module star { module reflection { + +/** + Reflects a parameter of an interface method or a service constructor. + + <p>This type supersedes <type>XMethodParameter</type>, which only supports + parameters of interface methods (which cannot have rest parameters).</p> + + @since OOo 2.0.0 + */ +interface XParameter: XMethodParameter { + /** + Returns whether this is a rest parameter. + + <p>A rest parameter must always come last in a parameter list.</p> + + <p>Currently, only service constructors can have rest parameters, and + those rest parameters must be in parameters of type <atom>any</atom>.</p> + + @return <TRUE/> if and only if this parameter is a rest parameter + */ + boolean isRestParameter(); +}; + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl b/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl new file mode 100644 index 000000000000..f280998221e9 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl @@ -0,0 +1,67 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XPropertyTypeDescription_idl__ +#define __com_sun_star_reflection_XPropertyTypeDescription_idl__ + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects a property. + + <p>The type class of this type is + <member scope="com::sun::star::uno">TypeClass::PROPERTY</member>. + + @since OOo 1.1.2 + */ +published interface XPropertyTypeDescription : com::sun::star::reflection::XTypeDescription +{ + /** @return the flags defined for this property. + + <p>The possible values are defined in + <type scope="com::sun::star::beans">PropertyAttribute</type> + */ + short getPropertyFlags(); + + /** @return the type description for this property. + */ + XTypeDescription getPropertyTypeDescription(); + +}; + +//============================================================================= + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XProxyFactory.idl b/udkapi/com/sun/star/reflection/XProxyFactory.idl new file mode 100644 index 000000000000..9b592e594031 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XProxyFactory.idl @@ -0,0 +1,81 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XProxyFactory_idl__ +#define __com_sun_star_reflection_XProxyFactory_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif +#ifndef __com_sun_star_uno_XAggregation_idl__ +#include <com/sun/star/uno/XAggregation.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Factory interface to produce proxy objects. + + @deprecated + Aggregation will no longer be supported as a high-level concept of UNO. + You may still have the option to implement an UNO object consisting of + several single objects in your specific programming language, though this + depends on your programming language. + Thus this interface is deprecated, too. +*/ +published interface XProxyFactory: com::sun::star::uno::XInterface +{ + /** This method creates a new proxy object that acts on behalf of the given + target object.<br> + The proxy delegates calls to the given target object. + In addition, it is aggregatable, thus it is possible to + intercept calls on the proxy's interfaces. + + @attention + The proxy object is UNO conform, but does NOT provide original target + interfaces on queryInterface() calls. This may lead to problems + regarding object identity, e.g. when dealing with listener proxies. + + @param xTarget + target object + @return + proxy object + */ + com::sun::star::uno::XAggregation createProxy( + [in] com::sun::star::uno::XInterface xTarget ); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XPublished.idl b/udkapi/com/sun/star/reflection/XPublished.idl new file mode 100644 index 000000000000..afb7cefa8a9a --- /dev/null +++ b/udkapi/com/sun/star/reflection/XPublished.idl @@ -0,0 +1,113 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XPublished_idl__ +#define __com_sun_star_reflection_XPublished_idl__ + +#include "com/sun/star/uno/XInterface.idl" + +module com { module sun { module star { module reflection { + +/** + Reflects the “published” status of a UNOIDL entity. + + <p>This interface is intended to be supported by objects that also support + <type scope="com::sun::star::reflection">XTypeDescription</type>. + (This interface could have been made an optional sub-interface of + <type scope="com::sun::star::reflection">XTypeDescription</type>, but is + instead kept independent for reasons of backwards compatibility.)</p> + + <p>For the various kinds of UNOIDL entities that are represented by objects + supporting <type scope="com::sun::star::reflection">XTypeDescription</type> + and its subtypes, this optional interface should be supported as follows:</p> + <ul> + <li>Enum types + (<type scope="com::sun::star::reflection">XEnumTypeDescription</type>), + plain struct types + (<type scope="com::sun::star::reflection">XStructTypeDescription</type>), + polymorphic struct type templates + (<type scope="com::sun::star::reflection">XStructTypeDescription</type>), + exception types (<type + scope="com::sun::star::reflection">XCompoundTypeDescription</type>), + interface types (<type + scope="com::sun::star::reflection">XInterfaceTypeDescription2</type>), + typedefs (<type + scope="com::sun::star::reflection">XIndirectTypeDescription</type>), + individual constants (<type + scope="com::sun::star::reflection">XConstantTypeDescription</type>), + constant groups (<type + scope="com::sun::star::reflection">XConstantsTypeDescription</type>), + single-interface–based services (<type + scope="com::sun::star::reflection">XServiceTypeDescription2</type>), + accumulation-based services (<type + scope="com::sun::star::reflection">XServiceTypeDescription2</type>), + interface-based singletons (<type + scope="com::sun::star::reflection">XSingletonTypeDescription2</type>), + and service-based singletons (<type + scope="com::sun::star::reflection">XSingletonTypeDescription2</type>) + support the notion of being published. Therefore, for an object that + represents any such entity, + <type scope="com::sun::star::reflection">XPublished</type> should be + supported.</li> + + <li>Sequence types (<type + scope="com::sun::star::reflection">XIndirectTypeDescription</type>), + type parameters of polymorphic struct type templates + (<type scope="com::sun::star::reflection">XTypeDescription</type>), + instantiated polymorphic struct types + (<type scope="com::sun::star::reflection">XStructTypeDescription</type>), + attributes of interface types (<type scope="com::sun::star::reflection"> + XInterfaceAttributeTypeDescription2</type>), methods of interface types + (<type scope="com::sun::star::reflection"> + XInterfaceMethodTypeDescription</type>), properties of + accumulation-based services (<type + scope="com::sun::star::reflection">XPropertyTypeDescription</type>), + deprecated + <type scope="com::sun::star::reflection">XArrayTypeDescription</type>s, + and deprecated + <type scope="com::sun::star::reflection">XUnionTypeDescription</type>s do + not support the notion of being published. Therefore, for an object that + represents any such entity, + <type scope="com::sun::star::reflection">XPublished</type> should not be + supported.</li> + </ul> + + @since OOo 2.0.0 +*/ +interface XPublished { + /** + Returns the “published” status of a UNOIDL entity. + + @return <TRUE/> if the UNOIDL entity represented by this object is + published + */ + boolean isPublished(); +}; + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl b/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl new file mode 100644 index 000000000000..2f8f05ba82cc --- /dev/null +++ b/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl @@ -0,0 +1,83 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XServiceConstructorDescription2_idl__ +#define __com_sun_star_reflection_XServiceConstructorDescription2_idl__ + +#include "com/sun/star/uno/XInterface.idl" + +module com { module sun { module star { module reflection { + +interface XCompoundTypeDescription; +interface XParameter; + +/** + Reflects a service constructor. + + @since OOo 2.0.0 + */ +interface XServiceConstructorDescription { + /** + Returns whether the constructor is a default constructor. + + @return <TRUE/> if the constructor is a default constructor + */ + boolean isDefaultConstructor(); + + /** + Returns the constructor's name. + + @return the constructor's name; for a default constructor, an empty + <atom>string</atom> is returned + */ + string getName(); + + /** + Returns the constructor's parameters. + + @return the reflections of all the constructor's parameters, in their + lexical order; for a default constructor, an empty sequence is + returned + */ + sequence<XParameter> getParameters(); + + /** + Returns the exceptions that can be raised by the constructor. + + @return the reflections of all the exceptions that are listed in the + constructor's <code>raises</code> specification, in no particular order; + all elements of the returned sequence will be reflections of exception + types; for a default constructor, an empty sequence is returned (even + though the mapping of a default constructor in a particular language + binding may well raise certain UNO exceptions) + */ + sequence<XCompoundTypeDescription> getExceptions(); +}; + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl b/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl new file mode 100644 index 000000000000..8fcd27642e2b --- /dev/null +++ b/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl @@ -0,0 +1,109 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XServiceTypeDescription_idl__ +#define __com_sun_star_reflection_XServiceTypeDescription_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif +#ifndef __com_sun_star_reflection_XInterfaceTypeDescription_idl__ +#include <com/sun/star/reflection/XInterfaceTypeDescription.idl> +#endif +#ifndef __com_sun_star_reflection_XPropertyTypeDescription_idl__ +#include <com/sun/star/reflection/XPropertyTypeDescription.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects a service. + + <p>This type is superseded by <type>XServiceTypeDescription2</type>, which + supports single-interface–based services, in addition to the obsolete, + accumulation-based services.</p> + + <p>The type class of this type is + <member scope="com::sun::star::uno">TypeClass::SERVICE</member>. + + @since OOo 1.1.2 + */ +published interface XServiceTypeDescription : com::sun::star::reflection::XTypeDescription +{ + /** Returns the type descriptions of the mandatory services + defined for this service. + + @return a sequence containing service type descriptions, for an + obsolete, accumulation-based service; for a + single-interface–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 diff --git a/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl b/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl new file mode 100644 index 000000000000..2536a2d2fe16 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl @@ -0,0 +1,81 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XServiceTypeDescription2_idl__ +#define __com_sun_star_reflection_XServiceTypeDescription2_idl__ + +#include "com/sun/star/reflection/XServiceTypeDescription.idl" + +module com { module sun { module star { module reflection { + +interface XServiceConstructorDescription; +interface XTypeDescription; + +/** + Reflects a service, supporting single-interface–based services. + + <p>This type supersedes <type>XServiceTypeDescription</type>, which only + supports obsolete, accumulation-based services.</p> + + @since OOo 2.0.0 + */ +interface XServiceTypeDescription2: XServiceTypeDescription { + /** + Returns whether this object reflects a single-interface–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 <type + scope="com::sun::star::reflection">XInterfaceTypeDescription</type> + or, in case of a typedef, <type + scope="com::sun::star::reflection">XIndirectTypeDescription</type>), + for a single-interface–based service; for an obsolete, + accumulation-based service, <NULL/> is returned + */ + XTypeDescription getInterface(); + + /** + Returns the constructors of the service. + + @return the reflections of all constructors of the service, in no + particular order + */ + sequence<XServiceConstructorDescription> getConstructors(); +}; + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl b/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl new file mode 100644 index 000000000000..e77382730511 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl @@ -0,0 +1,72 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XSingletonTypeDescription_idl__ +#define __com_sun_star_reflection_XSingletonTypeDescription_idl__ + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif + +#ifndef __com_sun_star_reflection_XServiceTypeDescription_idl__ +#include <com/sun/star/reflection/XServiceTypeDescription.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects a singleton. + + <p>This type is superseded by <type>XSingletonTypeDescription2</type>, which + supports interface-based singletons, in addition to the obsolete, + service-based singletons.</p> + + <p>The type class of this type is + <member scope="com::sun::star::uno">TypeClass::SINGLETON</member>. + + @since OOo 1.1.2 + */ +published interface XSingletonTypeDescription : com::sun::star::reflection::XTypeDescription +{ + /** Returns the service associated with the singleton. + + @return the reflection of the service associated with the singleton, for + an obsolete, service-based singleton; for an interface-based + singleton, <NULL/> is returned + */ + XServiceTypeDescription getService(); + +}; + +//============================================================================= + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl b/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl new file mode 100644 index 000000000000..c4b42d786b00 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl @@ -0,0 +1,70 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XSingletonTypeDescription2_idl__ +#define __com_sun_star_reflection_XSingletonTypeDescription2_idl__ + +#include "com/sun/star/reflection/XSingletonTypeDescription.idl" + +module com { module sun { module star { module reflection { + +interface XTypeDescription; + +/** + Reflects a singleton, supporting interface-based singletons. + + <p>This type supersedes <type>XSingletonTypeDescription</type>, which only + supports obsolete, service-based singletons.</p> + + @since OOo 2.0.0 + */ +interface XSingletonTypeDescription2: XSingletonTypeDescription { + /** + Returns whether this object reflects an interface-based singleton. + + @return <TRUE/> if this object reflects an interface-based singleton, and + <FALSE/> if this object reflects an obsolete, service-based singleton + */ + boolean isInterfaceBased(); + + /** + Returns the interface type associated with the singleton. + + @return the reflection of the interface type associated with the + singleton (of type <type + scope="com::sun::star::reflection">XInterfaceTypeDescription</type> + or, in case of a typedef, <type + scope="com::sun::star::reflection">XIndirectTypeDescription</type>), + for an interface-based singleton; for an obsolete, service-based + singleton, <NULL/> is returned + */ + XTypeDescription getInterface(); +}; + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XStructTypeDescription.idl b/udkapi/com/sun/star/reflection/XStructTypeDescription.idl new file mode 100644 index 000000000000..69063323874c --- /dev/null +++ b/udkapi/com/sun/star/reflection/XStructTypeDescription.idl @@ -0,0 +1,93 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XStructTypeDescription_idl__ +#define __com_sun_star_reflection_XStructTypeDescription_idl__ + +#include "com/sun/star/reflection/XCompoundTypeDescription.idl" + +module com { module sun { module star { module reflection { + +interface XTypeDescription; + +/** + Reflects a struct type, supporting polymorphic struct types. + + <p>This type supersedes <type>XCompoundTypeDescription</type>, which only + supports plain struct types.</p> + + <p>This type is used to reflect all of the following:</p> + <ul> + <li>Polymorphic struct type templates, like + <code>Struct<T, U></code>. For these, + <member scope="com::sun::star::reflection"><!-- + -->XStructTypeDescription::getTypeParameters</member> returns a non-empty + sequence, while <member scope="com::sun::star::reflection"><!-- + -->XStructTypeDescription::getTypeArguments</member> returns an empty + sequence.</li> + + <li>Instantiated polymorphic struct types, like <code>Struct<long, + hyper></code>. For these, + <member scope="com::sun::star::reflection"><!-- + -->XStructTypeDescription::getTypeParameters</member> returns an empty + sequence, while <member scope="com::sun::star::reflection"><!-- + -->XStructTypeDescription::getTypeArguments</member> returns a non-empty + sequence.</li> + + <li>Plain struct types. For these, both + <member scope="com::sun::star::reflection"><!-- + -->XStructTypeDescription::getTypeParameters</member> and + <member scope="com::sun::star::reflection"><!-- + -->XStructTypeDescription::getTypeArguments</member> return an empty + sequence.</li> + </ul> + + @since OOo 2.0.0 + */ +interface XStructTypeDescription: XCompoundTypeDescription { + /** + Returns the type parameters of a polymorphic struct type template. + + @return a sequence of the names of all type parameters, in the correct + order; for a plain struct type, or an instantiated polymorphic struct + type, an empty sequence is returned + */ + sequence<string> getTypeParameters(); + + /** + Returns the type arguments of an instantiated polymorphic struct type. + + @return a sequence of all type arguments, in the correct order; for a + plain struct type, or a polymorphic struct type template, an empty + sequence is returned + */ + sequence<XTypeDescription> getTypeArguments(); +}; + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XTypeDescription.idl b/udkapi/com/sun/star/reflection/XTypeDescription.idl new file mode 100644 index 000000000000..34ce721d2f33 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XTypeDescription.idl @@ -0,0 +1,85 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#define __com_sun_star_reflection_XTypeDescription_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +#ifndef __com_sun_star_uno_TypeClass_idl__ +#include <com/sun/star/uno/TypeClass.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Reflects a UNOIDL entity. + + @see XPublished + @see XIndirectTypeDescription + @see XEnumTypeDescription + @see XStructTypeDescription + @see XCompoundTypeDescription + @see XInterfaceTypeDescription2 + @see XInterfaceAttributeTypeDescription2 + @see XInterfaceMethodTypeDescription + @see XConstantTypeDescription + @see XConstantsTypeDescription + @see XServiceTypeDescription2 + @see XPropertyTypeDescription2 + @see XSingletonTypeDescription2 +*/ +published interface XTypeDescription : com::sun::star::uno::XInterface +{ + /** Returns the type class of the reflected UNOIDL entity. + + @return + type class of the entity + */ + com::sun::star::uno::TypeClass getTypeClass(); + + /** Returns the fully qualified name of the UNOIDL entity. + + @return + fully qualified name of the entity + */ + string getName(); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl new file mode 100644 index 000000000000..bc47bdfc26d5 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl @@ -0,0 +1,69 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XTypeDescriptionEnumeration_idl__ +#define __com_sun_star_reflection_XTypeDescriptionEnumeration_idl__ + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif +#ifndef __com_sun_star_container_XEnumeration_idl__ +#include <com/sun/star/container/XEnumeration.idl> +#endif +#ifndef __com_sun_star_container_NoSuchElementException_idl__ +#include <com/sun/star/container/NoSuchElementException.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Defines an enumeration for type descriptions. + + @since OOo 1.1.2 + */ +published interface XTypeDescriptionEnumeration : com::sun::star::container::XEnumeration +{ + /** Returns the next element of the enumeration. + + @returns + the next element of this enumeration. + + @throws com::sun::star::container::NoSuchElementException + if no more elements exist. + */ + XTypeDescription nextTypeDescription() + raises( com::sun::star::container::NoSuchElementException ); +}; + +//============================================================================= + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl new file mode 100644 index 000000000000..5a7e129919b7 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl @@ -0,0 +1,187 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_reflection_XTypeDescriptionEnumerationAccess_idl__ +#define __com_sun_star_reflection_XTypeDescriptionEnumerationAccess_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif +#ifndef __com_sun_star_uno_TypeClass_idl__ +#include <com/sun/star/uno/TypeClass.idl> +#endif +#ifndef __com_sun_star_reflection_XTypeDescriptionEnumeration_idl__ +#include <com/sun/star/reflection/XTypeDescriptionEnumeration.idl> +#endif +#ifndef __com_sun_star_reflection_TypeDescriptionSearchDepth_idl__ +#include <com/sun/star/reflection/TypeDescriptionSearchDepth.idl> +#endif +#ifndef __com_sun_star_reflection_NoSuchTypeNameException_idl__ +#include <com/sun/star/reflection/NoSuchTypeNameException.idl> +#endif +#ifndef __com_sun_star_reflection_InvalidTypeNameException_idl__ +#include <com/sun/star/reflection/InvalidTypeNameException.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Defines an interface for creating enumerations for type descriptions. + + @since OOo 1.1.2 + + */ +published interface XTypeDescriptionEnumerationAccess : com::sun::star::uno::XInterface +{ + /** Creates an enumeration for type descriptions. + + <p>An enumeration is always created for an UNOIDL module. The + enumeration contents can be restricted by specifying type classes. + Only types that match one of the supplied type classes will be part of + the collection. Additionally, it is possible to specify the depth + for the search within the underlying type description tree. + + @param moduleName + contains the name of an UNOIDL module. Modules are seperated by a + single '.' (i.e., "com.sun.star.reflection"). The root of the module + hierarchy is specified with an empty string. Module names are always + absolute, never relative. + + @param types + restricts the contents of the enumeration. It will only contain + type descriptions that match one of the supplied type classes. An + empty sequence specifies that the enumeration shall contain all + type descriptions. + + <p>Valid types classes are: + <ul> + <li><member scope="com::sun::star::uno">TypeClass::MODULE</member> + <li><member scope="com::sun::star::uno">TypeClass::INTERFACE</member> + <li><member scope="com::sun::star::uno">TypeClass::SERVICE</member> + <li><member scope="com::sun::star::uno">TypeClass::STRUCT</member> + <li><member scope="com::sun::star::uno">TypeClass::ENUM</member> + <li><member scope="com::sun::star::uno">TypeClass::EXCEPTION</member> + <li><member scope="com::sun::star::uno">TypeClass::TYPEDEF</member> + <li><member scope="com::sun::star::uno">TypeClass::CONSTANT</member> + <li><member scope="com::sun::star::uno">TypeClass::CONSTANTS</member> + <li><member scope="com::sun::star::uno">TypeClass::SINGLETON</member> + </ul> + + @param depth + specifies the depth of search in the underlying tree of type + descriptions. Clients should be aware of the fact that specifiying + <member>TypeDescriptionSearchDepth::INFINITE</member> can lead to + larger delays when constructing or using the + <type>XTypeDescriptionEnumeration</type> instance. + + @returns + an enumeration of type descriptions. + + <p>The enumeration returns implementations of + <type>XTypeDescription</type>. Following concrete UNOIDL parts + represented by specialized interfaces derived from + <type>XTypeDescription</type> can be returned by the enumerator: + + <table border="1"> + <thead><tr><th>IDL</th><th>interface</th></tr></thead> + <tbody> + <tr> + <td>enum</td> + <td><type>XEnumTypeDescription</type></td> + </tr> + <tr> + <td>struct</td> + <td><type>XCompoundTypeDescription</type> (the returned + object should actually implement + <type>XStructTypeDescription</type>)</td> + </tr> + <tr> + <td>exception</td> + <td><type>XCompoundTypeDescription</type></td> + </tr> + <tr> + <td>interface</td> + <td><type>XInterfaceTypeDescription</type> (the returned + object should actually implement + <type>XInterfaceTypeDescription2</type>)</td> + </tr> + <tr> + <td>service</td> + <td><type>XServiceTypeDescription</type> (the returned + object should actually implement + <type>XServiceTypeDescription2</type>)</td> + </tr> + <tr> + <td>singleton</td> + <td><type>XSingletonTypeDescription</type> (the returned + object should actually implement + <type>XSingletonTypeDescription2</type>)</td> + </tr> + <tr> + <td>module</td> + <td><type>XModuleTypeDescription</type></td> + </tr> + <tr> + <td>typedef</td> + <td><type>XIndirectTypeDescription</type></td> + </tr> + <tr> + <td>constant</td> + <td><type>XConstantTypeDescription</type></td> + </tr> + <tr> + <td>constants</td> + <td><type>XConstantsTypeDescription</type></td> + </tr> + </tbody> + </table> + + @throws NoSuchTypeNameException + in case that the given module name does not exist. This exception + will never be thrown in case moduleName is the empty string. + + @throws InvalidTypeNameException + in case that the given module name does exist, but does not specify + an UNOIDL module. This exception will never be thrown in case + moduleName is the empty string. + */ + XTypeDescriptionEnumeration + createTypeDescriptionEnumeration( + [in] string moduleName, + [in] sequence< com::sun::star::uno::TypeClass > types, + [in] TypeDescriptionSearchDepth depth ) + raises( NoSuchTypeNameException, InvalidTypeNameException ); +}; + +//============================================================================= + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl b/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl new file mode 100644 index 000000000000..d02d6d53fd2d --- /dev/null +++ b/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl @@ -0,0 +1,100 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_reflection_XUnionTypeDescription_idl__ +#define __com_sun_star_reflection_XUnionTypeDescription_idl__ + +#ifndef __com_sun_star_reflection_XTypeDescription_idl__ +#include <com/sun/star/reflection/XTypeDescription.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module reflection { + +//============================================================================= + +/** Deprecated. Unions are not supported. + Reflects a union type. + The discriminant of a union switches between the current value types. + In addition, there is also a default case, having no discriminant. + + @deprecated +*/ +published interface XUnionTypeDescription: com::sun::star::reflection::XTypeDescription +{ + /** Returns the (ordinal) discriminant type. + + @return + type of the discriminant + */ + com::sun::star::reflection::XTypeDescription getDiscriminantType(); + + /** Returns the default discriminant value. + + @return + default discriminant value + */ + any getDefaultDiscriminant(); + + /** Returns the type of the default value. + + @return + type of the default value + */ + com::sun::star::reflection::XTypeDescription getDefaultMemberType(); + + /** Returns discriminants of all members in order of IDL declaration. + + @return + discriminants of all members + */ + sequence< any > getDiscriminants(); + + /** Returns types of all members in order of IDL declaration. + + @return + types of all members + */ + sequence< com::sun::star::reflection::XTypeDescription > getMemberTypes(); + + /** Returns names of all members in order of IDL declaration. + + @return + names of all members + */ + sequence< string > getMemberNames(); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/reflection/makefile.mk b/udkapi/com/sun/star/reflection/makefile.mk new file mode 100644 index 000000000000..a8b1bc8e62a4 --- /dev/null +++ b/udkapi/com/sun/star/reflection/makefile.mk @@ -0,0 +1,93 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=..$/..$/..$/.. + +PRJNAME=api + +TARGET=cssreflection +PACKAGE=com$/sun$/star$/reflection + +# --- Settings ----------------------------------------------------- +.INCLUDE : $(PRJ)$/util$/makefile.pmk + +# ------------------------------------------------------------------------ + +IDLFILES=\ + CoreReflection.idl\ + FieldAccessMode.idl\ + InvalidTypeNameException.idl\ + InvocationTargetException.idl\ + MethodMode.idl\ + NoSuchTypeNameException.idl\ + ParamInfo.idl\ + ParamMode.idl\ + ProxyFactory.idl\ + TypeDescriptionManager.idl\ + TypeDescriptionProvider.idl\ + TypeDescriptionSearchDepth.idl\ + XArrayTypeDescription.idl\ + XCompoundTypeDescription.idl\ + XConstantTypeDescription.idl\ + XConstantsTypeDescription.idl\ + XUnionTypeDescription.idl\ + XEnumTypeDescription.idl\ + XIdlArray.idl\ + XIdlClass.idl\ + XIdlClassProvider.idl\ + XIdlField.idl\ + XIdlField2.idl\ + XIdlMember.idl\ + XIdlMethod.idl\ + XIdlReflection.idl\ + XIndirectTypeDescription.idl\ + XInterfaceAttributeTypeDescription.idl\ + XInterfaceAttributeTypeDescription2.idl \ + XInterfaceMemberTypeDescription.idl\ + XInterfaceMethodTypeDescription.idl\ + XInterfaceTypeDescription.idl\ + XInterfaceTypeDescription2.idl \ + XMethodParameter.idl\ + XModuleTypeDescription.idl\ + XParameter.idl \ + XPropertyTypeDescription.idl\ + XProxyFactory.idl\ + XPublished.idl \ + XServiceConstructorDescription.idl \ + XServiceTypeDescription.idl\ + XServiceTypeDescription2.idl \ + XSingletonTypeDescription.idl\ + XSingletonTypeDescription2.idl \ + XStructTypeDescription.idl \ + XTypeDescription.idl\ + XTypeDescriptionEnumeration.idl\ + XTypeDescriptionEnumerationAccess.idl + +# ------------------------------------------------------------------ + +.INCLUDE : target.mk +.INCLUDE : $(PRJ)$/util$/target.pmk |