| /************************************************************** |
| * |
| * 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_XIntrospection_idl__ |
| #define __com_sun_star_beans_XIntrospection_idl__ |
| |
| #ifndef __com_sun_star_uno_XInterface_idl__ |
| #include <com/sun/star/uno/XInterface.idl> |
| #endif |
| |
| #ifndef __com_sun_star_beans_XIntrospectionAccess_idl__ |
| #include <com/sun/star/beans/XIntrospectionAccess.idl> |
| #endif |
| |
| |
| //============================================================================= |
| |
| module com { module sun { module star { module beans { |
| |
| //============================================================================= |
| |
| // DocMerge from xml: interface com::sun::star::beans::XIntrospection |
| /** allows the inspection of an object's properties and methods. |
| |
| <p><strong>Important note:</strong>An object can only be |
| inspected completely if it supports the <type scope= |
| "com::sun::star::lang">XTypeProvider</type> interface.</p> |
| |
| <p>For details see method <member>XIntrospection::inspect</member>. </p> |
| |
| @see XIntrospectionAccess |
| */ |
| published interface XIntrospection: com::sun::star::uno::XInterface |
| { |
| //------------------------------------------------------------------------- |
| |
| // DocMerge from xml: method com::sun::star::beans::XIntrospection::inspect |
| /** inspects the given object. |
| |
| <p>It identifies all properties supported by the object |
| if they are represented in one of the following ways: </p> |
| |
| <dl> |
| <dt>property set </dt> |
| <dd>If the object supports an <type>XPropertySet</type> |
| interface, all its properties are adopted. |
| </dd> |
| |
| <dt>attributes </dt> |
| <dd>All of an object's attributes are considered as properties |
| with same name. If an attribute is read-only, the property |
| also is read-only. |
| </dd> |
| |
| <dt>get/set methods </dt> |
| <dd>Every method <code>RetType getX()</code> defines a |
| property where "X" stands for the property name and |
| "RetType" for its type. The method must not have any |
| parameters, or there is no property access method |
| and "X" has no property. If there is also a method |
| <code>void setX( [in] RetType )</code>, the property |
| "X" also allows write access; otherwise it is read-only. |
| </dd> |
| |
| <dt> <strong>Important note:</strong></dt> |
| <dd>If an object implements <type scope="com::sun::star::container">XNameAccess</type>, |
| the items that can be accessed are not considered as properties |
| of the object and so are not included in the property list offered by |
| <member scope="com::sun::star::beans">XIntrospectionAccess::getProperties()</member>. |
| <type scope="com::sun::star::container">XNameAccess</type> items have to be |
| accessed separately by <member scope="com::sun::star::beans">XIntrospectionAccess::getNameAccess()</member>. |
| </dd> |
| </dl> |
| |
| <p>In addition, the inspect method identifies all listener |
| access methods in the form <code>add...Listener</code>/ |
| <code>remove...Listener</code> (except methods of interface |
| <type>XPropertySet</type>) where "..." stands for the listener type. |
| </p> |
| |
| <p>Methods which do not belong to a property nor which represent |
| a listener access nor which are methods of <type>XPropertySet</type>, |
| <type scope="com::sun::star::container">XNameAccess</type>, |
| <type scope="com::sun::star::container">XIndexAccess</type>, or |
| <type scope="com::sun::star::container">XEnumerationAccess</type>, are considered to be normal |
| methods. </p> |
| |
| @see XIntrospectionAccess |
| */ |
| com::sun::star::beans::XIntrospectionAccess inspect( [in] any aObject ); |
| |
| }; |
| |
| //============================================================================= |
| |
| }; }; }; }; |
| |
| #endif |