|  | /************************************************************** | 
|  | * | 
|  | * 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 | 
|  | * | 
|  | * Unless required by applicable law or agreed to in writing, | 
|  | * software distributed under the License is distributed on an | 
|  | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
|  | * KIND, either express or implied.  See the License for the | 
|  | * specific language governing permissions and limitations | 
|  | * under the License. | 
|  | * | 
|  | *************************************************************/ | 
|  |  | 
|  |  | 
|  | #ifndef __com_sun_star_beans_XIntrospectionAccess_idl__ | 
|  | #define __com_sun_star_beans_XIntrospectionAccess_idl__ | 
|  |  | 
|  | #ifndef __com_sun_star_uno_XInterface_idl__ | 
|  | #include <com/sun/star/uno/XInterface.idl> | 
|  | #endif | 
|  |  | 
|  | #ifndef __com_sun_star_beans_Property_idl__ | 
|  | #include <com/sun/star/beans/Property.idl> | 
|  | #endif | 
|  |  | 
|  | #ifndef __com_sun_star_container_NoSuchElementException_idl__ | 
|  | #include <com/sun/star/container/NoSuchElementException.idl> | 
|  | #endif | 
|  |  | 
|  | #ifndef __com_sun_star_reflection_XIdlMethod_idl__ | 
|  | #include <com/sun/star/reflection/XIdlMethod.idl> | 
|  | #endif | 
|  |  | 
|  | #ifndef __com_sun_star_lang_NoSuchMethodException_idl__ | 
|  | #include <com/sun/star/lang/NoSuchMethodException.idl> | 
|  | #endif | 
|  |  | 
|  | #ifndef __com_sun_star_reflection_XIdlClass_idl__ | 
|  | #include <com/sun/star/reflection/XIdlClass.idl> | 
|  | #endif | 
|  |  | 
|  | #ifndef __com_sun_star_beans_IllegalTypeException_idl__ | 
|  | #include <com/sun/star/beans/IllegalTypeException.idl> | 
|  | #endif | 
|  |  | 
|  | //============================================================================= | 
|  |  | 
|  | module com {  module sun {  module star {  module beans { | 
|  |  | 
|  | //============================================================================= | 
|  |  | 
|  | /** represents the result of an introspection operation done by | 
|  | the	inspect method of <type scope="com::sun::star::beans"> | 
|  | XIntrospection</type>. | 
|  |  | 
|  | <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 <member scope="com::sun::star::beans"> | 
|  | XIntrospectionAccess::queryAdapter()</member></p> | 
|  |  | 
|  | <p>The <type>XExactName</type> interface has to be supported | 
|  | in order to implement inaccurate name access for all objects | 
|  | which implement the <type scope="com::sun::star::container"> | 
|  | XNameAccess</type> interface or <type>XPropertySet</type>.</p> | 
|  |  | 
|  | <p>The <type>XMaterialHolder</type> 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 <type>MethodConcept</type> constants group are supported | 
|  | by this <type>XIntrospectionAccess</type> implementation. | 
|  |  | 
|  | <p>The minimum supported concepts should be:</p> | 
|  |  | 
|  | <ul> | 
|  | <li> <const>MethodConcept::PROPERTY</const>, </li> | 
|  | <li> <const>MethodConcept::LISTENER</const>, </li> | 
|  | <li> <const>MethodConcept::ENUMERATION</const>, </li> | 
|  | <li> <const>MethodConcept::NAMECONTAINER</const></li> | 
|  | <li> <const>MethodConcept::INDEXCONTAINER</const>; </li> | 
|  | </ul> | 
|  |  | 
|  | @returns | 
|  | zero or more constants of the <type>MethodConcept</type> | 
|  | constants group combined by an arithmetical or-operation. | 
|  | */ | 
|  | long getSuppliedMethodConcepts(); | 
|  |  | 
|  | //------------------------------------------------------------------------- | 
|  | /** returns information about which property concepts described in | 
|  | the <type>PropertyConcept</type> constants group are supported | 
|  | by this <type>XIntrospectionAccess</type> implementation. | 
|  |  | 
|  | <p>The minimum supported concepts should be:</p> | 
|  |  | 
|  | <ul> | 
|  | <li> <const>PropertyConcept::PROPERTYSET</const>, </li> | 
|  | <li> <const>PropertyConcept::ATTRIBUTES</const> and </li> | 
|  | <li> <const>PropertyConcept::METHODS</const>.  </li> | 
|  | </ul> | 
|  |  | 
|  | @returns | 
|  | zero or more constants of the <type>PropertyConcept</type> | 
|  | 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 <type>PropertyConcept</type>s. The information | 
|  | is provided as <type>Property</type> struct. | 
|  |  | 
|  | @returns | 
|  | A <type>Property</type> 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 <type>PropertyConcept | 
|  | </type> 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 <type>PropertyConcept | 
|  | </type>. | 
|  | */ | 
|  | 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 <type> | 
|  | PropertyConcept</type>s. | 
|  |  | 
|  | @returns | 
|  | <TRUE/> if the property exists and accords to one of | 
|  | the demanded <type>PropertyConcept</type>s, otherwise | 
|  | <FALSE/> is returned. | 
|  |  | 
|  | @param aName | 
|  | the name of the property. | 
|  |  | 
|  | @param nPropertyConcepts | 
|  | zero or more constants of the <type>PropertyConcept | 
|  | </type> 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 <type>PropertyConcept</type>s. | 
|  |  | 
|  | @param nPropertyConcepts | 
|  | zero or more constants of the <type>PropertyConcept | 
|  | </type> 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 <type scope="com::sun::star::reflection"> | 
|  | XIdlMethod</type>. | 
|  |  | 
|  | @returns | 
|  | A <type scope="com::sun::star::reflection"> | 
|  | XIdlMethod</type> 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 <type>MethodConcept | 
|  | </type> 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 <type>MethodConcept</type>. | 
|  | */ | 
|  | 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 <type>MethodConcept | 
|  | </type>s. | 
|  |  | 
|  | @returns | 
|  | <TRUE/> if the method exists and accords to one of | 
|  | the demanded <type>MethodConcept</type>s, otherwise | 
|  | <FALSE/> is returned. | 
|  |  | 
|  | @param aName | 
|  | the name of the method. | 
|  |  | 
|  | @param nMethodConcepts | 
|  | zero or more constants of the <type>MethodConcept | 
|  | </type> 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 <type>MethodConcept</type>s. | 
|  |  | 
|  | @param nMethodConcepts | 
|  | zero or more constants of the <type>MethodConcept | 
|  | </type> 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 <type>XPropertySet | 
|  | </type> interface. If the <type>XPropertySet</type> can | 
|  | be queried,	the <type>XFastPropertySet</type> interface | 
|  | must be supported too.  </p> | 
|  |  | 
|  | <p>If the introspected object implements a name container, | 
|  | the introspection should return the <type scope= | 
|  | "com::sun::star::container">XNameAccess</type> and <type | 
|  | scope="com::sun::star::container">XNameContainer</type> | 
|  | interfaces.</p> | 
|  |  | 
|  | <p>If the introspected object implements an index container, | 
|  | the introspection should return the <type scope= | 
|  | "com::sun::star::container">XIndexAccess</type> and <type | 
|  | scope="com::sun::star::container">XIndexContainer</type> | 
|  | interfaces.</p> | 
|  |  | 
|  | <p>If the introspected object implements an enumeration | 
|  | container, the introspection should return the <type scope= | 
|  | "com::sun::star::container">XEnumerationAccess</type> | 
|  | interface.</p> | 
|  |  | 
|  | <p>If the introspected object implements the <type scope= | 
|  | "com::sun::star::reflection">XIdlArray</type> interface, | 
|  | the introspection should return this.</p> | 
|  |  | 
|  | <p>To implement inaccurate name access, at all objects, | 
|  | which implement the <type scope="com::sun::star::container"> | 
|  | XNameAccess</type> or <type>XPropertySet</type> interface, | 
|  | the <type>XExactName</type> 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 |