1/************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27#ifndef __com_sun_star_reflection_XIdlArray_idl__ 28#define __com_sun_star_reflection_XIdlArray_idl__ 29 30#ifndef __com_sun_star_uno_XInterface_idl__ 31#include <com/sun/star/uno/XInterface.idl> 32#endif 33 34#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ 35#include <com/sun/star/lang/IllegalArgumentException.idl> 36#endif 37 38#ifndef __com_sun_star_lang_ArrayIndexOutOfBoundsException_idl__ 39#include <com/sun/star/lang/ArrayIndexOutOfBoundsException.idl> 40#endif 41 42 43//============================================================================= 44 45 module com { module sun { module star { module reflection { 46 47//============================================================================= 48 49/** Reflects an IDL sequence and provides dynamic access to instances of 50 that sequence. 51 This interface supports widening conversion when getting or setting elements. 52 53 @attention 54 Although the name of this interface denotes arrays, 55 sequences are meant. Don't be obfuscated, arrays are not supported by UNO! 56*/ 57published interface XIdlArray: com::sun::star::uno::XInterface 58{ 59 /** Rellocates the length of the sequence instance. 60 61 @param array 62 sequence instance 63 @length 64 new length of sequence 65 */ 66 void realloc( 67 [inout] any array, 68 [in] long length ) 69 raises( com::sun::star::lang::IllegalArgumentException ); 70 71 /** Returns the length of the given sequence. 72 73 @param array 74 sequence instance 75 @return 76 length of sequence 77 */ 78 long getLen( [in] any array ) 79 raises( com::sun::star::lang::IllegalArgumentException ); 80 81 /** Returns element at given index. 82 83 @param aArray 84 sequence instance 85 @param nIndex 86 index 87 @return 88 value 89 90 @throws IllegalArgumentException 91 if the specified object is not a sequence or if the specified object is null 92 93 @throws ArrayIndexOutOfBoundsException 94 if the specified index argument is negative, or if it is greater than or equal to the 95 length of the specified sequence. 96 */ 97 any get( 98 [in] any aArray, 99 [in] long nIndex ) 100 raises( com::sun::star::lang::IllegalArgumentException, 101 com::sun::star::lang::ArrayIndexOutOfBoundsException ); 102 103 /** Sets a new value at given index. 104 105 @param aArray 106 sequence instance 107 @param nIndex 108 index 109 @param aNewValue 110 new value to be set 111 112 @throws IllegalArgumentException 113 if the specified object is not a sequence or if the specified object is null 114 115 @throws ArrayIndexOutOfBoundsException 116 if the specified index argument is negative, or if it is greater than or equal to the 117 length of the specified sequence. 118 */ 119 void set( 120 [inout] any aArray, 121 [in] long nIndex, 122 [in] any aNewValue ) 123 raises( com::sun::star::lang::IllegalArgumentException, 124 com::sun::star::lang::ArrayIndexOutOfBoundsException ); 125}; 126 127//============================================================================= 128 129}; }; }; }; 130 131/*============================================================================= 132 133=============================================================================*/ 134#endif 135