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