1408a4873SAndrew Rist/************************************************************** 2*a5f4f399SMatthias Seidel * 3408a4873SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4408a4873SAndrew Rist * or more contributor license agreements. See the NOTICE file 5408a4873SAndrew Rist * distributed with this work for additional information 6408a4873SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7408a4873SAndrew Rist * to you under the Apache License, Version 2.0 (the 8408a4873SAndrew Rist * "License"); you may not use this file except in compliance 9408a4873SAndrew Rist * with the License. You may obtain a copy of the License at 10*a5f4f399SMatthias Seidel * 11408a4873SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*a5f4f399SMatthias Seidel * 13408a4873SAndrew Rist * Unless required by applicable law or agreed to in writing, 14408a4873SAndrew Rist * software distributed under the License is distributed on an 15408a4873SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16408a4873SAndrew Rist * KIND, either express or implied. See the License for the 17408a4873SAndrew Rist * specific language governing permissions and limitations 18408a4873SAndrew Rist * under the License. 19*a5f4f399SMatthias Seidel * 20408a4873SAndrew Rist *************************************************************/ 21408a4873SAndrew Rist 22408a4873SAndrew Rist 23*a5f4f399SMatthias Seidel#ifndef __com_sun_star_beans_XHierarchicalPropertySet_idl__ 24*a5f4f399SMatthias Seidel#define __com_sun_star_beans_XHierarchicalPropertySet_idl__ 25*a5f4f399SMatthias Seidel 26*a5f4f399SMatthias Seidel#ifndef __com_sun_star_uno_XInterface_idl__ 27*a5f4f399SMatthias Seidel#include <com/sun/star/uno/XInterface.idl> 28*a5f4f399SMatthias Seidel#endif 29*a5f4f399SMatthias Seidel 30*a5f4f399SMatthias Seidel#ifndef __com_sun_star_beans_XHierarchicalPropertySetInfo_idl__ 31*a5f4f399SMatthias Seidel#include <com/sun/star/beans/XHierarchicalPropertySetInfo.idl> 32*a5f4f399SMatthias Seidel#endif 33*a5f4f399SMatthias Seidel 34*a5f4f399SMatthias Seidel#ifndef __com_sun_star_beans_UnknownPropertyException_idl__ 35*a5f4f399SMatthias Seidel#include <com/sun/star/beans/UnknownPropertyException.idl> 36*a5f4f399SMatthias Seidel#endif 37*a5f4f399SMatthias Seidel 38*a5f4f399SMatthias Seidel#ifndef __com_sun_star_beans_PropertyVetoException_idl__ 39*a5f4f399SMatthias Seidel#include <com/sun/star/beans/PropertyVetoException.idl> 40*a5f4f399SMatthias Seidel#endif 41*a5f4f399SMatthias Seidel 42*a5f4f399SMatthias Seidel#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ 43*a5f4f399SMatthias Seidel#include <com/sun/star/lang/IllegalArgumentException.idl> 44*a5f4f399SMatthias Seidel#endif 45*a5f4f399SMatthias Seidel 46*a5f4f399SMatthias Seidel#ifndef __com_sun_star_lang_WrappedTargetException_idl__ 47*a5f4f399SMatthias Seidel#include <com/sun/star/lang/WrappedTargetException.idl> 48*a5f4f399SMatthias Seidel#endif 49*a5f4f399SMatthias Seidel 50*a5f4f399SMatthias Seidel 51*a5f4f399SMatthias Seidel//============================================================================= 52*a5f4f399SMatthias Seidel 53*a5f4f399SMatthias Seidelmodule com { module sun { module star { module beans { 54*a5f4f399SMatthias Seidel 55*a5f4f399SMatthias Seidel//============================================================================= 56*a5f4f399SMatthias Seidel 57cdf0e10cSrcweir/** provides information about and access to the 58*a5f4f399SMatthias Seidel a hierarchy of properties from an implementation. 59*a5f4f399SMatthias Seidel 60cdf0e10cSrcweir <p> Usually an object that implements this interface 61*a5f4f399SMatthias Seidel also implements <type>XPropertySet</type> and at 62*a5f4f399SMatthias Seidel least some of the properties have subproperties.</p> 63cdf0e10cSrcweir 64cdf0e10cSrcweir <p> This interface allows direct access to subsubproperties, ... 65*a5f4f399SMatthias Seidel up to an arbitrary nesting depth. Often the intermediate 66*a5f4f399SMatthias Seidel elements of the hierarchy implement <type>XProperty</type>.</p> 67cdf0e10cSrcweir 68*a5f4f399SMatthias Seidel <p> Each implementation specifies how the 69*a5f4f399SMatthias Seidel hierarchical property names, that are 70*a5f4f399SMatthias Seidel used to access the elements of the hierarchy, 71*a5f4f399SMatthias Seidel are formed.</p> 72cdf0e10cSrcweir 7386e1cf34SPedro Giffuni <p> Commonly a notation similar to filesystem paths 74cdf0e10cSrcweir (separated by '/' slashes) or nested module names 75*a5f4f399SMatthias Seidel (separated by dots '.' or '::') is used.</p> 76*a5f4f399SMatthias Seidel 77cdf0e10cSrcweir */ 78cdf0e10cSrcweirpublished interface XHierarchicalPropertySet: com::sun::star::uno::XInterface 79*a5f4f399SMatthias Seidel{ 80*a5f4f399SMatthias Seidel //------------------------------------------------------------------------- 81*a5f4f399SMatthias Seidel 82cdf0e10cSrcweir /** retrieve information about the hierarchy of properties 83cdf0e10cSrcweir 84*a5f4f399SMatthias Seidel @returns 85*a5f4f399SMatthias Seidel the <type>XHierarchicalPropertySetInfo</type> interface, 86*a5f4f399SMatthias Seidel which describes the property hierarchy of the object which 87*a5f4f399SMatthias Seidel supplies this interface. 88*a5f4f399SMatthias Seidel 89*a5f4f399SMatthias Seidel @returns 90*a5f4f399SMatthias Seidel <NULL/> if the implementation cannot or will 91*a5f4f399SMatthias Seidel not provide information about the properties; otherwise the 92*a5f4f399SMatthias Seidel interface <type>XHierarchicalPropertySetInfo</type> is returned. 93cdf0e10cSrcweir */ 94*a5f4f399SMatthias Seidel com::sun::star::beans::XHierarchicalPropertySetInfo 95*a5f4f399SMatthias Seidel getHierarchicalPropertySetInfo(); 96*a5f4f399SMatthias Seidel 97*a5f4f399SMatthias Seidel //------------------------------------------------------------------------- 98*a5f4f399SMatthias Seidel 99cdf0e10cSrcweir /** sets the value of the property with the specified nested name. 100*a5f4f399SMatthias Seidel 101*a5f4f399SMatthias Seidel @param aHierarchicalPropertyName 102*a5f4f399SMatthias Seidel This parameter specifies the name of the property. 103*a5f4f399SMatthias Seidel 104*a5f4f399SMatthias Seidel @param aValue 105*a5f4f399SMatthias Seidel This parameter specifies the new value for the property. 106*a5f4f399SMatthias Seidel 107*a5f4f399SMatthias Seidel @throws UnknownPropertyException 108*a5f4f399SMatthias Seidel if the property does not exist. 109*a5f4f399SMatthias Seidel 110*a5f4f399SMatthias Seidel @throws PropertyVetoException 111*a5f4f399SMatthias Seidel if the property is constrained and the change is vetoed by a 112cdf0e10cSrcweir <type>XVetoableChangeListener</type>. 113*a5f4f399SMatthias Seidel 114*a5f4f399SMatthias Seidel @throws com::sun::star::uno::lang::IllegalArgumentException 115*a5f4f399SMatthias Seidel if <var>aValue</var> is not a legal value for this property or 116*a5f4f399SMatthias Seidel if <var>aHierarchicalPropertyName</var> is not a well-formed 117*a5f4f399SMatthias Seidel nested name for this hierarchy. 118cdf0e10cSrcweir An implementation is not required to detect the latter condition. 119cdf0e10cSrcweir 120*a5f4f399SMatthias Seidel @throws com::sun::star::lang::WrappedTargetException 121*a5f4f399SMatthias Seidel if the implementation has an internal reason for the exception. 122*a5f4f399SMatthias Seidel In this case the original exception is wrapped into that 123cdf0e10cSrcweir <type scope="com::sun::star::lang">WrappedTargetException</type>. 124*a5f4f399SMatthias Seidel 125cdf0e10cSrcweir @see XPropertySet::setPropertyValue 126cdf0e10cSrcweir */ 127*a5f4f399SMatthias Seidel void setHierarchicalPropertyValue( [in] string aHierarchicalPropertyName, 128*a5f4f399SMatthias Seidel [in] any aValue ) 129*a5f4f399SMatthias Seidel raises( com::sun::star::beans::UnknownPropertyException, 130*a5f4f399SMatthias Seidel com::sun::star::beans::PropertyVetoException, 131*a5f4f399SMatthias Seidel com::sun::star::lang::IllegalArgumentException, 132*a5f4f399SMatthias Seidel com::sun::star::lang::WrappedTargetException ); 133*a5f4f399SMatthias Seidel 134*a5f4f399SMatthias Seidel //------------------------------------------------------------------------- 135*a5f4f399SMatthias Seidel 136*a5f4f399SMatthias Seidel /** gets the value of the property with the specified nested name. 137*a5f4f399SMatthias Seidel 138*a5f4f399SMatthias Seidel @returns 139*a5f4f399SMatthias Seidel the value of the property with the specified nested name. 140*a5f4f399SMatthias Seidel 141*a5f4f399SMatthias Seidel @param aHierarchicalPropertyName 142*a5f4f399SMatthias Seidel This parameter specifies the name of the property. 143*a5f4f399SMatthias Seidel 144*a5f4f399SMatthias Seidel @throws UnknownPropertyException 145*a5f4f399SMatthias Seidel if the property does not exist. 146*a5f4f399SMatthias Seidel 147*a5f4f399SMatthias Seidel @throws com::sun::star::uno::lang::IllegalArgumentException 148*a5f4f399SMatthias Seidel if <var>aHierarchicalPropertyName</var> is not a well-formed 149cdf0e10cSrcweir nested name for this hierarchy. 150*a5f4f399SMatthias Seidel An implementation is not required to detect this 151cdf0e10cSrcweir condition. 152cdf0e10cSrcweir 153*a5f4f399SMatthias Seidel @throws com::sun::star::lang::WrappedTargetException 154*a5f4f399SMatthias Seidel if the implementation has an internal reason for the exception. 155*a5f4f399SMatthias Seidel In this case the original exception is wrapped into that 156cdf0e10cSrcweir <type scope="com::sun::star::lang">WrappedTargetException</type>. 157*a5f4f399SMatthias Seidel 158cdf0e10cSrcweir @see XPropertySet::getPropertyValue 159cdf0e10cSrcweir */ 160*a5f4f399SMatthias Seidel any getHierarchicalPropertyValue( [in] string aHierarchicalPropertyName ) 161*a5f4f399SMatthias Seidel raises( com::sun::star::beans::UnknownPropertyException, 162*a5f4f399SMatthias Seidel com::sun::star::lang::IllegalArgumentException, 163*a5f4f399SMatthias Seidel com::sun::star::lang::WrappedTargetException ); 164*a5f4f399SMatthias Seidel 165*a5f4f399SMatthias Seidel //------------------------------------------------------------------------- 166*a5f4f399SMatthias Seidel 167*a5f4f399SMatthias Seidel}; 168*a5f4f399SMatthias Seidel 169*a5f4f399SMatthias Seidel//============================================================================= 170*a5f4f399SMatthias Seidel 171*a5f4f399SMatthias Seidel}; }; }; }; 172*a5f4f399SMatthias Seidel 173*a5f4f399SMatthias Seidel#endif 174