1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
22 module com
{ module sun
{ module star
{ module beans
{
24 /** allows the inspection of an object's properties and methods.
26 <p><strong>Important note:</strong>An object can only be
27 inspected completely if it supports the com::sun::star::lang::XTypeProvider
30 <p>For details see method XIntrospection::inspect(). </p>
32 @see XIntrospectionAccess
34 published
interface XIntrospection
: com
::sun
::star
::uno
::XInterface
36 /** inspects the given object.
38 <p>It identifies all properties supported by the object
39 if they are represented in one of the following ways: </p>
42 <dt>property set </dt>
43 <dd>If the object supports an XPropertySet
44 interface, all its properties are adopted.
48 <dd>All of an object's attributes are considered as properties
49 with same name. If an attribute is read-only, the property
53 <dt>get/set methods </dt>
54 <dd>Every method <code>RetType getX()</code> defines a
55 property where "X" stands for the property name and
56 "RetType" for its type. The method must not have any
57 parameters, or there is no property access method
58 and "X" has no property. If there is also a method
59 <code>void setX( [in] RetType )</code>, the property
60 "X" also allows write access; otherwise it is read-only.
63 <dt> <strong>Important note:</strong></dt>
64 <dd>If an object implements com::sun::star::container::XNameAccess,
65 the items that can be accessed are not considered as properties
66 of the object and so are not included in the property list offered by
67 com::sun::star::beans::XIntrospectionAccess::getProperties().
68 com::sun::star::container::XNameAccess items have to be
69 accessed separately by com::sun::star::beans::XIntrospectionAccess::getNameAccess().
73 <p>In addition, the inspect method identifies all listener
74 access methods in the form <code>add...Listener</code>/
75 <code>remove...Listener</code> (except methods of interface
76 XPropertySet) where "..." stands for the listener type.
79 <p>Methods which do not belong to a property nor which represent
80 a listener access nor which are methods of XPropertySet,
81 com::sun::star::container::XNameAccess,
82 com::sun::star::container::XIndexAccess, or
83 com::sun::star::container::XEnumerationAccess, are considered to be normal
86 @see XIntrospectionAccess
88 com
::sun
::star
::beans
::XIntrospectionAccess inspect
( [in] any aObject
);
95 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */