d1449a9b99
Change-Id: I8eb2116b39929770f00e30d5ab9ca2c28c988e35
103 lines
4.2 KiB
Text
103 lines
4.2 KiB
Text
/* -*- 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_XIntrospection_idl__
|
|
#define __com_sun_star_beans_XIntrospection_idl__
|
|
|
|
#include <com/sun/star/uno/XInterface.idl>
|
|
|
|
#include <com/sun/star/beans/XIntrospectionAccess.idl>
|
|
|
|
|
|
|
|
module com { module sun { module star { module beans {
|
|
|
|
/** 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
|
|
{
|
|
/** 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
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|