diff options
Diffstat (limited to 'udkapi/com/sun/star/beans/XIntrospectionAccess.idl')
-rw-r--r-- | udkapi/com/sun/star/beans/XIntrospectionAccess.idl | 278 |
1 files changed, 278 insertions, 0 deletions
diff --git a/udkapi/com/sun/star/beans/XIntrospectionAccess.idl b/udkapi/com/sun/star/beans/XIntrospectionAccess.idl new file mode 100644 index 000000000..be325005f --- /dev/null +++ b/udkapi/com/sun/star/beans/XIntrospectionAccess.idl @@ -0,0 +1,278 @@ +/* -*- 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_beans_XIntrospectionAccess_idl__ +#define __com_sun_star_beans_XIntrospectionAccess_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/beans/Property.idl> + +#include <com/sun/star/container/NoSuchElementException.idl> + +#include <com/sun/star/reflection/XIdlMethod.idl> + +#include <com/sun/star/lang/NoSuchMethodException.idl> + +#include <com/sun/star/reflection/XIdlClass.idl> + +#include <com/sun/star/beans/IllegalTypeException.idl> + + + module com { module sun { module star { module beans { + + +/** represents the result of an introspection operation done by + the inspect method of XIntrospection. + + <p>This interface gives information about an object's + properties and methods as detected in the introspection + process. It's not possible to access properties or call + methods directly using this interface but it provides + access to other interfaces to do so. + See com::sun::star::beans::XIntrospectionAccess::queryAdapter()</p> + + <p>The XExactName interface has to be supported + in order to implement inaccurate name access for all objects + which implement the com::sun::star::container::XNameAccess interface + or XPropertySet.</p> + + <p>The XMaterialHolder interface has to be + supported to give access to the inspected object.</p> + + @see XPropertySet + @see com::sun::star::beans::XExactName + */ +published interface XIntrospectionAccess: com::sun::star::uno::XInterface +{ + /** returns information about which method concepts described in + the MethodConcept constants group are supported + by this XIntrospectionAccess implementation. + + <p>The minimum supported concepts should be:</p> + + <ul> + <li> MethodConcept::PROPERTY, </li> + <li> MethodConcept::LISTENER, </li> + <li> MethodConcept::ENUMERATION, </li> + <li> MethodConcept::NAMECONTAINER</li> + <li> MethodConcept::INDEXCONTAINER; </li> + </ul> + + @returns + zero or more constants of the MethodConcept + constants group combined by an arithmetical or-operation. + */ + long getSuppliedMethodConcepts(); + + /** returns information about which property concepts described in + the PropertyConcept constants group are supported + by this XIntrospectionAccess implementation. + + <p>The minimum supported concepts should be:</p> + + <ul> + <li> PropertyConcept::PROPERTYSET, </li> + <li> PropertyConcept::ATTRIBUTES and </li> + <li> PropertyConcept::METHODS. </li> + </ul> + + @returns + zero or more constants of the PropertyConcept + constants group.combined by an arithmetical or-operation. + */ + long getSuppliedPropertyConcepts(); + + /** returns information about a property if a property with + the demanded name exists and if it accords to one of the + demanded PropertyConcepts. The information + is provided as Property struct. + + @returns + A Property struct providing + information about the demanded property, + if a corresponding property exists. + + @param aName + the name of the property. + + @param nPropertyConcepts + zero or more constants of the PropertyConcept + constants group combined by an arithmetical + or-operation. + + @throws NoSuchElementException + when a property with the demanded name doesn't exist + or if it accords to a wrong PropertyConcept. + */ + com::sun::star::beans::Property getProperty( [in] string aName, + [in] long nPropertyConcepts ) + raises( com::sun::star::container::NoSuchElementException ); + + /** allows to ask if a property with the demanded name exists + and if it accords to one of the demanded PropertyConcept. + + @returns + `TRUE` if the property exists and accords to one of + the demanded PropertyConcepts, otherwise + `FALSE` is returned. + + @param aName + the name of the property. + + @param nPropertyConcepts + zero or more constants of the PropertyConcept + constants group combined by an arithmetical + or-operation. + */ + boolean hasProperty( [in] string aName, + [in] long nPropertyConcepts ); + + /** returns a sequence of properties of the introspected object + + @returns + all properties of the introspected object which accord + to the demanded PropertyConcepts. + + @param nPropertyConcepts + zero or more constants of the PropertyConcept + constants group combined by an arithmetical + or-operation. + */ + sequence<com::sun::star::beans::Property> getProperties( + [in] long nPropertyConcepts ); + + /** returns information about a method if a method with + the demanded name exists and if it accords to one of + the demanded MethodConcepts. The information is + provided as com::sun::star::reflection::XIdlMethod. + + @returns + A com::sun::star::reflection::XIdlMethod providing + information about and + access to the demanded method if a corresponding + method exists. + + @param aName + the name of the method. + + @param nMethodConcepts + zero or more constants of the MethodConcept + constants group combined by an arithmetical + or-operation. + + @throws NoSuchElementException + when a method with the demanded name doesn't exist + or if it accords to a wrong MethodConcept. + */ + com::sun::star::reflection::XIdlMethod getMethod( [in] string aName, + [in] long nMethodConcepts ) + raises( com::sun::star::lang::NoSuchMethodException ); + + /** allows to ask if a method with the demanded name exists + and if it accords to one of the demanded MethodConcept. + + @returns + `TRUE` if the method exists and accords to one of + the demanded MethodConcepts, otherwise + `FALSE` is returned. + + @param aName + the name of the method. + + @param nMethodConcepts + zero or more constants of the MethodConcept + constants group combined by an arithmetical + or-operation. + */ + boolean hasMethod( [in] string aName, + [in] long nMethodConcepts ); + + /** returns a sequence of methods of the introspected object. + + @returns + all methods of the introspected object which accord + to the demanded MethodConcepts. + + @param nMethodConcepts + zero or more constants of the MethodConcept + constants group combined by an arithmetical + or-operation. + */ + sequence<com::sun::star::reflection::XIdlMethod> getMethods( + [in] long nMethodConcepts ); + + /** returns the listener types supported by the introspected + object. + + <p>If the introspected object has the methods + <code>addFooListener( XFooListener xFoo )</code> and + <code>removeFooListener( XFooListener xFoo )</code> + the type of XFooListener will be one of the elements + in the returned sequence. + + @returns + a sequence of the types of listener interfaces + which are supported by the introspected object. + */ + sequence<type> getSupportedListeners(); + + /** creates an adapter that implements an interface with the + specified type. + + <p>To access properties, query for the XPropertySet + interface. If the XPropertySet can + be queried, the XFastPropertySet interface + must be supported too. </p> + + <p>If the introspected object implements a name container, + the introspection should return the + com::sun::star::container::XNameAccess and + com::sun::star::container::XNameContainer interfaces.</p> + + <p>If the introspected object implements an index container, + the introspection should return the + com::sun::star::container::XIndexAccess and + com::sun::star::container::XIndexContainer interfaces.</p> + + <p>If the introspected object implements an enumeration + container, the introspection should return the + com::sun::star::container::XEnumerationAccess interface.</p> + + <p>If the introspected object implements the + com::sun::star::reflection::XIdlArray interface, + the introspection should return this.</p> + + <p>To implement inaccurate name access, at all objects, + which implement the com::sun::star::container::XNameAccess or + XPropertySet interface, the XExactName interface has to be supported. + </p> + + @see com::sun::star::beans::XExactName + */ + com::sun::star::uno::XInterface queryAdapter( [in] type aInterfaceType ) + raises( com::sun::star::beans::IllegalTypeException ); + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |