summaryrefslogtreecommitdiffstats
path: root/udkapi/com/sun/star
diff options
context:
space:
mode:
Diffstat (limited to 'udkapi/com/sun/star')
-rw-r--r--udkapi/com/sun/star/beans/Ambiguous.idl48
-rw-r--r--udkapi/com/sun/star/beans/Defaulted.idl48
-rw-r--r--udkapi/com/sun/star/beans/GetDirectPropertyTolerantResult.idl44
-rw-r--r--udkapi/com/sun/star/beans/GetPropertyTolerantResult.idl59
-rw-r--r--udkapi/com/sun/star/beans/IllegalTypeException.idl38
-rw-r--r--udkapi/com/sun/star/beans/Introspection.idl33
-rw-r--r--udkapi/com/sun/star/beans/IntrospectionException.idl37
-rw-r--r--udkapi/com/sun/star/beans/MethodConcept.idl106
-rw-r--r--udkapi/com/sun/star/beans/NamedValue.idl40
-rw-r--r--udkapi/com/sun/star/beans/NotRemoveableException.idl34
-rw-r--r--udkapi/com/sun/star/beans/Optional.idl49
-rw-r--r--udkapi/com/sun/star/beans/Pair.idl43
-rw-r--r--udkapi/com/sun/star/beans/Property.idl71
-rw-r--r--udkapi/com/sun/star/beans/PropertyAttribute.idl98
-rw-r--r--udkapi/com/sun/star/beans/PropertyBag.idl42
-rw-r--r--udkapi/com/sun/star/beans/PropertyChangeEvent.idl72
-rw-r--r--udkapi/com/sun/star/beans/PropertyConcept.idl75
-rw-r--r--udkapi/com/sun/star/beans/PropertyExistException.idl37
-rw-r--r--udkapi/com/sun/star/beans/PropertySet.idl43
-rw-r--r--udkapi/com/sun/star/beans/PropertySetInfoChange.idl46
-rw-r--r--udkapi/com/sun/star/beans/PropertySetInfoChangeEvent.idl56
-rw-r--r--udkapi/com/sun/star/beans/PropertyState.idl81
-rw-r--r--udkapi/com/sun/star/beans/PropertyStateChangeEvent.idl70
-rw-r--r--udkapi/com/sun/star/beans/PropertyValue.idl61
-rw-r--r--udkapi/com/sun/star/beans/PropertyValues.idl32
-rw-r--r--udkapi/com/sun/star/beans/PropertyVetoException.idl37
-rw-r--r--udkapi/com/sun/star/beans/SetPropertyTolerantFailed.idl52
-rw-r--r--udkapi/com/sun/star/beans/StringPair.idl41
-rw-r--r--udkapi/com/sun/star/beans/TolerantPropertySetResultType.idl77
-rw-r--r--udkapi/com/sun/star/beans/UnknownPropertyException.idl37
-rw-r--r--udkapi/com/sun/star/beans/XExactName.idl55
-rw-r--r--udkapi/com/sun/star/beans/XFastPropertySet.idl91
-rw-r--r--udkapi/com/sun/star/beans/XHierarchicalPropertySet.idl134
-rw-r--r--udkapi/com/sun/star/beans/XHierarchicalPropertySetInfo.idl73
-rw-r--r--udkapi/com/sun/star/beans/XIntrospection.idl95
-rw-r--r--udkapi/com/sun/star/beans/XIntrospectionAccess.idl260
-rw-r--r--udkapi/com/sun/star/beans/XMaterialHolder.idl49
-rw-r--r--udkapi/com/sun/star/beans/XMultiHierarchicalPropertySet.idl124
-rw-r--r--udkapi/com/sun/star/beans/XMultiPropertySet.idl138
-rw-r--r--udkapi/com/sun/star/beans/XMultiPropertyStates.idl103
-rw-r--r--udkapi/com/sun/star/beans/XPropertiesChangeListener.idl44
-rw-r--r--udkapi/com/sun/star/beans/XPropertiesChangeNotifier.idl48
-rw-r--r--udkapi/com/sun/star/beans/XProperty.idl47
-rw-r--r--udkapi/com/sun/star/beans/XPropertyAccess.idl61
-rw-r--r--udkapi/com/sun/star/beans/XPropertyBag.idl41
-rw-r--r--udkapi/com/sun/star/beans/XPropertyChangeListener.idl40
-rw-r--r--udkapi/com/sun/star/beans/XPropertyContainer.idl75
-rw-r--r--udkapi/com/sun/star/beans/XPropertySet.idl165
-rw-r--r--udkapi/com/sun/star/beans/XPropertySetInfo.idl74
-rw-r--r--udkapi/com/sun/star/beans/XPropertySetInfoChangeListener.idl41
-rw-r--r--udkapi/com/sun/star/beans/XPropertySetInfoChangeNotifier.idl53
-rw-r--r--udkapi/com/sun/star/beans/XPropertySetOption.idl24
-rw-r--r--udkapi/com/sun/star/beans/XPropertyState.idl114
-rw-r--r--udkapi/com/sun/star/beans/XPropertyStateChangeListener.idl43
-rw-r--r--udkapi/com/sun/star/beans/XPropertyWithState.idl89
-rw-r--r--udkapi/com/sun/star/beans/XTolerantMultiPropertySet.idl127
-rw-r--r--udkapi/com/sun/star/beans/XVetoableChangeListener.idl44
-rw-r--r--udkapi/com/sun/star/beans/theIntrospection.idl29
-rw-r--r--udkapi/com/sun/star/bridge/Bridge.idl70
-rw-r--r--udkapi/com/sun/star/bridge/BridgeExistsException.idl32
-rw-r--r--udkapi/com/sun/star/bridge/BridgeFactory.idl37
-rw-r--r--udkapi/com/sun/star/bridge/IiopBridge.idl56
-rw-r--r--udkapi/com/sun/star/bridge/InvalidProtocolChangeException.idl42
-rw-r--r--udkapi/com/sun/star/bridge/ModelDependent.idl42
-rw-r--r--udkapi/com/sun/star/bridge/OleApplicationRegistration.idl57
-rw-r--r--udkapi/com/sun/star/bridge/OleBridgeSupplier.idl43
-rw-r--r--udkapi/com/sun/star/bridge/OleBridgeSupplier2.idl58
-rw-r--r--udkapi/com/sun/star/bridge/OleBridgeSupplierVar1.idl43
-rw-r--r--udkapi/com/sun/star/bridge/OleObjectFactory.idl47
-rw-r--r--udkapi/com/sun/star/bridge/ProtocolProperty.idl33
-rw-r--r--udkapi/com/sun/star/bridge/UnoUrlResolver.idl35
-rw-r--r--udkapi/com/sun/star/bridge/UrpBridge.idl56
-rw-r--r--udkapi/com/sun/star/bridge/XBridge.idl52
-rw-r--r--udkapi/com/sun/star/bridge/XBridgeFactory.idl78
-rw-r--r--udkapi/com/sun/star/bridge/XBridgeFactory2.idl43
-rw-r--r--udkapi/com/sun/star/bridge/XBridgeSupplier.idl77
-rw-r--r--udkapi/com/sun/star/bridge/XBridgeSupplier2.idl94
-rw-r--r--udkapi/com/sun/star/bridge/XInstanceProvider.idl52
-rw-r--r--udkapi/com/sun/star/bridge/XProtocolProperties.idl89
-rw-r--r--udkapi/com/sun/star/bridge/XUnoUrlResolver.idl45
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/ApplicationRegistration.idl61
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/BridgeSupplier.idl63
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/Currency.idl51
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/Date.idl50
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/Decimal.idl54
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/Factory.idl49
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/NamedArgument.idl53
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/PropertyPutArgument.idl60
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/SCode.idl52
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/XAutomationObject.idl44
-rw-r--r--udkapi/com/sun/star/connection/Acceptor.idl38
-rw-r--r--udkapi/com/sun/star/connection/AlreadyAcceptingException.idl31
-rw-r--r--udkapi/com/sun/star/connection/ConnectionSetupException.idl31
-rw-r--r--udkapi/com/sun/star/connection/Connector.idl37
-rw-r--r--udkapi/com/sun/star/connection/NoConnectException.idl31
-rw-r--r--udkapi/com/sun/star/connection/SocketPermission.idl91
-rw-r--r--udkapi/com/sun/star/connection/XAcceptor.idl67
-rw-r--r--udkapi/com/sun/star/connection/XConnection.idl86
-rw-r--r--udkapi/com/sun/star/connection/XConnection2.idl48
-rw-r--r--udkapi/com/sun/star/connection/XConnectionBroadcaster.idl51
-rw-r--r--udkapi/com/sun/star/connection/XConnector.idl55
-rw-r--r--udkapi/com/sun/star/container/ContainerEvent.idl53
-rw-r--r--udkapi/com/sun/star/container/ElementExistException.idl41
-rw-r--r--udkapi/com/sun/star/container/EnumerableMap.idl122
-rw-r--r--udkapi/com/sun/star/container/NoSuchElementException.idl37
-rw-r--r--udkapi/com/sun/star/container/XChild.idl51
-rw-r--r--udkapi/com/sun/star/container/XComponentEnumeration.idl44
-rw-r--r--udkapi/com/sun/star/container/XComponentEnumerationAccess.idl40
-rw-r--r--udkapi/com/sun/star/container/XContainer.idl70
-rw-r--r--udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl46
-rw-r--r--udkapi/com/sun/star/container/XContainerApproveListener.idl62
-rw-r--r--udkapi/com/sun/star/container/XContainerListener.idl49
-rw-r--r--udkapi/com/sun/star/container/XContainerQuery.idl87
-rw-r--r--udkapi/com/sun/star/container/XContentEnumerationAccess.idl58
-rw-r--r--udkapi/com/sun/star/container/XElementAccess.idl49
-rw-r--r--udkapi/com/sun/star/container/XEnumerableMap.idl91
-rw-r--r--udkapi/com/sun/star/container/XEnumeration.idl74
-rw-r--r--udkapi/com/sun/star/container/XEnumerationAccess.idl41
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalName.idl55
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalNameAccess.idl67
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalNameContainer.idl51
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalNameReplace.idl44
-rw-r--r--udkapi/com/sun/star/container/XIdentifierAccess.idl59
-rw-r--r--udkapi/com/sun/star/container/XIdentifierContainer.idl76
-rw-r--r--udkapi/com/sun/star/container/XIdentifierReplace.idl60
-rw-r--r--udkapi/com/sun/star/container/XImplicitIDAccess.idl41
-rw-r--r--udkapi/com/sun/star/container/XImplicitIDContainer.idl47
-rw-r--r--udkapi/com/sun/star/container/XImplicitIDReplace.idl39
-rw-r--r--udkapi/com/sun/star/container/XIndexAccess.idl62
-rw-r--r--udkapi/com/sun/star/container/XIndexContainer.idl52
-rw-r--r--udkapi/com/sun/star/container/XIndexReplace.idl44
-rw-r--r--udkapi/com/sun/star/container/XMap.idl182
-rw-r--r--udkapi/com/sun/star/container/XNameAccess.idl78
-rw-r--r--udkapi/com/sun/star/container/XNameContainer.idl51
-rw-r--r--udkapi/com/sun/star/container/XNameReplace.idl44
-rw-r--r--udkapi/com/sun/star/container/XNamed.idl46
-rw-r--r--udkapi/com/sun/star/container/XSet.idl55
-rw-r--r--udkapi/com/sun/star/container/XStringKeyMap.idl115
-rw-r--r--udkapi/com/sun/star/container/XUniqueIDAccess.idl41
-rw-r--r--udkapi/com/sun/star/io/AlreadyConnectedException.idl34
-rw-r--r--udkapi/com/sun/star/io/BufferSizeExceededException.idl38
-rw-r--r--udkapi/com/sun/star/io/ConnectException.idl35
-rw-r--r--udkapi/com/sun/star/io/DataInputStream.idl51
-rw-r--r--udkapi/com/sun/star/io/DataOutputStream.idl45
-rw-r--r--udkapi/com/sun/star/io/DataTransferEvent.idl38
-rw-r--r--udkapi/com/sun/star/io/FilePermission.idl70
-rw-r--r--udkapi/com/sun/star/io/IOException.idl33
-rw-r--r--udkapi/com/sun/star/io/MarkableInputStream.idl55
-rw-r--r--udkapi/com/sun/star/io/MarkableOutputStream.idl60
-rw-r--r--udkapi/com/sun/star/io/NoRouteToHostException.idl34
-rw-r--r--udkapi/com/sun/star/io/NotConnectedException.idl34
-rw-r--r--udkapi/com/sun/star/io/ObjectInputStream.idl75
-rw-r--r--udkapi/com/sun/star/io/ObjectOutputStream.idl66
-rw-r--r--udkapi/com/sun/star/io/Pipe.idl36
-rw-r--r--udkapi/com/sun/star/io/Pump.idl48
-rw-r--r--udkapi/com/sun/star/io/SequenceInputStream.idl36
-rw-r--r--udkapi/com/sun/star/io/SequenceOutputStream.idl31
-rw-r--r--udkapi/com/sun/star/io/SocketException.idl33
-rw-r--r--udkapi/com/sun/star/io/TempFile.idl30
-rw-r--r--udkapi/com/sun/star/io/TextInputStream.idl37
-rw-r--r--udkapi/com/sun/star/io/TextOutputStream.idl37
-rw-r--r--udkapi/com/sun/star/io/UnexpectedEOFException.idl34
-rw-r--r--udkapi/com/sun/star/io/UnknownHostException.idl32
-rw-r--r--udkapi/com/sun/star/io/WrongFormatException.idl34
-rw-r--r--udkapi/com/sun/star/io/XActiveDataControl.idl69
-rw-r--r--udkapi/com/sun/star/io/XActiveDataSink.idl49
-rw-r--r--udkapi/com/sun/star/io/XActiveDataSource.idl49
-rw-r--r--udkapi/com/sun/star/io/XActiveDataStreamer.idl50
-rw-r--r--udkapi/com/sun/star/io/XAsyncOutputMonitor.idl76
-rw-r--r--udkapi/com/sun/star/io/XConnectable.idl60
-rw-r--r--udkapi/com/sun/star/io/XDataExporter.idl46
-rw-r--r--udkapi/com/sun/star/io/XDataImporter.idl45
-rw-r--r--udkapi/com/sun/star/io/XDataInputStream.idl81
-rw-r--r--udkapi/com/sun/star/io/XDataOutputStream.idl81
-rw-r--r--udkapi/com/sun/star/io/XDataTransferEventListener.idl41
-rw-r--r--udkapi/com/sun/star/io/XInputStream.idl135
-rw-r--r--udkapi/com/sun/star/io/XInputStreamProvider.idl44
-rw-r--r--udkapi/com/sun/star/io/XMarkableStream.idl84
-rw-r--r--udkapi/com/sun/star/io/XObjectInputStream.idl43
-rw-r--r--udkapi/com/sun/star/io/XObjectOutputStream.idl47
-rw-r--r--udkapi/com/sun/star/io/XOutputStream.idl66
-rw-r--r--udkapi/com/sun/star/io/XPersist.idl44
-rw-r--r--udkapi/com/sun/star/io/XPersistObject.idl89
-rw-r--r--udkapi/com/sun/star/io/XPipe.idl47
-rw-r--r--udkapi/com/sun/star/io/XSeekable.idl62
-rw-r--r--udkapi/com/sun/star/io/XSeekableInputStream.idl34
-rw-r--r--udkapi/com/sun/star/io/XSequenceOutputStream.idl40
-rw-r--r--udkapi/com/sun/star/io/XStream.idl45
-rw-r--r--udkapi/com/sun/star/io/XStreamListener.idl56
-rw-r--r--udkapi/com/sun/star/io/XTempFile.idl57
-rw-r--r--udkapi/com/sun/star/io/XTextInputStream.idl96
-rw-r--r--udkapi/com/sun/star/io/XTextInputStream2.idl41
-rw-r--r--udkapi/com/sun/star/io/XTextOutputStream.idl63
-rw-r--r--udkapi/com/sun/star/io/XTextOutputStream2.idl41
-rw-r--r--udkapi/com/sun/star/io/XTruncate.idl42
-rw-r--r--udkapi/com/sun/star/io/XXMLExtractor.idl41
-rw-r--r--udkapi/com/sun/star/java/InvalidJavaSettingsException.idl37
-rw-r--r--udkapi/com/sun/star/java/JavaDisabledException.idl36
-rw-r--r--udkapi/com/sun/star/java/JavaInitializationException.idl44
-rw-r--r--udkapi/com/sun/star/java/JavaNotConfiguredException.idl35
-rw-r--r--udkapi/com/sun/star/java/JavaNotFoundException.idl33
-rw-r--r--udkapi/com/sun/star/java/JavaVMCreationFailureException.idl46
-rw-r--r--udkapi/com/sun/star/java/JavaVirtualMachine.idl35
-rw-r--r--udkapi/com/sun/star/java/MissingJavaRuntimeException.idl38
-rw-r--r--udkapi/com/sun/star/java/RestartRequiredException.idl33
-rw-r--r--udkapi/com/sun/star/java/WrongJavaVersionException.idl45
-rw-r--r--udkapi/com/sun/star/java/XJavaThreadRegister_11.idl52
-rw-r--r--udkapi/com/sun/star/java/XJavaVM.idl110
-rw-r--r--udkapi/com/sun/star/lang/ArrayIndexOutOfBoundsException.idl37
-rw-r--r--udkapi/com/sun/star/lang/ClassNotFoundException.idl34
-rw-r--r--udkapi/com/sun/star/lang/DisposedException.idl38
-rw-r--r--udkapi/com/sun/star/lang/EventObject.idl38
-rw-r--r--udkapi/com/sun/star/lang/IllegalAccessException.idl34
-rw-r--r--udkapi/com/sun/star/lang/IllegalArgumentException.idl38
-rw-r--r--udkapi/com/sun/star/lang/IndexOutOfBoundsException.idl37
-rw-r--r--udkapi/com/sun/star/lang/InvalidListenerException.idl37
-rw-r--r--udkapi/com/sun/star/lang/ListenerExistException.idl36
-rw-r--r--udkapi/com/sun/star/lang/Locale.idl97
-rw-r--r--udkapi/com/sun/star/lang/MultiServiceFactory.idl55
-rw-r--r--udkapi/com/sun/star/lang/NoSuchFieldException.idl33
-rw-r--r--udkapi/com/sun/star/lang/NoSuchMethodException.idl33
-rw-r--r--udkapi/com/sun/star/lang/NoSupportException.idl41
-rw-r--r--udkapi/com/sun/star/lang/NotInitializedException.idl35
-rw-r--r--udkapi/com/sun/star/lang/NullPointerException.idl39
-rw-r--r--udkapi/com/sun/star/lang/RegistryServiceManager.idl64
-rw-r--r--udkapi/com/sun/star/lang/ServiceManager.idl108
-rw-r--r--udkapi/com/sun/star/lang/ServiceNotRegisteredException.idl36
-rw-r--r--udkapi/com/sun/star/lang/SystemDependent.idl92
-rw-r--r--udkapi/com/sun/star/lang/WrappedTargetException.idl44
-rw-r--r--udkapi/com/sun/star/lang/WrappedTargetRuntimeException.idl43
-rw-r--r--udkapi/com/sun/star/lang/XComponent.idl111
-rw-r--r--udkapi/com/sun/star/lang/XConnectionPoint.idl155
-rw-r--r--udkapi/com/sun/star/lang/XConnectionPointContainer.idl84
-rw-r--r--udkapi/com/sun/star/lang/XEventListener.idl47
-rw-r--r--udkapi/com/sun/star/lang/XInitialization.idl54
-rw-r--r--udkapi/com/sun/star/lang/XLocalizable.idl40
-rw-r--r--udkapi/com/sun/star/lang/XMain.idl45
-rw-r--r--udkapi/com/sun/star/lang/XMultiComponentFactory.idl75
-rw-r--r--udkapi/com/sun/star/lang/XMultiServiceFactory.idl71
-rw-r--r--udkapi/com/sun/star/lang/XServiceDisplayName.idl53
-rw-r--r--udkapi/com/sun/star/lang/XServiceInfo.idl59
-rw-r--r--udkapi/com/sun/star/lang/XServiceName.idl42
-rw-r--r--udkapi/com/sun/star/lang/XSingleComponentFactory.idl60
-rw-r--r--udkapi/com/sun/star/lang/XSingleServiceFactory.idl58
-rw-r--r--udkapi/com/sun/star/lang/XTypeProvider.idl59
-rw-r--r--udkapi/com/sun/star/lang/XUnoTunnel.idl60
-rw-r--r--udkapi/com/sun/star/loader/CannotActivateFactoryException.idl42
-rw-r--r--udkapi/com/sun/star/loader/Dynamic.idl45
-rw-r--r--udkapi/com/sun/star/loader/Java.idl43
-rw-r--r--udkapi/com/sun/star/loader/Java2.idl37
-rw-r--r--udkapi/com/sun/star/loader/SharedLibrary.idl42
-rw-r--r--udkapi/com/sun/star/loader/XImplementationLoader.idl92
-rw-r--r--udkapi/com/sun/star/modules.idl79
-rw-r--r--udkapi/com/sun/star/reflection/CoreReflection.idl44
-rw-r--r--udkapi/com/sun/star/reflection/Dump.idl22
-rw-r--r--udkapi/com/sun/star/reflection/FieldAccessMode.idl48
-rw-r--r--udkapi/com/sun/star/reflection/InvalidTypeNameException.idl37
-rw-r--r--udkapi/com/sun/star/reflection/InvocationTargetException.idl37
-rw-r--r--udkapi/com/sun/star/reflection/MethodMode.idl43
-rw-r--r--udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl36
-rw-r--r--udkapi/com/sun/star/reflection/ParamInfo.idl46
-rw-r--r--udkapi/com/sun/star/reflection/ParamMode.idl47
-rw-r--r--udkapi/com/sun/star/reflection/ProxyFactory.idl48
-rw-r--r--udkapi/com/sun/star/reflection/TypeDescriptionManager.idl95
-rw-r--r--udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl71
-rw-r--r--udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl45
-rw-r--r--udkapi/com/sun/star/reflection/XArrayTypeDescription.idl56
-rw-r--r--udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl65
-rw-r--r--udkapi/com/sun/star/reflection/XConstantTypeDescription.idl62
-rw-r--r--udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl43
-rw-r--r--udkapi/com/sun/star/reflection/XDump.idl58
-rw-r--r--udkapi/com/sun/star/reflection/XEnumTypeDescription.idl54
-rw-r--r--udkapi/com/sun/star/reflection/XIdlArray.idl106
-rw-r--r--udkapi/com/sun/star/reflection/XIdlClass.idl187
-rw-r--r--udkapi/com/sun/star/reflection/XIdlClassProvider.idl37
-rw-r--r--udkapi/com/sun/star/reflection/XIdlField.idl47
-rw-r--r--udkapi/com/sun/star/reflection/XIdlField2.idl95
-rw-r--r--udkapi/com/sun/star/reflection/XIdlMember.idl48
-rw-r--r--udkapi/com/sun/star/reflection/XIdlMethod.idl105
-rw-r--r--udkapi/com/sun/star/reflection/XIdlReflection.idl59
-rw-r--r--udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl43
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl53
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl66
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl51
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl62
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl68
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl61
-rw-r--r--udkapi/com/sun/star/reflection/XMethodParameter.idl74
-rw-r--r--udkapi/com/sun/star/reflection/XModuleTypeDescription.idl43
-rw-r--r--udkapi/com/sun/star/reflection/XParameter.idl46
-rw-r--r--udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl49
-rw-r--r--udkapi/com/sun/star/reflection/XProxyFactory.idl58
-rw-r--r--udkapi/com/sun/star/reflection/XPublished.idl96
-rw-r--r--udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl70
-rw-r--r--udkapi/com/sun/star/reflection/XServiceTypeDescription.idl85
-rw-r--r--udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl67
-rw-r--r--udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl50
-rw-r--r--udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl57
-rw-r--r--udkapi/com/sun/star/reflection/XStructTypeDescription.idl77
-rw-r--r--udkapi/com/sun/star/reflection/XTypeDescription.idl61
-rw-r--r--udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl45
-rw-r--r--udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl152
-rw-r--r--udkapi/com/sun/star/reflection/XUnionTypeDescription.idl77
-rw-r--r--udkapi/com/sun/star/reflection/theCoreReflection.idl31
-rw-r--r--udkapi/com/sun/star/registry/CannotRegisterImplementationException.idl42
-rw-r--r--udkapi/com/sun/star/registry/DefaultRegistry.idl131
-rw-r--r--udkapi/com/sun/star/registry/ImplementationRegistration.idl40
-rw-r--r--udkapi/com/sun/star/registry/InvalidRegistryException.idl34
-rw-r--r--udkapi/com/sun/star/registry/InvalidValueException.idl34
-rw-r--r--udkapi/com/sun/star/registry/MergeConflictException.idl36
-rw-r--r--udkapi/com/sun/star/registry/NestedRegistry.idl127
-rw-r--r--udkapi/com/sun/star/registry/RegistryKeyType.idl39
-rw-r--r--udkapi/com/sun/star/registry/RegistryValueType.idl62
-rw-r--r--udkapi/com/sun/star/registry/SimpleRegistry.idl37
-rw-r--r--udkapi/com/sun/star/registry/XImplementationRegistration.idl89
-rw-r--r--udkapi/com/sun/star/registry/XImplementationRegistration2.idl56
-rw-r--r--udkapi/com/sun/star/registry/XRegistryKey.idl404
-rw-r--r--udkapi/com/sun/star/registry/XSimpleRegistry.idl113
-rw-r--r--udkapi/com/sun/star/script/AllEventObject.idl55
-rw-r--r--udkapi/com/sun/star/script/AllListenerAdapter.idl33
-rw-r--r--udkapi/com/sun/star/script/ArrayWrapper.idl49
-rw-r--r--udkapi/com/sun/star/script/BasicErrorException.idl47
-rw-r--r--udkapi/com/sun/star/script/CannotConvertException.idl48
-rw-r--r--udkapi/com/sun/star/script/CannotCreateAdapterException.idl38
-rw-r--r--udkapi/com/sun/star/script/ContextInformation.idl80
-rw-r--r--udkapi/com/sun/star/script/Converter.idl78
-rw-r--r--udkapi/com/sun/star/script/Engine.idl41
-rw-r--r--udkapi/com/sun/star/script/EventListener.idl23
-rw-r--r--udkapi/com/sun/star/script/FailReason.idl75
-rw-r--r--udkapi/com/sun/star/script/FinishEngineEvent.idl52
-rw-r--r--udkapi/com/sun/star/script/FinishReason.idl46
-rw-r--r--udkapi/com/sun/star/script/InterruptEngineEvent.idl89
-rw-r--r--udkapi/com/sun/star/script/InterruptReason.idl67
-rw-r--r--udkapi/com/sun/star/script/Invocation.idl39
-rw-r--r--udkapi/com/sun/star/script/InvocationAdapterFactory.idl44
-rw-r--r--udkapi/com/sun/star/script/InvocationInfo.idl72
-rw-r--r--udkapi/com/sun/star/script/JavaScript.idl39
-rw-r--r--udkapi/com/sun/star/script/MemberType.idl37
-rw-r--r--udkapi/com/sun/star/script/ScriptEvent.idl46
-rw-r--r--udkapi/com/sun/star/script/ScriptEventDescriptor.idl59
-rw-r--r--udkapi/com/sun/star/script/XAllListener.idl48
-rw-r--r--udkapi/com/sun/star/script/XAllListenerAdapterService.idl46
-rw-r--r--udkapi/com/sun/star/script/XAutomationInvocation.idl31
-rw-r--r--udkapi/com/sun/star/script/XDebugging.idl119
-rw-r--r--udkapi/com/sun/star/script/XDefaultMethod.idl46
-rw-r--r--udkapi/com/sun/star/script/XDefaultProperty.idl50
-rw-r--r--udkapi/com/sun/star/script/XDirectInvocation.idl47
-rw-r--r--udkapi/com/sun/star/script/XEngine.idl98
-rw-r--r--udkapi/com/sun/star/script/XEngineListener.idl51
-rw-r--r--udkapi/com/sun/star/script/XErrorQuery.idl36
-rw-r--r--udkapi/com/sun/star/script/XEventAttacher.idl79
-rw-r--r--udkapi/com/sun/star/script/XEventAttacher2.idl33
-rw-r--r--udkapi/com/sun/star/script/XEventAttacherManager.idl188
-rw-r--r--udkapi/com/sun/star/script/XInvocation.idl115
-rw-r--r--udkapi/com/sun/star/script/XInvocation2.idl63
-rw-r--r--udkapi/com/sun/star/script/XInvocationAdapterFactory.idl50
-rw-r--r--udkapi/com/sun/star/script/XInvocationAdapterFactory2.idl48
-rw-r--r--udkapi/com/sun/star/script/XLibraryAccess.idl84
-rw-r--r--udkapi/com/sun/star/script/XScriptEventsAttacher.idl64
-rw-r--r--udkapi/com/sun/star/script/XScriptEventsSupplier.idl41
-rw-r--r--udkapi/com/sun/star/script/XScriptListener.idl44
-rw-r--r--udkapi/com/sun/star/script/XStarBasicAccess.idl77
-rw-r--r--udkapi/com/sun/star/script/XStarBasicDialogInfo.idl44
-rw-r--r--udkapi/com/sun/star/script/XStarBasicLibraryInfo.idl83
-rw-r--r--udkapi/com/sun/star/script/XStarBasicModuleInfo.idl50
-rw-r--r--udkapi/com/sun/star/script/XTypeConverter.idl73
-rw-r--r--udkapi/com/sun/star/security/AccessControlException.idl45
-rw-r--r--udkapi/com/sun/star/security/AccessController.idl43
-rw-r--r--udkapi/com/sun/star/security/AllPermission.idl43
-rw-r--r--udkapi/com/sun/star/security/Policy.idl32
-rw-r--r--udkapi/com/sun/star/security/RuntimePermission.idl39
-rw-r--r--udkapi/com/sun/star/security/XAccessControlContext.idl71
-rw-r--r--udkapi/com/sun/star/security/XAccessController.idl127
-rw-r--r--udkapi/com/sun/star/security/XAction.idl45
-rw-r--r--udkapi/com/sun/star/security/XPolicy.idl57
-rw-r--r--udkapi/com/sun/star/task/XInteractionAbort.idl34
-rw-r--r--udkapi/com/sun/star/task/XInteractionContinuation.idl43
-rw-r--r--udkapi/com/sun/star/task/XInteractionHandler.idl37
-rw-r--r--udkapi/com/sun/star/task/XInteractionHandler2.idl49
-rw-r--r--udkapi/com/sun/star/task/XInteractionRequest.idl47
-rw-r--r--udkapi/com/sun/star/task/XInteractionRetry.idl34
-rw-r--r--udkapi/com/sun/star/uno/DeploymentException.idl36
-rw-r--r--udkapi/com/sun/star/uno/Exception.idl48
-rw-r--r--udkapi/com/sun/star/uno/NamingService.idl35
-rw-r--r--udkapi/com/sun/star/uno/RuntimeException.idl40
-rw-r--r--udkapi/com/sun/star/uno/SecurityException.idl34
-rw-r--r--udkapi/com/sun/star/uno/TypeClass.idl141
-rw-r--r--udkapi/com/sun/star/uno/Uik.idl55
-rw-r--r--udkapi/com/sun/star/uno/XAdapter.idl59
-rw-r--r--udkapi/com/sun/star/uno/XAggregation.idl105
-rw-r--r--udkapi/com/sun/star/uno/XComponentContext.idl56
-rw-r--r--udkapi/com/sun/star/uno/XCurrentContext.idl47
-rw-r--r--udkapi/com/sun/star/uno/XInterface.idl112
-rw-r--r--udkapi/com/sun/star/uno/XNamingService.idl62
-rw-r--r--udkapi/com/sun/star/uno/XReference.idl46
-rw-r--r--udkapi/com/sun/star/uno/XUnloadingPreference.idl34
-rw-r--r--udkapi/com/sun/star/uno/XWeak.idl94
-rw-r--r--udkapi/com/sun/star/uri/ExternalUriReferenceTranslator.idl32
-rw-r--r--udkapi/com/sun/star/uri/RelativeUriExcessParentSegments.idl51
-rw-r--r--udkapi/com/sun/star/uri/UriReferenceFactory.idl66
-rw-r--r--udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTexpand.idl47
-rw-r--r--udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTscript.idl47
-rw-r--r--udkapi/com/sun/star/uri/VndSunStarPkgUrlReferenceFactory.idl34
-rw-r--r--udkapi/com/sun/star/uri/XExternalUriReferenceTranslator.idl78
-rw-r--r--udkapi/com/sun/star/uri/XUriReference.idl220
-rw-r--r--udkapi/com/sun/star/uri/XUriReferenceFactory.idl151
-rw-r--r--udkapi/com/sun/star/uri/XUriSchemeParser.idl61
-rw-r--r--udkapi/com/sun/star/uri/XVndSunStarExpandUrl.idl61
-rw-r--r--udkapi/com/sun/star/uri/XVndSunStarExpandUrlReference.idl45
-rw-r--r--udkapi/com/sun/star/uri/XVndSunStarPkgUrlReferenceFactory.idl48
-rw-r--r--udkapi/com/sun/star/uri/XVndSunStarScriptUrl.idl122
-rw-r--r--udkapi/com/sun/star/uri/XVndSunStarScriptUrlReference.idl43
-rw-r--r--udkapi/com/sun/star/util/BootstrapMacroExpander.idl46
-rw-r--r--udkapi/com/sun/star/util/MacroExpander.idl43
-rw-r--r--udkapi/com/sun/star/util/XMacroExpander.idl47
-rw-r--r--udkapi/com/sun/star/util/XVeto.idl44
-rw-r--r--udkapi/com/sun/star/util/theMacroExpander.idl37
417 files changed, 24827 insertions, 0 deletions
diff --git a/udkapi/com/sun/star/beans/Ambiguous.idl b/udkapi/com/sun/star/beans/Ambiguous.idl
new file mode 100644
index 0000000000..ce29b05a07
--- /dev/null
+++ b/udkapi/com/sun/star/beans/Ambiguous.idl
@@ -0,0 +1,48 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module beans {
+
+/**
+ A value of a given type that can be ambiguous.
+
+ <p>This structure is used as the type of interface attributes corresponding
+ to instances of com::sun::star::beans::Property that
+ have the com::sun::star::beans::PropertyAttribute::MAYBEAMBIGUOUS.</p>
+ */
+struct Ambiguous<T> {
+ /**
+ The underlying value of this structure instance.
+
+ <p>Even if this structure instance is ambiguous, this member should
+ contain a useful value. If there is no useful value for an ambiguous
+ structure instance, com::sun::star::beans::Optional
+ can be used as the type of this member.</p>
+ */
+ T Value;
+
+ /**
+ Marks this structure instance as ambiguous.
+ */
+ boolean IsAmbiguous;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/Defaulted.idl b/udkapi/com/sun/star/beans/Defaulted.idl
new file mode 100644
index 0000000000..bad991b7b0
--- /dev/null
+++ b/udkapi/com/sun/star/beans/Defaulted.idl
@@ -0,0 +1,48 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module beans {
+
+/**
+ A value of a given type that can be defaulted.
+
+ <p>This structure is used as the type of interface attributes corresponding
+ to instances of com::sun::star::beans::Property that
+ have the com::sun::star::beans::PropertyAttribute::MAYBEDEFAULT.</p>
+ */
+struct Defaulted<T> {
+ /**
+ The underlying value of this structure instance.
+
+ <p>Even if this structure instance is defaulted, this member should
+ contain a useful value. If there is no useful value for a defaulted
+ structure instance, com::sun::star::beans::Optional
+ can be used as the type of this member.</p>
+ */
+ T Value;
+
+ /**
+ Marks this structure instance as defaulted.
+ */
+ boolean IsDefaulted;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/GetDirectPropertyTolerantResult.idl b/udkapi/com/sun/star/beans/GetDirectPropertyTolerantResult.idl
new file mode 100644
index 0000000000..ef21ea8edc
--- /dev/null
+++ b/udkapi/com/sun/star/beans/GetDirectPropertyTolerantResult.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** specifies information being retrieved about a single property.
+
+ This type is used for the elements in the sequence returned by
+ com::sun::star::beans::XTolerantMultiPropertySet::GetDirectPropertyTolerantResult.
+
+ @see com::sun::star::beans::XTolerantMultiPropertySet
+ */
+published struct GetDirectPropertyTolerantResult : com::sun::star::beans::GetPropertyTolerantResult
+{
+ /** specifies the name of the property.
+ */
+
+ string Name;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/GetPropertyTolerantResult.idl b/udkapi/com/sun/star/beans/GetPropertyTolerantResult.idl
new file mode 100644
index 0000000000..54d3fabe5e
--- /dev/null
+++ b/udkapi/com/sun/star/beans/GetPropertyTolerantResult.idl
@@ -0,0 +1,59 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** specifies information being retrieved about a single property.
+
+ @see com::sun::star::beans::XTolerantMultiPropertySet
+ */
+published struct GetPropertyTolerantResult
+{
+ /** specifies a success or error code for the retrieval operation.
+
+ @see com::sun::star::beans::TolerantPropertySetResultType
+ */
+
+ short Result;
+
+
+ /** contains the state of the property.
+
+ <p>The value is undefined if <var>Result</var> is not
+ com::sun::star::beans::TolerantPropertySetResultType::SUCCESS.</p>
+ */
+ com::sun::star::beans::PropertyState State;
+
+
+ /** contains the value of the property.
+
+ <p>The value is undefined if <var>Result</var> is not
+ com::sun::star::beans::TolerantPropertySetResultType::SUCCESS.</p>
+ */
+ any Value;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/IllegalTypeException.idl b/udkapi/com/sun/star/beans/IllegalTypeException.idl
new file mode 100644
index 0000000000..085dd95b72
--- /dev/null
+++ b/udkapi/com/sun/star/beans/IllegalTypeException.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** This exception is thrown to indicate the use of a type which is
+ not appropriate.
+
+ <p>This problem can occur, if you use an `any`. </p>
+ @see PropertyContainer
+ */
+published exception IllegalTypeException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/Introspection.idl b/udkapi/com/sun/star/beans/Introspection.idl
new file mode 100644
index 0000000000..360d46f483
--- /dev/null
+++ b/udkapi/com/sun/star/beans/Introspection.idl
@@ -0,0 +1,33 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module beans {
+
+/** A legacy (single-instance) service variant of theIntrospection singleton.
+
+ @deprecated Use theIntrospection instead.
+*/
+published service Introspection : com::sun::star::beans::XIntrospection;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/IntrospectionException.idl b/udkapi/com/sun/star/beans/IntrospectionException.idl
new file mode 100644
index 0000000000..895903e488
--- /dev/null
+++ b/udkapi/com/sun/star/beans/IntrospectionException.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module beans {
+
+/** This exception is thrown when an exception happens during
+ introspection.
+ @deprecated
+
+ <p>This exception isn't specified and used anywhere</p>
+ */
+published exception IntrospectionException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/MethodConcept.idl b/udkapi/com/sun/star/beans/MethodConcept.idl
new file mode 100644
index 0000000000..22f77c4a0a
--- /dev/null
+++ b/udkapi/com/sun/star/beans/MethodConcept.idl
@@ -0,0 +1,106 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module beans {
+
+/** These constants are used to specify concepts of the
+ introspection which apply to methods.
+
+ <p>This list is not necessarily complete; new constants
+ may be added.</p>
+ @see Introspection
+ @see XIntrospection
+ @see XIntrospectionAccess
+
+*/
+published constants MethodConcept
+{
+ /** This value is used to query for all methods, see
+ XIntrospectionAccess::getMethod() and
+ XIntrospectionAccess::getMethods()
+ */
+ const long ALL = -1;
+
+ /** specifies methods which can result in an unstable state
+ (i.e. deadlock, application crash, security hole, etc.)
+ when called directly by the user.
+ */
+ const long DANGEROUS = 1;
+
+ /** specifies methods which are used to set and get the
+ value of properties/attributes.
+
+ <p>These methods have the signature <code>type get...()
+ </code>, <code>void set...()</code> or <code>boolean is...()
+ </code>. </p>
+ */
+ const long PROPERTY = 2;
+
+ /** specifies methods of the <em>listener concept</em>.
+
+ <p>These methods have the signature <code>add...Listener()
+ </code> or <code>remove...Listener()</code>. </p>
+ */
+ const long LISTENER = 4;
+
+ /** specifies methods of the <em>enumeration concept</em>.
+
+ <p>These methods have the signature
+ <code>create...Enumeration</code> and return an interface
+ that is derived from com::sun::star::container::XEnumeration.
+ Additionally, the method
+ com::sun::star::container::XEnumerationAccess::getElementType()
+ belongs to this concept.</p>
+ */
+ const long ENUMERATION = 8;
+
+ /** specifies methods of the <em>name container concept</em>.
+
+ <p>These methods have the signature
+ <code>get...ByName()</code>,
+ <code>set...ByName()</code>,
+ <code>replace...ByName()</code>,
+ <code>remove...ByName()</code>,
+ <code>has...ByName()</code>, or
+ <code>get...Names</code>. In addition, the method
+ com::sun::star::container::XEnumerationAccess::getElementType()
+ belongs to this concept. </p>
+ */
+ const long NAMECONTAINER = 16;
+
+ /** specifies methods of the <em>index container concept</em>.
+
+ <p>These methods have the signature
+ <code>get...ByIndex()</code>,
+ <code>insert...ByIndex()</code>,
+ <code>replace...ByIndex()</code>, or
+ <code>remove...ByIndex()</code>.
+ The method com::sun::star::container::XIndexAccess::getCount()
+ also belongs to this concept. </p>
+ */
+ const long INDEXCONTAINER = 32;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/NamedValue.idl b/udkapi/com/sun/star/beans/NamedValue.idl
new file mode 100644
index 0000000000..cd1b6aefb0
--- /dev/null
+++ b/udkapi/com/sun/star/beans/NamedValue.idl
@@ -0,0 +1,40 @@
+/* -*- 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 .
+ */
+
+ module com { module sun { module star { module beans {
+
+
+/** specifies a pair assembled from a name and a value.
+ */
+published struct NamedValue
+{
+ /** specifies the name part of the pair
+ */
+ string Name;
+
+
+ /** specifies the value part of the pair.
+ */
+ any Value;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/NotRemoveableException.idl b/udkapi/com/sun/star/beans/NotRemoveableException.idl
new file mode 100644
index 0000000000..5636241987
--- /dev/null
+++ b/udkapi/com/sun/star/beans/NotRemoveableException.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module beans {
+
+
+/** This exception is thrown to indicate that removing a property from an
+ XPropertyContainer is not allowed.
+ */
+published exception NotRemoveableException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/Optional.idl b/udkapi/com/sun/star/beans/Optional.idl
new file mode 100644
index 0000000000..6e3392a50d
--- /dev/null
+++ b/udkapi/com/sun/star/beans/Optional.idl
@@ -0,0 +1,49 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module beans {
+
+/**
+ An optional value of a given type.
+
+ <p>This structure is used as the type of interface attributes corresponding
+ to instances of com::sun::star::beans::Property that
+ have the com::sun::star::beans::PropertyAttribute::MAYBEVOID. It might
+ also be useful in other situations, for example as the return type of an
+ interface method.</p>
+ */
+struct Optional<T> {
+ /**
+ Marks this structure instance as having an actual value.
+ */
+ boolean IsPresent;
+
+ /**
+ The actual value of this structure instance.
+
+ <p>If no actual value is present, a producer of such a structure instance
+ should leave this member defaulted, and a consumer of such a structure
+ instance should ignore the specific value stored in this member.</p>
+ */
+ T Value;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/Pair.idl b/udkapi/com/sun/star/beans/Pair.idl
new file mode 100644
index 0000000000..13c08b4a2a
--- /dev/null
+++ b/udkapi/com/sun/star/beans/Pair.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module beans {
+
+/** A tuple, or pair.
+
+ <p>
+ This structure allows for conveniently packing together two values of
+ any type, and could be useful as the result type of methods.
+ </p>
+
+ @since OOo 3.0
+ */
+struct Pair<T, U> {
+
+ /// first object.
+ T First;
+
+ /// second object.
+ U Second;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/Property.idl b/udkapi/com/sun/star/beans/Property.idl
new file mode 100644
index 0000000000..3b619ace13
--- /dev/null
+++ b/udkapi/com/sun/star/beans/Property.idl
@@ -0,0 +1,71 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** This structure describes a property.
+
+ There are three types of properties:
+ - bound properties
+ - constrained properties
+ - free properties
+
+ */
+published struct Property
+{
+ /** specifies the name of the property.
+
+ <p>The name is unique within an XPropertySet.
+ Upper and lower case are distinguished.</p>
+ */
+ string Name;
+
+
+ /** contains an implementation-specific handle for the property.
+
+ <p>It may be -1 if the implementation has no handle. You can use
+ this handle to get values from the XFastPropertySet.</p>
+ */
+ long Handle;
+
+
+ /** contains an object that identifies the declared type for
+ the property.
+
+ <p>If the property has multiple types or the type is not
+ known, <strong>but not an `any`</strong>, then
+ void must be returned.</p>
+ */
+ type Type;
+
+
+ /** This field may contain zero or more constants of the
+ PropertyAttribute constants group.
+ */
+ short Attributes;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/PropertyAttribute.idl b/udkapi/com/sun/star/beans/PropertyAttribute.idl
new file mode 100644
index 0000000000..bddfd1cd25
--- /dev/null
+++ b/udkapi/com/sun/star/beans/PropertyAttribute.idl
@@ -0,0 +1,98 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module beans {
+
+
+/** These values are used to specify the behavior of a Property.
+ */
+published constants PropertyAttribute
+{
+
+ /** indicates that a property value can be void.
+
+ <p>It does not mean that the type of the property is void!</p>
+ */
+ const short MAYBEVOID = 1;
+
+
+ /** indicates that a PropertyChangeEvent will be fired
+ to all registered XPropertyChangeListeners whenever the
+ value of this property changes.
+ */
+ const short BOUND = 2;
+
+
+ /** indicates that a PropertyChangeEvent will be fired
+ to all registered XVetoableChangeListeners whenever the
+ value of this property is about to change.
+
+ <p>This always implies that the property is <em>bound</em>, too. </p>
+ */
+ const short CONSTRAINED = 4;
+
+
+ /** indicates that the value of the property is not persistent.
+ */
+ const short TRANSIENT = 8;
+
+
+ /** indicates that the value of the property is read-only.
+ */
+ const short READONLY = 16;
+
+
+ /** indicates that the value of the property can be ambiguous.
+ */
+ const short MAYBEAMBIGUOUS = 32;
+
+
+ /** indicates that the property can be set to default.
+ */
+ const short MAYBEDEFAULT = 64;
+
+
+ /** indicates that the property can be removed
+ (i.e., by calling XPropertyContainer::removeProperty()).
+ */
+ const short REMOVABLE = 128;
+
+ /** @deprecated
+ same as PropertyAttribute::REMOVABLE.
+ */
+ const short REMOVEABLE = 128;
+
+ /** indicates that a property is optional.
+
+ <p>This attribute is not of interest for concrete property
+ implementations. It's needed for property specifications inside
+ service specifications in UNOIDL.</p>
+
+ @see com::sun::star::reflection::XPropertyTypeDescription
+ @see com::sun::star::reflection::XServiceTypeDescription
+ @since OOo 1.1.2
+ */
+ const short OPTIONAL = 256;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/PropertyBag.idl b/udkapi/com/sun/star/beans/PropertyBag.idl
new file mode 100644
index 0000000000..426ef751c3
--- /dev/null
+++ b/udkapi/com/sun/star/beans/PropertyBag.idl
@@ -0,0 +1,42 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** Implementation of this service can keep any properties and is useful
+ when an XPropertySet is to be used, for example, as parameters for a method call.
+
+ <p>Scripting engines might not be able to use such objects as normal
+ property sets, giving direct access to the properties. In this case,
+ use the methods like XPropertySet::getPropertyValue().
+ */
+published service PropertyBag : XPropertyBag
+{
+ createDefault();
+
+ createWithTypes( [in] sequence<type> AllowedTypes, [in] boolean AllowEmptyPropertyName, [in] boolean AutomaticAddition );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/PropertyChangeEvent.idl b/udkapi/com/sun/star/beans/PropertyChangeEvent.idl
new file mode 100644
index 0000000000..00662b2a96
--- /dev/null
+++ b/udkapi/com/sun/star/beans/PropertyChangeEvent.idl
@@ -0,0 +1,72 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module beans {
+
+
+/** gets delivered whenever a "bound" or "constrained" property is changed.
+
+ <p>A PropertyChangeEvent object is sent as an
+ argument to the methods of XPropertyChangeListener
+ and XVetoableChangeListener. </p>
+
+ <p>Normally such events contain the name and the old and new
+ value of the changed property. </p>
+
+ <p>Void values may be provided for the old and new values if their
+ true values are not known. </p>
+ */
+published struct PropertyChangeEvent: com::sun::star::lang::EventObject
+{
+
+ /** contains the unique name of the property which changes its value.
+ */
+ string PropertyName;
+
+
+ /** contains `TRUE` if further events in the same transaction occur.
+ */
+ boolean Further;
+
+
+ /** contains the implementation handle for the property.
+
+ <p>May be -1 if the implementation has no handle. You can use
+ this handle to get values from the XFastPropertySet.</p>
+ */
+ long PropertyHandle;
+
+
+ /** contains the old value of the property.
+ */
+ any OldValue;
+
+
+ /** contains the new value of the property.
+ */
+ any NewValue;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/PropertyConcept.idl b/udkapi/com/sun/star/beans/PropertyConcept.idl
new file mode 100644
index 0000000000..b216000bd8
--- /dev/null
+++ b/udkapi/com/sun/star/beans/PropertyConcept.idl
@@ -0,0 +1,75 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+/** These constants are used to specify concepts of the
+ introspection which apply to properties and to the
+ methods which represent attributes.
+
+ <p>This list is not necessarily complete; new constants
+ may be added.</p>
+
+ @see Introspection
+ @see XIntrospection
+ @see XIntrospectionAccess
+ */
+published constants PropertyConcept
+{
+ /** This value is used to query for all properties.
+
+ See
+ XIntrospectionAccess::getProperty() and
+ XIntrospectionAccess::getProperties()
+ */
+ const long ALL = -1;
+
+ /** specifies that the change or retrieval of this
+ property directly by the user can result in an unstable
+ state (deadlock, application crash, security hole, etc.)
+ */
+ const long DANGEROUS = 1;
+
+ /** specifies all properties which are reachable by
+ XPropertySet, XFastPropertySet or
+ XMultiPropertySet.
+ */
+ const long PROPERTYSET = 2;
+
+
+ /** specifies all properties which are actually attributes of interfaces.
+ */
+ const long ATTRIBUTES = 4;
+
+
+ /** specifies all properties which are represented by getter or setter methods.
+
+ <p>These methods have the signature <code>type get...()</code>,
+ <code>void set...()</code> or <code>boolean is...()</code>.</p>
+ */
+ const long METHODS = 8;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/PropertyExistException.idl b/udkapi/com/sun/star/beans/PropertyExistException.idl
new file mode 100644
index 0000000000..55295d5e57
--- /dev/null
+++ b/udkapi/com/sun/star/beans/PropertyExistException.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module beans {
+
+
+/** This exception is thrown to indicate that a property with this name already
+ exists in the object.
+
+ @see PropertyContainer
+ */
+published exception PropertyExistException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/PropertySet.idl b/udkapi/com/sun/star/beans/PropertySet.idl
new file mode 100644
index 0000000000..6442ffe478
--- /dev/null
+++ b/udkapi/com/sun/star/beans/PropertySet.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module beans {
+
+
+/** This is a generic service which should be supported by all services
+ which have properties.
+
+ <p>It specifies several, mostly optional ways to access properties.
+ */
+published service PropertySet
+{
+ interface com::sun::star::beans::XPropertySet;
+
+ [optional] interface com::sun::star::beans::XFastPropertySet;
+ [optional] interface com::sun::star::beans::XMultiPropertySet;
+ [optional] interface com::sun::star::beans::XPropertyAccess;
+ [optional] interface com::sun::star::beans::XPropertyState;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/PropertySetInfoChange.idl b/udkapi/com/sun/star/beans/PropertySetInfoChange.idl
new file mode 100644
index 0000000000..8338456a62
--- /dev/null
+++ b/udkapi/com/sun/star/beans/PropertySetInfoChange.idl
@@ -0,0 +1,46 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module beans {
+
+
+/** specifies reasons for sending PropertySetInfoChangeEvents.
+
+ @see PropertySetInfoChangeEvent
+ @see XPropertySetInfo
+ */
+published constants PropertySetInfoChange
+{
+
+ /** A property was inserted into a XPropertySetInfo.
+ */
+ const long PROPERTY_INSERTED = 0;
+
+
+ /** A property was removed from a XPropertySetInfo.
+ */
+ const long PROPERTY_REMOVED = 1;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/PropertySetInfoChangeEvent.idl b/udkapi/com/sun/star/beans/PropertySetInfoChangeEvent.idl
new file mode 100644
index 0000000000..399ad5dfb4
--- /dev/null
+++ b/udkapi/com/sun/star/beans/PropertySetInfoChangeEvent.idl
@@ -0,0 +1,56 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** gets delivered whenever an XPropertySetInfo is
+ changed.
+
+ <p>A PropertySetInfoChangeEvent object is sent
+ to XPropertySetInfoChangeListeners.</p>
+ */
+published struct PropertySetInfoChangeEvent: com::sun::star::lang::EventObject
+{
+
+ /** contains the name of the property.
+ */
+ string Name;
+
+
+ /** contains the implementation handle for the property.
+
+ <p>May be -1 if the implementation has no handle.</p>
+ */
+ long Handle;
+
+
+ /** contains the reason for the event.
+
+ @see PropertySetInfoChange
+ */
+ long Reason;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/PropertyState.idl b/udkapi/com/sun/star/beans/PropertyState.idl
new file mode 100644
index 0000000000..1c5c0d133f
--- /dev/null
+++ b/udkapi/com/sun/star/beans/PropertyState.idl
@@ -0,0 +1,81 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** This enumeration lists the states that a property value can have.
+
+ <p>The state consists of two aspects: </p>
+ <ol>
+ <li>whether a value is available or void, </li>
+ <li>whether the value is stored in the property set itself or is a
+ default, or ambiguous. </li>
+ </ol>
+
+ @see XPropertyState
+ @see Property
+ */
+published enum PropertyState
+{
+
+ /** The value of the property is stored in the PropertySet itself.
+
+ <p>The property value must be available and of the specified type.
+ If the PropertyAttribute field in the struct
+ Property contains PropertyAttribute::MAYBEVOID,
+ then the value may be void. </p>
+ */
+ DIRECT_VALUE,
+
+
+ /** The value of the property is available from a master (e.g., template).
+
+ <p>The PropertyAttribute field in the struct
+ Property must contain the
+ PropertyAttribute::MAYBEDEFAULT flag. The property
+ value must be available and of the specified type. If the
+ PropertyAttribute field in the struct Property
+ contains PropertyAttribute::MAYBEVOID, then the
+ value may be void. </p>
+ */
+ DEFAULT_VALUE,
+
+
+ /** The value of the property is only a recommendation because there
+ are multiple values for this property (e.g., from a multi selection).
+
+ <p>The PropertyAttribute field in the struct
+ Property must contain the
+ PropertyAttribute::MAYBEAMBIGUOUS flag. The
+ property value must be available and of the specified type.
+ If the Attribute field in the struct Property contains
+ PropertyAttribute::MAYBEVOID, then the value
+ may be void. </p>
+ */
+ AMBIGUOUS_VALUE
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/PropertyStateChangeEvent.idl b/udkapi/com/sun/star/beans/PropertyStateChangeEvent.idl
new file mode 100644
index 0000000000..d77327afc2
--- /dev/null
+++ b/udkapi/com/sun/star/beans/PropertyStateChangeEvent.idl
@@ -0,0 +1,70 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** is delivered whenever the state of a "bound" property is changed.
+
+ <p>It is sent as an argument to the method of
+ XPropertyStateChangeListener. </p>
+
+ <p>Normally these events are accompanied by the name, and the old
+ and new values of the changed property. </p>
+
+ <p>Void values may be provided for the old and new values if their
+ true values are not known. </p>
+ */
+published struct PropertyStateChangeEvent: com::sun::star::lang::EventObject
+{
+
+ /** specifies the name of the property which changes its value.
+
+ <p>This name identifies the property uniquely within an
+ XPropertySet. Upper and lower case are distinguished.</p>
+ */
+ string PropertyName;
+
+
+ /** contains the implementation handle for the property.
+
+ <p>It may be -1 if the implementation has no handle. You can use this
+ handle to get values from the XFastPropertySet
+ interface.</p>
+ */
+ long PropertyHandle;
+
+
+ /** contains the old value of the property.
+ */
+ com::sun::star::beans::PropertyState OldValue;
+
+
+ /** contains the new value of the property.
+ */
+ com::sun::star::beans::PropertyState NewValue;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/PropertyValue.idl b/udkapi/com/sun/star/beans/PropertyValue.idl
new file mode 100644
index 0000000000..c4b8516000
--- /dev/null
+++ b/udkapi/com/sun/star/beans/PropertyValue.idl
@@ -0,0 +1,61 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module beans {
+
+
+/** specifies a property value.
+ */
+published struct PropertyValue
+{
+ /** specifies the name of the property.
+
+ <p>The name is unique within a sequence of PropertyValues.
+ Upper and lower case are distinguished.</p>
+ */
+ string Name;
+
+
+ /** contains an implementation-specific handle for the property.
+
+ <p>It may be -1 if the implementation has no handle. If available
+ it can be used for fast lookups.</p>
+ */
+ long Handle;
+
+
+ /** contains the value of the property or `VOID`,
+ if no value is available.
+ */
+ any Value;
+
+
+ /** determines if the value comes from the object itself or from
+ a default and if the value cannot be determined exactly.
+ */
+ com::sun::star::beans::PropertyState State;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/PropertyValues.idl b/udkapi/com/sun/star/beans/PropertyValues.idl
new file mode 100644
index 0000000000..3b6142373c
--- /dev/null
+++ b/udkapi/com/sun/star/beans/PropertyValues.idl
@@ -0,0 +1,32 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module beans {
+
+/** specifies a sequence of PropertyValue instances.
+
+ <p>Such sequences are especially useful for remote interfaces. </p>
+*/
+published typedef sequence<PropertyValue> PropertyValues;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/PropertyVetoException.idl b/udkapi/com/sun/star/beans/PropertyVetoException.idl
new file mode 100644
index 0000000000..86739e42c1
--- /dev/null
+++ b/udkapi/com/sun/star/beans/PropertyVetoException.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** This exception is thrown when a proposed change to a
+ property represents an unacceptable value.
+
+ @see XPropertySet
+ */
+published exception PropertyVetoException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/SetPropertyTolerantFailed.idl b/udkapi/com/sun/star/beans/SetPropertyTolerantFailed.idl
new file mode 100644
index 0000000000..13715d5507
--- /dev/null
+++ b/udkapi/com/sun/star/beans/SetPropertyTolerantFailed.idl
@@ -0,0 +1,52 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** specifies information about a single property failed to be set.
+
+ @see com::sun::star::beans::XTolerantMultiPropertySet
+ */
+published struct SetPropertyTolerantFailed
+{
+ /** specifies the name of the property.
+ */
+ string Name;
+
+
+ /** specifies the success or error code for setting the
+ properties value.
+
+ <p>Since the property was not successful set the result will never be
+ com::sun::star::beans::TolerantPropertySetResultType::SUCCESS.
+ </p>
+
+ @see com::sun::star::beans::TolerantPropertySetResultType
+ */
+ short Result;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/StringPair.idl b/udkapi/com/sun/star/beans/StringPair.idl
new file mode 100644
index 0000000000..f75caabbfd
--- /dev/null
+++ b/udkapi/com/sun/star/beans/StringPair.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module beans {
+
+
+/** specifies a pair of two strings.
+ */
+published struct StringPair
+{
+ /** specifies the first of the two strings.
+ */
+ string First;
+
+
+ /** specifies the second of the two strings.
+ */
+ string Second;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/TolerantPropertySetResultType.idl b/udkapi/com/sun/star/beans/TolerantPropertySetResultType.idl
new file mode 100644
index 0000000000..8179131056
--- /dev/null
+++ b/udkapi/com/sun/star/beans/TolerantPropertySetResultType.idl
@@ -0,0 +1,77 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** specifies the possible failure types when using the
+ com::sun::star::beans::XTolerantMultiPropertySet
+ interface.
+
+ <p>It usually matches one of the exception types that may occur when
+ using the
+ com::sun::star::beans::XPropertySet or
+ com::sun::star::beans::XMultiPropertySet interfaces.</p>
+*/
+constants TolerantPropertySetResultType
+{
+ /** the property has been successfully set or retrieved.
+ */
+ const short SUCCESS = 0;
+
+ /** the property is not available.
+
+ <p>For example if a
+ com::sun::star::beans::UnknownPropertyException
+ was caught.</p>
+ */
+ const short UNKNOWN_PROPERTY = 1;
+
+ /** the value used with the property is not valid.
+
+ <p>For example if a
+ com::sun::star::lang::IllegalArgumentException
+ was caught.</p>
+ */
+ const short ILLEGAL_ARGUMENT = 2;
+
+ /** the property could not be changed at that time.
+
+ <p>For example if a
+ com::sun::star::beans::PropertyVetoException
+ was caught.</p>
+ */
+ const short PROPERTY_VETO = 3;
+
+ /** a com::sun::star::lang::WrappedTargetException
+ did occur.
+ */
+ const short WRAPPED_TARGET = 4;
+
+ /** the operation failed and the reason is not known.
+ */
+ const short UNKNOWN_FAILURE = 5;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/UnknownPropertyException.idl b/udkapi/com/sun/star/beans/UnknownPropertyException.idl
new file mode 100644
index 0000000000..35a5079c23
--- /dev/null
+++ b/udkapi/com/sun/star/beans/UnknownPropertyException.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module beans {
+
+
+/** This exception is thrown to indicate that the property name is unknown to
+ the implementation.
+
+ @see XPropertySet
+ */
+published exception UnknownPropertyException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XExactName.idl b/udkapi/com/sun/star/beans/XExactName.idl
new file mode 100644
index 0000000000..0f32374cff
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XExactName.idl
@@ -0,0 +1,55 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** provides a method of changing names for converting
+ an approximate name to an existing name.
+
+ <p> One field of application is the conversion of case-insensitive
+ names to the existing names. </p>
+
+ <p>Example: A basic interpreter ignores the case of the names. So
+ it must query the XExactName interface and then call
+ the method. </p>
+
+ @see com::sun::star::beans::XPropertySet
+ @see com::sun::star::beans::XIntrospectionAccess
+ @see com::sun::star::container::XNameAccess
+ */
+published interface XExactName: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the exact name for a given approximate name.
+
+ <p>For example "getExactName" could be returned for "GETEXACTNAME"
+ when "GETEXACTNAME" was used by a case insensitive scripting language. </p>
+ */
+ string getExactName( [in] string aApproximateName );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XFastPropertySet.idl b/udkapi/com/sun/star/beans/XFastPropertySet.idl
new file mode 100644
index 0000000000..2e3aa7c041
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XFastPropertySet.idl
@@ -0,0 +1,91 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** provides a fast way of accessing and changing property values.
+
+ <p>This interface is an extension to the XPropertySet
+ interface. The get and set methods use handles to access the
+ property values instead of character strings.</p>
+ */
+published interface XFastPropertySet: com::sun::star::uno::XInterface
+{
+
+ /** sets the value to the property with the specified name.
+
+ @param nHandle
+ contains the implementation handle of the
+ implementation for the property.
+
+ @param aValue
+ contains the new value of the property.
+
+ @throws UnknownPropertyException
+ if the property does not exist.
+
+ @throws PropertyVetoException
+ if a vetoable listener does not approve the change of
+ a property value.
+
+ @throws IllegalArgumentException
+ if the new value cannot be converted to the type of the
+ underlying property by an identity or widening conversion.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ if the implementation has an internal reason for the exception.
+ In this case the original exception is wrapped into this
+ com::sun::star::lang::WrappedTargetException.
+
+ */
+ void setFastPropertyValue( [in] long nHandle,
+ [in] any aValue )
+ raises( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::beans::PropertyVetoException,
+ com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** @returns
+ the value of the property with the name PropertyName.
+
+ @param nHandle
+ contains the implementation handle of the implementation for the property.
+
+ @throws UnknownPropertyException
+ if the property does not exist.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ if the implementation has an internal reason for the exception.
+ In this case the original exception is wrapped into that
+ com::sun::star::lang::WrappedTargetException.
+ */
+ any getFastPropertyValue( [in] long nHandle )
+ raises( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XHierarchicalPropertySet.idl b/udkapi/com/sun/star/beans/XHierarchicalPropertySet.idl
new file mode 100644
index 0000000000..9c75f75a3e
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XHierarchicalPropertySet.idl
@@ -0,0 +1,134 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** provides information about and access to the
+ a hierarchy of properties from an implementation.
+
+ <p> Usually an object that implements this interface
+ also implements XPropertySet and at
+ least some of the properties have subproperties. </p>
+
+ <p> This interface allows direct access to subsubproperties, ...
+ up to an arbitrary nesting depth. Often the intermediate
+ elements of the hierarchy implement XProperty. </p>
+
+ <p> Each implementation specifies how the
+ hierarchical property names, that are
+ used to access the elements of the hierarchy,
+ are formed. </p>
+
+ <p> Commonly a notation similar to filesystem paths
+ (separated by '/' slashes) or nested module names
+ (separated by dots '.' or '::') is used. </p>
+
+ */
+published interface XHierarchicalPropertySet: com::sun::star::uno::XInterface
+{
+
+ /** retrieve information about the hierarchy of properties
+
+ @returns
+ the XHierarchicalPropertySetInfo interface,
+ which describes the property hierarchy of the object which
+ supplies this interface.
+
+ @returns
+ `NULL` if the implementation cannot or will
+ not provide information about the properties; otherwise the
+ interface XHierarchicalPropertySetInfo is returned.
+ */
+ com::sun::star::beans::XHierarchicalPropertySetInfo
+ getHierarchicalPropertySetInfo();
+
+
+ /** sets the value of the property with the specified nested name.
+
+ @param aHierarchicalPropertyName
+ This parameter specifies the name of the property.
+
+ @param aValue
+ This parameter specifies the new value for the property.
+
+ @throws UnknownPropertyException
+ if the property does not exist.
+
+ @throws PropertyVetoException
+ if the property is constrained and the change is vetoed by a
+ XVetoableChangeListener.
+
+ @throws com::sun::star::uno::lang::IllegalArgumentException
+ if <var>aValue</var> is not a legal value for this property or
+ if <var>aHierarchicalPropertyName</var> is not a well-formed
+ nested name for this hierarchy.
+ An implementation is not required to detect the latter condition.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ if the implementation has an internal reason for the exception.
+ In this case the original exception is wrapped into that
+ com::sun::star::lang::WrappedTargetException.
+
+ @see XPropertySet::setPropertyValue
+ */
+ void setHierarchicalPropertyValue( [in] string aHierarchicalPropertyName,
+ [in] any aValue )
+ raises( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::beans::PropertyVetoException,
+ com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** @returns
+ the value of the property with the specified nested name.
+
+ @param aHierarchicalPropertyName
+ This parameter specifies the name of the property.
+
+ @throws UnknownPropertyException
+ if the property does not exist.
+
+ @throws com::sun::star::uno::lang::IllegalArgumentException
+ if <var>aHierarchicalPropertyName</var> is not a well-formed
+ nested name for this hierarchy.
+ An implementation is not required to detect this
+ condition.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ if the implementation has an internal reason for the exception.
+ In this case the original exception is wrapped into that
+ com::sun::star::lang::WrappedTargetException.
+
+ @see XPropertySet::getPropertyValue
+ */
+ any getHierarchicalPropertyValue( [in] string aHierarchicalPropertyName )
+ raises( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XHierarchicalPropertySetInfo.idl b/udkapi/com/sun/star/beans/XHierarchicalPropertySetInfo.idl
new file mode 100644
index 0000000000..8770e3fb01
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XHierarchicalPropertySetInfo.idl
@@ -0,0 +1,73 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** specifies a hierarchy of properties.
+
+ <p>The specification only describes the properties, it does not contain
+ any values.</p>
+ */
+published interface XHierarchicalPropertySetInfo: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the property with the specified name from the hierarchy.
+
+ @param aHierarchicalName
+ specifies the nested name of the property.
+
+ @throws UnknownPropertyException
+ if the property does not exist.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if <var>aHierarchicalName</var> is not a well-formed
+ nested name for this hierarchy.
+ An implementation is not required to detect this
+ condition.
+
+ */
+ com::sun::star::beans::Property getPropertyByHierarchicalName( [in] string aHierarchicalName )
+ raises( com::sun::star::beans::UnknownPropertyException );
+
+
+ /** @returns
+ `TRUE` if a property with the specified name exists;
+ otherwise `FALSE` is returned.
+
+ @param aHierarchicalName
+ specifies the name of the property.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if <var>aHierarchicalName</var> is not a well-formed
+ nested name for this hierarchy.
+ An implementation is not required to detect this
+ condition.
+ */
+ boolean hasPropertyByHierarchicalName( [in] string aHierarchicalName );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XIntrospection.idl b/udkapi/com/sun/star/beans/XIntrospection.idl
new file mode 100644
index 0000000000..edbe1bd43a
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XIntrospection.idl
@@ -0,0 +1,95 @@
+/* -*- 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 .
+ */
+
+
+
+ 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 com::sun::star::lang::XTypeProvider
+ interface.</p>
+
+ <p>For details see method XIntrospection::inspect(). </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 XPropertySet
+ 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 com::sun::star::container::XNameAccess,
+ 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
+ com::sun::star::beans::XIntrospectionAccess::getProperties().
+ com::sun::star::container::XNameAccess items have to be
+ accessed separately by com::sun::star::beans::XIntrospectionAccess::getNameAccess().
+ </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
+ XPropertySet) 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 XPropertySet,
+ com::sun::star::container::XNameAccess,
+ com::sun::star::container::XIndexAccess, or
+ com::sun::star::container::XEnumerationAccess, are considered to be normal
+ methods. </p>
+
+ @see XIntrospectionAccess
+ */
+ com::sun::star::beans::XIntrospectionAccess inspect( [in] any aObject );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XIntrospectionAccess.idl b/udkapi/com/sun/star/beans/XIntrospectionAccess.idl
new file mode 100644
index 0000000000..629d26ddfe
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XIntrospectionAccess.idl
@@ -0,0 +1,260 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module beans {
+
+
+/** represents the result of an introspection operation done by
+ the inspect method of XIntrospection.
+
+ <p>This interface gives information about an object's
+ properties and methods as detected in the introspection
+ process. It's not possible to access properties or call
+ methods directly using this interface but it provides
+ access to other interfaces to do so.
+ See com::sun::star::beans::XIntrospectionAccess::queryAdapter()</p>
+
+ <p>The XExactName interface has to be supported
+ in order to implement inaccurate name access for all objects
+ which implement the com::sun::star::container::XNameAccess interface
+ or XPropertySet.</p>
+
+ <p>The XMaterialHolder interface has to be
+ supported to give access to the inspected object.</p>
+
+ @see XPropertySet
+ @see com::sun::star::beans::XExactName
+ */
+published interface XIntrospectionAccess: com::sun::star::uno::XInterface
+{
+ /** returns information about which method concepts described in
+ the MethodConcept constants group are supported
+ by this XIntrospectionAccess implementation.
+
+ <p>The minimum supported concepts should be:</p>
+
+ <ul>
+ <li> MethodConcept::PROPERTY, </li>
+ <li> MethodConcept::LISTENER, </li>
+ <li> MethodConcept::ENUMERATION, </li>
+ <li> MethodConcept::NAMECONTAINER</li>
+ <li> MethodConcept::INDEXCONTAINER; </li>
+ </ul>
+
+ @returns
+ zero or more constants of the MethodConcept
+ constants group combined by an arithmetical or-operation.
+ */
+ long getSuppliedMethodConcepts();
+
+ /** returns information about which property concepts described in
+ the PropertyConcept constants group are supported
+ by this XIntrospectionAccess implementation.
+
+ <p>The minimum supported concepts should be:</p>
+
+ <ul>
+ <li> PropertyConcept::PROPERTYSET, </li>
+ <li> PropertyConcept::ATTRIBUTES and </li>
+ <li> PropertyConcept::METHODS. </li>
+ </ul>
+
+ @returns
+ zero or more constants of the PropertyConcept
+ constants group.combined by an arithmetical or-operation.
+ */
+ long getSuppliedPropertyConcepts();
+
+ /** returns information about a property if a property with
+ the demanded name exists and if it accords to one of the
+ demanded PropertyConcepts. The information
+ is provided as Property struct.
+
+ @returns
+ A Property struct providing
+ information about the demanded property,
+ if a corresponding property exists.
+
+ @param aName
+ the name of the property.
+
+ @param nPropertyConcepts
+ zero or more constants of the PropertyConcept
+ constants group combined by an arithmetical
+ or-operation.
+
+ @throws NoSuchElementException
+ when a property with the demanded name doesn't exist
+ or if it accords to a wrong PropertyConcept.
+ */
+ com::sun::star::beans::Property getProperty( [in] string aName,
+ [in] long nPropertyConcepts )
+ raises( com::sun::star::container::NoSuchElementException );
+
+ /** allows to ask if a property with the demanded name exists
+ and if it accords to one of the demanded PropertyConcept.
+
+ @returns
+ `TRUE` if the property exists and accords to one of
+ the demanded PropertyConcepts, otherwise
+ `FALSE` is returned.
+
+ @param aName
+ the name of the property.
+
+ @param nPropertyConcepts
+ zero or more constants of the PropertyConcept
+ constants group combined by an arithmetical
+ or-operation.
+ */
+ boolean hasProperty( [in] string aName,
+ [in] long nPropertyConcepts );
+
+ /** returns a sequence of properties of the introspected object
+
+ @returns
+ all properties of the introspected object which accord
+ to the demanded PropertyConcepts.
+
+ @param nPropertyConcepts
+ zero or more constants of the PropertyConcept
+ constants group combined by an arithmetical
+ or-operation.
+ */
+ sequence<com::sun::star::beans::Property> getProperties(
+ [in] long nPropertyConcepts );
+
+ /** returns information about a method if a method with
+ the demanded name exists and if it accords to one of
+ the demanded MethodConcepts. The information is
+ provided as com::sun::star::reflection::XIdlMethod.
+
+ @returns
+ A com::sun::star::reflection::XIdlMethod providing
+ information about and
+ access to the demanded method if a corresponding
+ method exists.
+
+ @param aName
+ the name of the method.
+
+ @param nMethodConcepts
+ zero or more constants of the MethodConcept
+ constants group combined by an arithmetical
+ or-operation.
+
+ @throws NoSuchElementException
+ when a method with the demanded name doesn't exist
+ or if it accords to a wrong MethodConcept.
+ */
+ com::sun::star::reflection::XIdlMethod getMethod( [in] string aName,
+ [in] long nMethodConcepts )
+ raises( com::sun::star::lang::NoSuchMethodException );
+
+ /** allows to ask if a method with the demanded name exists
+ and if it accords to one of the demanded MethodConcept.
+
+ @returns
+ `TRUE` if the method exists and accords to one of
+ the demanded MethodConcepts, otherwise
+ `FALSE` is returned.
+
+ @param aName
+ the name of the method.
+
+ @param nMethodConcepts
+ zero or more constants of the MethodConcept
+ constants group combined by an arithmetical
+ or-operation.
+ */
+ boolean hasMethod( [in] string aName,
+ [in] long nMethodConcepts );
+
+ /** returns a sequence of methods of the introspected object.
+
+ @returns
+ all methods of the introspected object which accord
+ to the demanded MethodConcepts.
+
+ @param nMethodConcepts
+ zero or more constants of the MethodConcept
+ constants group combined by an arithmetical
+ or-operation.
+ */
+ sequence<com::sun::star::reflection::XIdlMethod> getMethods(
+ [in] long nMethodConcepts );
+
+ /** returns the listener types supported by the introspected
+ object.
+
+ <p>If the introspected object has the methods
+ <code>addFooListener( XFooListener xFoo )</code> and
+ <code>removeFooListener( XFooListener xFoo )</code>
+ the type of XFooListener will be one of the elements
+ in the returned sequence.
+
+ @returns
+ a sequence of the types of listener interfaces
+ which are supported by the introspected object.
+ */
+ sequence<type> getSupportedListeners();
+
+ /** creates an adapter that implements an interface with the
+ specified type.
+
+ <p>To access properties, query for the XPropertySet
+ interface. If the XPropertySet can
+ be queried, the XFastPropertySet interface
+ must be supported too. </p>
+
+ <p>If the introspected object implements a name container,
+ the introspection should return the
+ com::sun::star::container::XNameAccess and
+ com::sun::star::container::XNameContainer interfaces.</p>
+
+ <p>If the introspected object implements an index container,
+ the introspection should return the
+ com::sun::star::container::XIndexAccess and
+ com::sun::star::container::XIndexContainer interfaces.</p>
+
+ <p>If the introspected object implements an enumeration
+ container, the introspection should return the
+ com::sun::star::container::XEnumerationAccess interface.</p>
+
+ <p>If the introspected object implements the
+ com::sun::star::reflection::XIdlArray interface,
+ the introspection should return this.</p>
+
+ <p>To implement inaccurate name access, at all objects,
+ which implement the com::sun::star::container::XNameAccess or
+ XPropertySet interface, the XExactName interface has to be supported.
+ </p>
+
+ @see com::sun::star::beans::XExactName
+ */
+ com::sun::star::uno::XInterface queryAdapter( [in] type aInterfaceType )
+ raises( com::sun::star::beans::IllegalTypeException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XMaterialHolder.idl b/udkapi/com/sun/star/beans/XMaterialHolder.idl
new file mode 100644
index 0000000000..00545b55cb
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XMaterialHolder.idl
@@ -0,0 +1,49 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module beans {
+
+/** gives access to the material a (tool-) object is working on.
+
+ <p>Example: The introspection service allows the inspection of an
+ object's properties and methods. The result is represented as
+ XIntrospectionAccess interface. The inspected object then is the
+ material attached to the introspection tool and an implementation
+ of XIntrospectionAccess should also support
+ XMaterialHolder to give access to this material.</p>
+
+ @see XIntrospectionAccess
+ */
+published interface XMaterialHolder: com::sun::star::uno::XInterface
+{
+ /** returns the material that is connected to this (tool-) object
+
+ @returns
+ the material that is connected to this (tool-) object.
+ */
+ any getMaterial();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XMultiHierarchicalPropertySet.idl b/udkapi/com/sun/star/beans/XMultiHierarchicalPropertySet.idl
new file mode 100644
index 0000000000..c81adbf009
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XMultiHierarchicalPropertySet.idl
@@ -0,0 +1,124 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module beans {
+
+
+/** provides access to multiple properties which form a hierarchy.
+
+ @see XHierarchicalPropertySet
+ */
+published interface XMultiHierarchicalPropertySet: com::sun::star::uno::XInterface
+{
+
+ /** retrieve information about the hierarchy of properties
+
+ @returns
+ the XHierarchicalPropertySetInfo interface,
+ which describes the property hierarchy of the object which
+ supplies this interface.
+
+ @returns
+ `NULL` if the implementation cannot or will
+ not provide information about the properties; otherwise the
+ interface XHierarchicalPropertySetInfo is returned.
+
+ @see XHierarchicalPropertySet::getHierarchicalPropertySetInfo
+ */
+ com::sun::star::beans::XHierarchicalPropertySetInfo getHierarchicalPropertySetInfo();
+
+
+ /** sets the values of the properties with the specified nested names.
+
+ <p> The values of the properties must change before bound
+ events are fired. The values of constrained properties
+ should change after the vetoable events are fired, if no
+ exception occurs. </p>
+
+ <p> Unknown properties are ignored. </p>
+
+ @param aHierarchicalPropertyNames
+ This parameter specifies the names of the properties.
+
+ @param Values
+ This parameter specifies the new values for the properties.
+
+ @throws PropertyVetoException
+ if one of the properties is constrained and the change is
+ vetoed by a XVetoableChangeListener.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the values is not a legal value for the
+ corresponding property or if one of the names
+ is not a well-formed nested name for this hierarchy.
+ An implementation is not required to detect the latter
+ condition.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ if the implementation has an internal reason for the exception.
+ In this case the original exception is wrapped into that
+ com::sun::star::lang::WrappedTargetException.
+
+ @see XHierarchicalPropertySet::setHierarchicalPropertyValue
+ @see XMultiPropertySet::setPropertyValues
+ */
+
+
+ void setHierarchicalPropertyValues( [in] sequence<string> aHierarchicalPropertyNames,
+ [in] sequence<any> Values )
+ raises( com::sun::star::beans::PropertyVetoException,
+ com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** @returns
+ a sequence of all values of the properties which are specified
+ by their nested names.
+
+ <p> The order of the values in the returned sequence will be the same
+ as the order of the names in the argument. </p>
+
+ <p> Unknown properties are ignored, in their place `NULL` will be returned. </p>
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the names is not a well-formed
+ nested name for this hierarchy.
+ An implementation is not required to detect this
+ condition.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ if the implementation has an internal reason for the exception.
+ In this case the original exception is wrapped into that
+ com::sun::star::lang::WrappedTargetException.
+
+ @see XHierarchicalPropertySet::getHierarchicalPropertyValue
+ @see XMultiPropertySet::setPropertyValues
+ */
+ sequence<any> getHierarchicalPropertyValues( [in] sequence<string> aPropertyNames )
+ raises( com::sun::star::lang::IllegalArgumentException ,
+ com::sun::star::lang::WrappedTargetException );
+
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XMultiPropertySet.idl b/udkapi/com/sun/star/beans/XMultiPropertySet.idl
new file mode 100644
index 0000000000..407a6e449b
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XMultiPropertySet.idl
@@ -0,0 +1,138 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** provides access to multiple properties with a single call.
+ */
+published interface XMultiPropertySet: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the XPropertySetInfo interface, which describes
+ all properties of the object to which this interface belongs.
+ NULL is returned if the object cannot or will
+ not provide information about the properties.
+
+ @see XPropertySet::getPropertySetInfo
+ */
+ com::sun::star::beans::XPropertySetInfo getPropertySetInfo();
+
+
+ /** sets the values to the properties with the specified names.
+
+ <p>The values of the properties must change before the bound
+ events are fired. The values of the constrained properties
+ should change after the vetoable events are fired and only if no
+ exception occurred. Unknown properties are ignored. </p>
+
+ @param aPropertyNames
+ specifies the names of the properties. All names must be unique.
+ This sequence must be alphabetically sorted.
+
+ @param aValues
+ contains the new values of the properties. The order is the same
+ as in <var>aPropertyNames</var>.
+
+ @throws IllegalArgumentException
+ if one of the new values cannot be converted to the type
+ of the underlying property by an identity or widening conversion.
+
+ @throws com::sun::star::lang:WrappedTargetException
+ if the implementation has an internal reason for the exception.
+ In this case the original exception is wrapped.
+ */
+ void setPropertyValues( [in] sequence<string> aPropertyNames,
+ [in] sequence<any> aValues )
+ raises( com::sun::star::beans::PropertyVetoException,
+ com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** @returns
+ a sequence of all values of the properties which are specified by their names.
+
+ <p>The order of the values in the returned sequence will be the same
+ as the order of the names in the argument. </p>
+
+ @param aPropertyNames
+ specifies the names of the properties.
+ This sequence must be alphabetically sorted.
+ */
+ sequence<any> getPropertyValues( [in] sequence<string> aPropertyNames );
+
+
+ /** adds an XPropertiesChangeListener to the
+ specified property with the specified names.
+
+ <p>The implementation can ignore the names of the properties
+ and fire the event on all properties. </p>
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+
+ @param aPropertyNames
+ specifies the names of the properties.
+
+ @param xListener
+ contains the listener for the property change events.
+
+ @see removePropertiesChangeListener
+ */
+ void addPropertiesChangeListener( [in] sequence<string> aPropertyNames,
+ [in] com::sun::star::beans::XPropertiesChangeListener xListener );
+
+
+ /** removes an XPropertiesChangeListener from the listener list.
+
+ <p>It is a "noop" if the listener is not registered. </p>
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+
+ @param xListener
+ contains the listener to be removed.
+
+ @see addPropertiesChangeListener
+ */
+ void removePropertiesChangeListener(
+ [in] com::sun::star::beans::XPropertiesChangeListener xListener );
+
+
+ /** fires a sequence of PropertyChangeEvents to the specified
+ listener.
+
+ @param aPropertyNames
+ specifies the sorted names of the properties.
+
+ @param xListener
+ contains the listener for the property change events.
+ */
+ void firePropertiesChangeEvent( [in] sequence<string> aPropertyNames,
+ [in] com::sun::star::beans::XPropertiesChangeListener xListener );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XMultiPropertyStates.idl b/udkapi/com/sun/star/beans/XMultiPropertyStates.idl
new file mode 100644
index 0000000000..c1ba6c30ff
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XMultiPropertyStates.idl
@@ -0,0 +1,103 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+/** makes it possible to query information about the state of
+ one or more properties.
+
+ <p>The state of a property contains information about the source of
+ the value, e.g. the object itself, a default or a stylesheet.
+ For more information see PropertyState.
+*/
+published interface XMultiPropertyStates: com::sun::star::uno::XInterface
+{
+ /** @returns
+ a sequence of the states of the properties which are specified
+ by their names.
+
+ <p>The order of the states is correlating to the order of the
+ given property names.
+
+ @param aPropertyName
+ specifies the names of the properties. All names must be unique.
+ This sequence must be alphabetically sorted.
+ */
+ sequence<com::sun::star::beans::PropertyState> getPropertyStates(
+ [in] sequence<string> aPropertyName )
+ raises( com::sun::star::beans::UnknownPropertyException );
+
+ /** sets all properties to their default values.
+
+ <p>Each value depends on the implementation of this interface.
+ If it is a bound property, you must change the value before
+ the change events are fired. If it is a constrained property, you
+ must fire the vetoable event before you change the property value.
+ </p>
+ */
+ void setAllPropertiesToDefault();
+
+ /** sets the specified properties to their default values.
+
+ <p>Each value depends on the implementation of this interface.
+ If it is a bound property, you must change the value before
+ the change events are fired. If it is a constrained property, you
+ must fire the vetoable event before you change the property value. </p>
+
+ @param aPropertyNames
+ specifies the names of the properties. All names must be unique.
+ This sequence must be alphabetically sorted.
+
+ @throws UnknownPropertyException
+ if one of the properties does not exist.
+ */
+ void setPropertiesToDefault( [in] sequence<string> aPropertyNames )
+ raises( com::sun::star::beans::UnknownPropertyException );
+
+ /** @returns
+ the default values of the properties with the specified names.
+
+ <p>If no default exists, is not known, or is void,
+ then the return type at the corresponding position in the
+ sequence returned is `void`. </p>
+
+ @param aPropertyNames
+ specifies the names of the properties. All names must be unique.
+ This sequence must be alphabetically sorted.
+
+ @throws UnknownPropertyException
+ if one of the properties does not exist.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ if the implementation has an internal reason for the exception.
+ In this case the original exception is wrapped into that
+ com::sun::star::lang::WrappedTargetException.
+ */
+ sequence<any> getPropertyDefaults(
+ [in] sequence<string> aPropertyNames )
+ raises( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::lang::WrappedTargetException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XPropertiesChangeListener.idl b/udkapi/com/sun/star/beans/XPropertiesChangeListener.idl
new file mode 100644
index 0000000000..02d1932a8c
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XPropertiesChangeListener.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** receives events which get fired whenever a bound property is changed.
+ */
+published interface XPropertiesChangeListener: com::sun::star::lang::XEventListener
+{
+
+ /** gets called when bound properties are changed.
+
+ @param aEvent
+ contains a sequence of PropertyChangeEvent objects
+ which describe the event source and the properties that have
+ changed.
+ */
+ void propertiesChange( [in] sequence<com::sun::star::beans::PropertyChangeEvent> aEvent );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XPropertiesChangeNotifier.idl b/udkapi/com/sun/star/beans/XPropertiesChangeNotifier.idl
new file mode 100644
index 0000000000..3d69bd6496
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XPropertiesChangeNotifier.idl
@@ -0,0 +1,48 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module beans {
+
+
+/** specifies a notifier for changed property values@see XPropertiesChangeListener
+ */
+published interface XPropertiesChangeNotifier: com::sun::star::uno::XInterface
+{
+
+ /** adds an XPropertiesChangeListener to the
+ specified properties with the specified names.
+ */
+ void addPropertiesChangeListener(
+ [in] sequence<string> PropertyNames,
+ [in] com::sun::star::beans::XPropertiesChangeListener Listener );
+
+
+ /** removes an XPropertiesChangeListener from the
+ listener list.
+ */
+ void removePropertiesChangeListener(
+ [in] sequence<string> PropertyNames,
+ [in] com::sun::star::beans::XPropertiesChangeListener Listener );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XProperty.idl b/udkapi/com/sun/star/beans/XProperty.idl
new file mode 100644
index 0000000000..21a67e3cda
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XProperty.idl
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module beans {
+
+
+/** Is implemented by objects that also are a property of
+ some other object.
+
+ <p> Provides access to traits of this object that would
+ otherwise only be available from a containing
+ XPropertySet via its
+ XPropertySetInfo.
+ </p>
+
+ */
+published interface XProperty: com::sun::star::uno::XInterface
+{
+ /** @returns
+ the specification of this object as Property.
+
+ */
+ com::sun::star::beans::Property getAsProperty();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XPropertyAccess.idl b/udkapi/com/sun/star/beans/XPropertyAccess.idl
new file mode 100644
index 0000000000..8de04a7dff
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XPropertyAccess.idl
@@ -0,0 +1,61 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** makes it possible to access all property values and to set them at once.
+
+ <p>In most cases this interface will be in addition to
+ XPropertySet. It is especially useful for remote
+ communication because it lessens the number of calls for getting
+ property values; that is especially important because these calls
+ are necessarily synchronous. </p>
+
+ <p>Another advantage of this method is that conflicts are avoided
+ if property value restrictions depend on the value of other properties.</p>
+ */
+published interface XPropertyAccess: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ a sequence of all property values within the object in a single call.
+ */
+ sequence<com::sun::star::beans::PropertyValue> getPropertyValues();
+
+
+ /** sets the values of given properties.
+
+ <p>All properties which are not contained in the sequence
+ <var>aProps</var> will be left unchanged.</p>
+ */
+ void setPropertyValues( [in] sequence<com::sun::star::beans::PropertyValue> aProps )
+ raises( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::beans::PropertyVetoException,
+ com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XPropertyBag.idl b/udkapi/com/sun/star/beans/XPropertyBag.idl
new file mode 100644
index 0000000000..f6c90c77ae
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XPropertyBag.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module beans {
+
+
+/**
+ @since LibreOffice 4.1
+ */
+published interface XPropertyBag
+{
+ interface com::sun::star::beans::XPropertySet;
+
+ interface com::sun::star::beans::XPropertyContainer;
+
+ interface com::sun::star::beans::XPropertyAccess;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XPropertyChangeListener.idl b/udkapi/com/sun/star/beans/XPropertyChangeListener.idl
new file mode 100644
index 0000000000..d5cb1b4a18
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XPropertyChangeListener.idl
@@ -0,0 +1,40 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** is used to receive PropertyChangeEvents
+ whenever a bound property is changed.
+ */
+published interface XPropertyChangeListener: com::sun::star::lang::XEventListener
+{
+
+ /** is called when a bound property is changed.
+ */
+ void propertyChange( [in] com::sun::star::beans::PropertyChangeEvent evt );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XPropertyContainer.idl b/udkapi/com/sun/star/beans/XPropertyContainer.idl
new file mode 100644
index 0000000000..002027ce8f
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XPropertyContainer.idl
@@ -0,0 +1,75 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module beans {
+
+
+/** makes it possible to add and remove properties to or from an object.
+
+ <p>Some scripting engines cannot access properties directly when the
+ property set is changed. Please use XPropertySet::getPropertyValue()
+ etc. in this case. </p>
+ */
+published interface XPropertyContainer: com::sun::star::uno::XInterface
+{
+
+ /** adds a property to the object.
+
+ @param Name
+ specifies the name of the new property.
+
+ @param Attributes
+ specifies the property attributes, see PropertyAttribute.
+
+ @param DefaultValue
+ specifies the type of the new property and a potential default value.
+
+ @throws PropertyExistException
+ if a property with the same name already exists.
+
+ @throws IllegalTypeException
+ if the specified type is not allowed.
+
+ */
+ void addProperty( [in] string Name,
+ [in] short Attributes,
+ [in] any DefaultValue )
+ raises( com::sun::star::beans::PropertyExistException,
+ com::sun::star::beans::IllegalTypeException,
+ com::sun::star::lang::IllegalArgumentException );
+
+
+ /** removes a property from the object.
+
+ @param Name
+ specified the name of the property.
+
+ @throws UnknownPropertyException
+ if the property does not exist.
+ */
+ void removeProperty( [in] string Name )
+ raises( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::beans::NotRemoveableException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XPropertySet.idl b/udkapi/com/sun/star/beans/XPropertySet.idl
new file mode 100644
index 0000000000..3daff54e81
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XPropertySet.idl
@@ -0,0 +1,165 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** provides information about and access to the
+ properties from an implementation.
+
+ <p>There are three types of properties: </p>
+
+ <ul>
+ <li>bound properties </li>
+ <li>constrained properties </li>
+ <li>free properties </li>
+ </ul>
+
+ <p>You can listen to changes of bound properties with the
+ XPropertyChangeListener and you can veto changes
+ of constrained properties with the XVetoableChangeListener. </p>
+
+ <p>To implement inaccurate name access, you must support the
+ interface XExactName. </p>
+
+ @see com::sun::star::beans::XExactName
+ */
+published interface XPropertySet: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the XPropertySetInfo interface, which
+ describes all properties of the object which supplies this
+ interface.
+
+ @returns
+ NULL if the implementation cannot or will
+ not provide information about the properties; otherwise the
+ interface XPropertySetInfo is returned.
+ */
+ com::sun::star::beans::XPropertySetInfo getPropertySetInfo();
+
+
+ /** sets the value of the property with the specified name.
+
+ <p>If it is a bound property the value will be changed before
+ the change event is fired. If it is a constrained property
+ a vetoable event is fired before the property value can be
+ changed. </p>
+
+ @throws com::sun::star::beans::PropertyVetoException
+ if the property is read-only or vetoable
+ and one of the listeners throws this exception
+ because of an unaccepted new value.
+ */
+ void setPropertyValue( [in] string aPropertyName,
+ [in] any aValue )
+ raises( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::beans::PropertyVetoException,
+ com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** @returns
+ the value of the property with the specified name.
+
+ @param PropertyName
+ This parameter specifies the name of the property.
+
+ @throws UnknownPropertyException
+ if the property does not exist.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ if the implementation has an internal reason for the exception.
+ In this case the original exception is wrapped into that
+ com::sun::star::lang::WrappedTargetException.
+ */
+ any getPropertyValue( [in] string PropertyName )
+ raises( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** adds an XPropertyChangeListener to the specified property.
+
+ <p>An empty name ("") registers the listener to all bound
+ properties. If the property is not bound, the behavior is
+ not specified. </p>
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+
+ @see removePropertyChangeListener
+ */
+ void addPropertyChangeListener( [in] string aPropertyName,
+ [in] com::sun::star::beans::XPropertyChangeListener xListener )
+ raises( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** removes an XPropertyChangeListener from
+ the listener list.
+
+ <p>It is a "noop" if the listener is not registered. </p>
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+
+ @see addPropertyChangeListener
+ */
+ void removePropertyChangeListener( [in] string aPropertyName,
+ [in] com::sun::star::beans::XPropertyChangeListener aListener )
+ raises( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** adds an XVetoableChangeListener to the specified
+ property with the name PropertyName.
+
+ <p>An empty name ("") registers the listener to all
+ constrained properties. If the property is not constrained,
+ the behavior is not specified. </p>
+
+ @see removeVetoableChangeListener
+ */
+ void addVetoableChangeListener( [in] string PropertyName,
+ [in] com::sun::star::beans::XVetoableChangeListener aListener )
+ raises( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** removes an XVetoableChangeListener from the
+ listener list.
+
+ <p>It is a "noop" if the listener is not registered. </p>
+
+ @see addVetoableChangeListener
+ */
+ void removeVetoableChangeListener( [in] string PropertyName,
+ [in] com::sun::star::beans::XVetoableChangeListener aListener )
+ raises( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XPropertySetInfo.idl b/udkapi/com/sun/star/beans/XPropertySetInfo.idl
new file mode 100644
index 0000000000..eb39710cfe
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XPropertySetInfo.idl
@@ -0,0 +1,74 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** specifies a set of properties.
+
+ <p>There are three kinds of properties:
+ <ul>
+ <li>bound properties</li>
+ <li>constrained properties</li>
+ <li>free properties</li>
+ </ul>
+
+ <p>The specification only describes the properties, it does not contain
+ any values.</p>
+ */
+published interface XPropertySetInfo: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ a sequence with all property descriptors which are specified
+ within this XPropertySetInfo.
+ */
+ sequence<com::sun::star::beans::Property> getProperties();
+
+
+ /** @returns
+ the property with the specified name from the object.
+
+ @param aName
+ specifies the name of the property.
+
+ @throws UnknownPropertyException
+ if the property does not exist.
+ */
+ com::sun::star::beans::Property getPropertyByName( [in] string aName )
+ raises( com::sun::star::beans::UnknownPropertyException );
+
+
+ /** @returns
+ `TRUE` if a property with the specified name exist;
+ otherwise `FALSE` is returned.
+
+ @param Name
+ specifies the name of the property.
+ */
+ boolean hasPropertyByName( [in] string Name );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XPropertySetInfoChangeListener.idl b/udkapi/com/sun/star/beans/XPropertySetInfoChangeListener.idl
new file mode 100644
index 0000000000..26b81dd936
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XPropertySetInfoChangeListener.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module beans {
+
+
+/** a listener for events related to XPropertySetInfos.
+
+ @see PropertySetInfoChangeEvent
+ @see XPropertySetInfoChangeNotifier
+ */
+published interface XPropertySetInfoChangeListener: com::sun::star::lang::XEventListener
+{
+
+ /** is called whenever changes of a XPropertySetInfo shall
+ be propagated.
+ */
+ void propertySetInfoChange( [in] PropertySetInfoChangeEvent evt );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XPropertySetInfoChangeNotifier.idl b/udkapi/com/sun/star/beans/XPropertySetInfoChangeNotifier.idl
new file mode 100644
index 0000000000..368ea11238
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XPropertySetInfoChangeNotifier.idl
@@ -0,0 +1,53 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module beans {
+
+
+/** a notifier for changes of XPropertySetInfos.
+
+ @see PropertySetInfoChangeEvent
+ @see XPropertySetInfoChangeListener
+ */
+published interface XPropertySetInfoChangeNotifier: com::sun::star::uno::XInterface
+{
+
+ /** registers a listener for PropertySetInfoChangeEvents.
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+ */
+ void addPropertySetInfoChangeListener(
+ [in] XPropertySetInfoChangeListener Listener );
+
+
+ /** removes a listener for PropertySetInfoChangeEvents.
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+ */
+ void removePropertySetInfoChangeListener(
+ [in] XPropertySetInfoChangeListener Listener );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XPropertySetOption.idl b/udkapi/com/sun/star/beans/XPropertySetOption.idl
new file mode 100644
index 0000000000..d397396c03
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XPropertySetOption.idl
@@ -0,0 +1,24 @@
+/* -*- 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/.
+ */
+
+module com { module sun { module star { module beans {
+
+interface XPropertySetOption: com::sun::star::uno::XInterface
+{
+ /**
+ * Turn on or off notifying change listeners on property value change.
+ * This option is turned on by default.
+ */
+ void enableChangeListenerNotification( [in] boolean bEnable );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XPropertyState.idl b/udkapi/com/sun/star/beans/XPropertyState.idl
new file mode 100644
index 0000000000..6c86b7a429
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XPropertyState.idl
@@ -0,0 +1,114 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** makes it possible to query information about the state of
+ one or more properties.
+
+ <p>The state contains the information if:</p>
+ <ul>
+ <li>a value is available or void</li>
+ <li>the value is stored in the object itself, or if a default value is to be used</li>
+ <li>and if the value cannot be determined, due to ambiguity
+ (multi selection with multiple values).</li>
+ </ul>
+ */
+published interface XPropertyState: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the state of the property.
+
+ @param PropertyName
+ specifies the name of the property.
+
+ @throws UnknownPropertyException
+ if the property does not exist.
+ */
+ com::sun::star::beans::PropertyState getPropertyState(
+ [in] string PropertyName )
+ raises( com::sun::star::beans::UnknownPropertyException );
+
+
+ /** @returns
+ a sequence of the states of the properties which are specified
+ by their names.
+
+ <p>The order of the states is correlating to the order of the
+ given property names. </p>
+
+ @param aPropertyName
+ contains the sequence of property names.
+
+ @throws UnknownPropertyException
+ if one property does not exist.
+ */
+ sequence<com::sun::star::beans::PropertyState> getPropertyStates(
+ [in] sequence<string> aPropertyName )
+ raises( com::sun::star::beans::UnknownPropertyException );
+
+
+ /** Sets the property to default value.
+
+ <p>The value depends on the implementation of this interface.
+ If it is a bound property, you must change the value before
+ the change events are fired. If it is a constrained property, you
+ must fire the vetoable event before you change the property value.
+ </p>
+
+ @param PropertyName
+ specifies the name of the property.
+
+ @throws UnknownPropertyException
+ if the property does not exist.
+ */
+ void setPropertyToDefault( [in] string PropertyName )
+ raises( com::sun::star::beans::UnknownPropertyException );
+
+
+ /** @returns
+ the default value of the property with the name PropertyName.
+
+ <p>If no default exists, is not known or is void,
+ then the return type is `void`.
+
+ @param aPropertyName
+ specifies the name of the property.
+
+ @throws UnknownPropertyException
+ if the property does not exist.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ if the implementation has an internal reason for the exception.
+ In this case the original exception is wrapped into that
+ com::sun::star::lang::WrappedTargetException.
+ */
+ any getPropertyDefault( [in] string aPropertyName )
+ raises( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::lang::WrappedTargetException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XPropertyStateChangeListener.idl b/udkapi/com/sun/star/beans/XPropertyStateChangeListener.idl
new file mode 100644
index 0000000000..ec6f824808
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XPropertyStateChangeListener.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** receives events which get fired whenever the state of a bound
+ property is changed.
+ */
+published interface XPropertyStateChangeListener: com::sun::star::lang::XEventListener
+{
+
+ /** is called when a bound property's state is changed.
+
+ @param aEvent
+ describes the event source and the property that has changed.
+ */
+ void propertyStateChange( [in] com::sun::star::beans::PropertyStateChangeEvent aEvent );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XPropertyWithState.idl b/udkapi/com/sun/star/beans/XPropertyWithState.idl
new file mode 100644
index 0000000000..925bed7c9a
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XPropertyWithState.idl
@@ -0,0 +1,89 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module beans {
+
+
+/** makes it possible to query information about the state of
+ this object, seen as a property contained in a property set.
+
+ <p> This interface provides direct access to operations
+ that are available if the containing property set
+ implements XPropertyState.
+ </p>
+
+ <p>The state contains the information if:</p>
+ <ul>
+ <li>a value is available or void</li>
+ <li>the value is stored in the object itself, or if a default value is being used</li>
+ <li>or if the value cannot be determined, due to ambiguity
+ (multi selection with multiple values).</li>
+ </ul>
+
+ <p> Generally objects that implement this interface
+ also implement XProperty.
+ </p>
+ */
+published interface XPropertyWithState: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the state of this as a property.
+ */
+ com::sun::star::beans::PropertyState getStateAsProperty( );
+
+
+ /** sets this to its default value.
+
+ <p> The value depends on the implementation of this interface.
+ If this is a bound property, the value changes before
+ the change events are fired. If this is a constrained property,
+ the vetoable event is fired before the property value changes.
+ </p>
+
+ @throws com::sun::star::lang::WrappedTargetException
+ if the implementation has an internal reason for the exception.
+ In this case the original exception is wrapped into that
+ com::sun::star::lang::WrappedTargetException.
+ */
+ void setToDefaultAsProperty( )
+ raises( com::sun::star::lang::WrappedTargetException );
+
+
+ /** @returns
+ an object representing the default state of this object (as a property).
+
+ <p> If no default exists, is not known or is void,
+ then the return value is `NULL`.
+ </p>
+
+ @throws com::sun::star::lang::WrappedTargetException
+ if the implementation has an internal reason for the exception.
+ In this case the original exception is wrapped into that
+ com::sun::star::lang::WrappedTargetException.
+ */
+ com::sun::star::uno::XInterface getDefaultAsProperty( )
+ raises( com::sun::star::lang::WrappedTargetException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XTolerantMultiPropertySet.idl b/udkapi/com/sun/star/beans/XTolerantMultiPropertySet.idl
new file mode 100644
index 0000000000..0c31c4b53d
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XTolerantMultiPropertySet.idl
@@ -0,0 +1,127 @@
+/* -*- 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 .
+ */
+
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** provides access to multiple iformation of
+ a set of properties with a single call.
+
+ <p>The speciality of this interface is that none of the functions
+ will throw the usual exceptions associated with setting and retrieving
+ of property values. Instead the data for the failures is collected and
+ returned.</p>
+
+ <p>Note: There is no support for property change listeners in this
+ interface.</p>
+
+ @see com::sun::star::beans::XPropertySet
+ @see com::sun::star::beans::XMultiPropertySet
+ */
+published interface XTolerantMultiPropertySet : com::sun::star::uno::XInterface
+{
+
+ /** sets the values to the properties with the specified names.
+
+ @param aPropertyNames
+ specifies the names of the properties.
+ The property names must be sorted ascending.
+
+ <p>If the names are not sorted the behaviour of the method
+ is undefined!</p>
+
+ @param aValues
+ specifies the values of the properties.
+ The order of the values has to be the same as in the
+ <var>aPropertyNames</var> parameter int order to match
+ the property name with its value.
+
+ @returns
+ An empty sequence if all properties are successful set.
+
+ Otherwise for every property value that could not successfully
+ be set an entry of the
+ com::sun::star::beans::SetPropertyTolerantFailed
+ will be present in this sequence.
+ The order of the properties is also alphabetically ascending.
+
+ @throws IllegalArgumentException
+ if the number of property names and values do not match.
+
+ */
+ sequence< com::sun::star::beans::SetPropertyTolerantFailed > setPropertyValuesTolerant(
+ [in] sequence< string > aPropertyNames,
+ [in] sequence< any > aValues )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+
+ /** retrieve the values of the specified properties
+
+ <p>The count and order of the values in the returned sequence
+ will be the same as the order of the names in the argument.</p>
+
+ @param aPropertyNames
+ specifies the names of the properties.
+ The property names must be sorted ascending.
+
+ <p>If the names are not sorted the behaviour of the method
+ is undefined!</p>
+
+ @returns
+ a sequence of type
+ com::sun::star::beans::GetPropertyTolerantResult
+ for each of the properties listed in <var>aPropertyNames</var>.
+ */
+ sequence< com::sun::star::beans::GetPropertyTolerantResult > getPropertyValuesTolerant(
+ [in] sequence< string > aPropertyNames );
+
+
+
+ /** retrieve only those values of the specified properties which
+ are direct values.
+
+ <p>Since the count of returned elements may be different from
+ the number of supplied property names the returned elements
+ will also state the name of the property.</p>
+
+ @param aPropertyNames
+ specifies the names of the properties.
+ The property names must be sorted ascending.
+
+ <p>If the names are not sorted the behaviour of the method
+ is undefined!</p>
+
+ @returns
+ a sequence of type
+ com::sun::star::beans::GetDirectPropertyTolerantResult
+ but only for those properties supplied whose state is
+ com::sun::star::beans::PropertyState::DIRECT_VALUE.
+ */
+ sequence< com::sun::star::beans::GetDirectPropertyTolerantResult > getDirectPropertyValuesTolerant(
+ [in] sequence< string > aPropertyNames );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/XVetoableChangeListener.idl b/udkapi/com/sun/star/beans/XVetoableChangeListener.idl
new file mode 100644
index 0000000000..5391865f6e
--- /dev/null
+++ b/udkapi/com/sun/star/beans/XVetoableChangeListener.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module beans {
+
+
+/** is used to receive PropertyChangeEvents
+ whenever a "constrained" property is changed.
+
+ <p>You can register an XVetoableChangeListener with
+ a source object so as to be notified of any constrained property updates.</p>
+ */
+published interface XVetoableChangeListener: com::sun::star::lang::XEventListener
+{
+
+ /** gets called when a constrained property is changed.
+ */
+ void vetoableChange( [in] com::sun::star::beans::PropertyChangeEvent aEvent )
+ raises( com::sun::star::beans::PropertyVetoException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/beans/theIntrospection.idl b/udkapi/com/sun/star/beans/theIntrospection.idl
new file mode 100644
index 0000000000..477c83dfb3
--- /dev/null
+++ b/udkapi/com/sun/star/beans/theIntrospection.idl
@@ -0,0 +1,29 @@
+/* -*- 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/.
+ */
+
+module com { module sun { module star { module beans {
+
+published interface XIntrospection;
+
+/** provides functionality to get information about an object's
+ properties and methods.
+
+ <p><strong>Important note:</strong>An object can only be inspected
+ completely if it supports the com::sun::star::lang::XTypeProvider
+ interface.</p>
+
+ <p>For details, see method XIntrospection::inspect().</p>
+
+ @since LibreOffice 4.3
+*/
+published singleton theIntrospection: XIntrospection;
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/Bridge.idl b/udkapi/com/sun/star/bridge/Bridge.idl
new file mode 100644
index 0000000000..7977ce33d2
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/Bridge.idl
@@ -0,0 +1,70 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module bridge {
+
+
+/** This meta service allows the bridgefactory service to instantiate an
+ interprocess bridge using a certain transfer protocol.
+
+ <p> Components, that support a certain protocol, must have at least two
+ service names: </p>
+
+ <ul>
+ <li> com.sun.star.bridge.Bridge </li>
+ <li> arbitrary-module-path.ProtocolnameBridge </li>
+ </ul>
+
+ <p>The protocol name should be written as common servicenames, first letter is a
+ capital letter, the rest in small letters postfixed by Bridge (e.g.:
+ <code>com.sun.star.bridge.UrpBridge</code> would be correct servicename for the
+ "urp" protocol). However, the protocol names are compared case insensitive.
+ If there exist two services supporting the same protocol, it is arbitrary
+ which one is chosen, so this should be omitted. </p>
+ */
+published service Bridge
+{
+ /** allows to initialize the bridge service with the necessary
+ arguments. The sequence&lt;any&gt; must have 4 members.
+
+ <ol>
+ <li> String: The unique name of the bridge or an empty string</li>
+ <li> String: The protocol, that shall be instantiated</li>
+ <li> XConnection: The bidirectional connection, the bridge should work on</li>
+ <li> XInstanceProvider:
+ The instance provider, that shall be called to access the initial object.</li>
+ </ol>
+ */
+ interface com::sun::star::lang::XInitialization;
+
+ /** The main interface of the service
+ */
+ interface com::sun::star::bridge::XBridge;
+
+ /** This interface allows to terminate the interprocess bridge.
+ */
+ interface com::sun::star::lang::XComponent;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/BridgeExistsException.idl b/udkapi/com/sun/star/bridge/BridgeExistsException.idl
new file mode 100644
index 0000000000..5969f669dc
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/BridgeExistsException.idl
@@ -0,0 +1,32 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module bridge {
+
+/** Indicates, that it was tried to create a remote bridge with a name,
+ which already existed.
+ */
+published exception BridgeExistsException: com::sun::star::uno::Exception
+{
+};
+
+
+};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/BridgeFactory.idl b/udkapi/com/sun/star/bridge/BridgeFactory.idl
new file mode 100644
index 0000000000..513bf4e69f
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/BridgeFactory.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module bridge {
+
+
+/** allows to create new or access existing interprocess bridges.
+
+ <p> It enumerates at the servicemanager all services supporting
+ the meta service com.sun.star.bridge.Bridge to get all known, possible
+ protocols.
+
+ @see com::sun::star::bridge::Bridge
+ */
+published service BridgeFactory : com::sun::star::bridge::XBridgeFactory2;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/IiopBridge.idl b/udkapi/com/sun/star/bridge/IiopBridge.idl
new file mode 100644
index 0000000000..6ec717a6de
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/IiopBridge.idl
@@ -0,0 +1,56 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module bridge {
+
+/** Concrete service of the meta service Bridge for iiop.
+
+ <p> This bridge works with the iiop protocol. </p>
+
+ @see com::sun::star::bridge::Bridge
+ */
+published service IiopBridge
+{
+ /** This interface allows to initialize the bridge service with the necessary
+ arguments. The sequence&lt;any&gt; must have 4 members.
+
+ <ol>
+ <li> String: The unique name of the bridge or an empty string</li>
+ <li> String: iiop</li>
+ <li> XConnection: The bidirectional connection, the bridge should work on</li>
+ <li> XInstanceProvider:
+ The instance provider, that shall be called to access the initial object.</li>
+ </ol>
+ */
+ interface com::sun::star::lang::XInitialization;
+
+ /** The main interface of the service.
+ */
+ interface com::sun::star::bridge::XBridge;
+
+ /** allows to terminate the interprocess bridge.
+ */
+ interface com::sun::star::lang::XComponent;
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/InvalidProtocolChangeException.idl b/udkapi/com/sun/star/bridge/InvalidProtocolChangeException.idl
new file mode 100644
index 0000000000..9e862db013
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/InvalidProtocolChangeException.idl
@@ -0,0 +1,42 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module bridge {
+
+
+/** Indicates, that a requested property change could not be executed by the
+ remote counterpart.
+
+ @see XProtocolProperties
+*/
+published exception InvalidProtocolChangeException : com::sun::star::uno::Exception
+{
+ /** The first invalid property.
+ */
+ ProtocolProperty invalidProperty;
+
+ /** Contains 1, if the property name is unknown to the thrower;
+ or contains 2, if the property's value can't be accepted by the thrower.
+ */
+ long reason;
+};
+
+};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/ModelDependent.idl b/udkapi/com/sun/star/bridge/ModelDependent.idl
new file mode 100644
index 0000000000..19cbe30cf2
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/ModelDependent.idl
@@ -0,0 +1,42 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module bridge {
+
+/** These constants are used to specify model-dependent representations.
+
+ <p>They are only used for creating bridges to other component models.
+
+ @see com::sun::star::bridge::XBridgeSupplier2
+ */
+published constants ModelDependent
+{
+ const short UNO = 1;
+ const short OLE = 2;
+ const short JAVA = 3;
+ const short CORBA = 4;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/OleApplicationRegistration.idl b/udkapi/com/sun/star/bridge/OleApplicationRegistration.idl
new file mode 100644
index 0000000000..255d719a86
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/OleApplicationRegistration.idl
@@ -0,0 +1,57 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module bridge {
+
+
+/** registers UNO objects as COM objects.
+
+ <p>
+ That is, COM class factories are registered with COM at runtime. The required
+ EXE server is the application which deploys this service. In order to access the
+ factories by COM API functions, there need to be proper registry entries. This service
+ does not provide for writing those entries.<p>
+ The instantiation of the registered objects can be carried out by any ordinary mechanism
+ which is used in a certain language to create COM components. For example, CreateObject
+ in Visual Basic, CoCreateInstance in C++.
+ </p><p>
+ Currently only a factory for the service com.sun.star.long.MultiServiceFactory is registered
+ by this service. The CLSID is {82154420-0FBF-11d4-8313-005004526AB4} and the ProgId is
+ com.sun.star.ServiceManager.
+ </p>
+
+ <p>OleApplicationRegistration does not provide any particular interface because the UNO objects
+ are registered while instantiating this service and deregistered
+ if the implementation, which makes use of this service, is being released.</p>
+ <p>
+ @deprecated
+ */
+published service OleApplicationRegistration
+{
+
+ interface com::sun::star::uno::XInterface;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/OleBridgeSupplier.idl b/udkapi/com/sun/star/bridge/OleBridgeSupplier.idl
new file mode 100644
index 0000000000..8a2fd5b141
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/OleBridgeSupplier.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module bridge {
+
+
+
+/** makes it possible to generate OLE bridges to UNO objects and vice versa.
+
+ <p>The service implements the XBridgeSupplier interface
+ and handles the model types ModelDependent::UNO and
+ ModelDependent::OLE. The service does not specify any
+ requirements on registering OLE objects and class factories. </p>
+ @deprecated
+ */
+published service OleBridgeSupplier
+{
+ interface com::sun::star::bridge::XBridgeSupplier;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/OleBridgeSupplier2.idl b/udkapi/com/sun/star/bridge/OleBridgeSupplier2.idl
new file mode 100644
index 0000000000..4f24ff1498
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/OleBridgeSupplier2.idl
@@ -0,0 +1,58 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module bridge {
+
+/** maps UNO types to oleautomation types and vice versa.<p>
+
+ The XBridgeSupplier2 interface provides the function <code>createBridge</code> which
+ maps a value of a UNO or Automation type to the desired target type. If a UNO interface
+ was mapped to IDispatch, then all objects (interfaces, structs) and other
+ types which
+ are obtained from that Automation object are automatically mapped to the corresponding
+ Automation types. Hence, if one provides an initial object which forms the root of all
+ other objects, such as a service manager, then only that object needs to be explicitly
+ mapped by a call to <code>createBridge</code>. The same holds true if an automation
+ object is mapped to a UNO interface.<br>
+ <p>The Automation types <code>VT_CY</code> and <code>VT_DATE</code> are not supported.
+ For Automation objects to be mapped they have to implement IDispatch interface. Other
+ COM interfaces,
+ except for IUnknown, are not supported.UNO interfaces and structs are mapped to IDispatch.
+
+ <p>The service implements the XBridgeSupplier2 interface
+ and handles the model types
+ com::sun::star::bridge::ModelDependent::UNO and
+ com::sun::star::bridge::ModelDependent::OLE.
+ The service does not specify any
+ requirements for registering OLE objects and class factories. </p>
+
+ @deprecated
+*/
+published service OleBridgeSupplier2
+{
+ interface com::sun::star::bridge::XBridgeSupplier2;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/OleBridgeSupplierVar1.idl b/udkapi/com/sun/star/bridge/OleBridgeSupplierVar1.idl
new file mode 100644
index 0000000000..cc744c816f
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/OleBridgeSupplierVar1.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module bridge {
+
+
+/** maps UNO types to COM types and vice versa. It is optimized for use in a
+ remote scenario. <p>
+The functionality is basically the same as
+com::sun::star::bridge::OleBridgeSupplier2.
+However, the implementation should be optimized for remote access. For example, it could
+try to reduce the calls into the remote process. Also it could create components on its own behalf in the remote process, if this increases performance.
+
+@deprecated
+*/
+published service OleBridgeSupplierVar1
+{
+ service OleBridgeSupplier2;
+
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/OleObjectFactory.idl b/udkapi/com/sun/star/bridge/OleObjectFactory.idl
new file mode 100644
index 0000000000..87647e9935
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/OleObjectFactory.idl
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module bridge {
+
+
+/** makes it possible to create COM objects as UNO objects.
+
+ <p>A COM object must have a ProgId since the ProgId is used as argument for
+ XMultiServiceFactory::createInstance. The only interfaces which are mapped
+ are <code>IUnknown</code> and <code>IDispatch</code>.
+ The created UNO objects support com::sun::star::script::XInvocation
+ if the original COM objects support IDispatch. </p>
+
+ <p>The optional parameters of the method
+ com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments()
+ are reserved for future use; at this time they are ignored. </p>
+
+ @deprecated
+ */
+published service OleObjectFactory
+{
+ interface com::sun::star::lang::XMultiServiceFactory;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/ProtocolProperty.idl b/udkapi/com/sun/star/bridge/ProtocolProperty.idl
new file mode 100644
index 0000000000..a05f8e4927
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/ProtocolProperty.idl
@@ -0,0 +1,33 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module bridge {
+
+/** string/value pair
+ */
+published struct ProtocolProperty
+{
+ string Name;
+
+ any Value;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/UnoUrlResolver.idl b/udkapi/com/sun/star/bridge/UnoUrlResolver.idl
new file mode 100644
index 0000000000..5828ed09c8
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/UnoUrlResolver.idl
@@ -0,0 +1,35 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module bridge {
+
+published interface XUnoUrlResolver;
+
+
+/** provides the ability to access remote processes,
+ resolving them by a UNO url.
+ <br>
+ */
+published service UnoUrlResolver: XUnoUrlResolver;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/UrpBridge.idl b/udkapi/com/sun/star/bridge/UrpBridge.idl
new file mode 100644
index 0000000000..28bbd687b5
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/UrpBridge.idl
@@ -0,0 +1,56 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module bridge {
+
+/** Concrete service of the meta service Bridge for the urp protocol.
+
+ <p>This bridge works with the urp protocol.
+
+ @see com::sun::star::bridge::Bridge
+ */
+published service UrpBridge
+{
+ /** This interface allows to initialize the bridge service with the necessary
+ arguments. The sequence&lt;any&gt; must have 4 members.
+
+ <ol>
+ <li> String: The unique name of the bridge or an empty string</li>
+ <li> String: urp</li>
+ <li> XConnection: The bidirectional connection, the bridge should work on</li>
+ <li> XInstanceProvider:
+ The instance provider, that shall be called to access the initial object.</li>
+ </ol>
+ */
+ interface com::sun::star::lang::XInitialization;
+
+ /** The main interface of the service.
+ */
+ interface com::sun::star::bridge::XBridge;
+
+ /** allows to terminate the interprocess bridge.
+ */
+ interface com::sun::star::lang::XComponent;
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/XBridge.idl b/udkapi/com/sun/star/bridge/XBridge.idl
new file mode 100644
index 0000000000..4baa420c31
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/XBridge.idl
@@ -0,0 +1,52 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module bridge {
+
+/** main interface for an interprocess bridge.
+ */
+published interface XBridge: com::sun::star::uno::XInterface
+{
+ /** tries to get an interface from the remote that is known by this name.
+
+ <p>In general, this method is called once to get the initial object from the
+ remote, but it is allowed to call the method multiple times. </p>
+
+ @param sInstanceName The name of the object, that shall be retrieved from the
+ remote process. The call is delegated to
+ com.sun.star.bridge.XInstanceProvider.getInstance() in the
+ remote process.
+ @see com::sun::star::bridge::XInstanceProvider
+ */
+ com::sun::star::uno::XInterface getInstance( [in] string sInstanceName );
+
+
+ /** name that the bridge got when it was created.
+ */
+ string getName();
+
+
+ /** a unique descriptive string: protocol + ":" + XConnection.getDescription()
+ */
+ string getDescription();
+};
+
+};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/XBridgeFactory.idl b/udkapi/com/sun/star/bridge/XBridgeFactory.idl
new file mode 100644
index 0000000000..2ba8873550
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/XBridgeFactory.idl
@@ -0,0 +1,78 @@
+/* -*- 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 .
+ */
+
+ module com { module sun { module star { module bridge {
+
+/** factory to create interprocess bridges.
+ */
+published interface XBridgeFactory: com::sun::star::uno::XInterface
+{
+ /** tries to create a UNO interprocess bridge.
+
+ @param sName
+ The name of the bridge. This allows other components to reuse
+ an already created bridge (using getBridge).
+ <p>
+ If empty, an anonymous bridge is created, which cannot be retrieved with
+ getBridge(). No BridgeExistsException can be thrown in this case.
+
+ @param sProtocol
+ The protocol, that will be used on the connection (e.g., urp) plus additional
+ comma separated name=value protocol properties.
+
+ @param aConnection
+ The connection, which is used to transfer the calls. The bridge expects to
+ own the connection, thus it will close the connection, in case it does not
+ need it anymore.
+
+ @param anInstanceProvider
+ gets called, when a request from remote comes in. You can pass a null reference
+ in case you don't want to export any objects.
+
+ @throws BridgeExistsException
+ There is already a bridge registered with this name. Use getBridge instead.
+
+ @throws IllegalArgumentException
+ The protocol is unknown or the connection is null.
+ */
+ XBridge createBridge(
+ [in] string sName,
+ [in] string sProtocol ,
+ [in] com::sun::star::connection::XConnection aConnection ,
+ [in] XInstanceProvider anInstanceProvider )
+ raises ( BridgeExistsException , com::sun::star::lang::IllegalArgumentException );
+
+
+ /** tries to get a bridge by this name.
+ <p> Cannot be retrieved, when the bridge got disposed before.
+
+ @return An existing remote bridge or a null reference.
+ */
+ XBridge getBridge( [in] string sName );
+
+ /** returns the sequence of all named and unnamed UNO interprocess
+ bridges that are instantiated at the time the call is made.
+ */
+ sequence < XBridge > getExistingBridges( );
+};
+
+
+};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/XBridgeFactory2.idl b/udkapi/com/sun/star/bridge/XBridgeFactory2.idl
new file mode 100644
index 0000000000..f74c9cb578
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/XBridgeFactory2.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module bridge {
+
+
+/**
+ Provides a unified interface for the BridgeFactory service to implement.
+
+ @since LibreOffice 4.0
+ */
+published interface XBridgeFactory2
+{
+ /** The main interface of the service
+ */
+ interface com::sun::star::bridge::XBridgeFactory;
+
+ /** This interface allows to break possible cyclic references.
+ */
+ interface com::sun::star::lang::XComponent;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/XBridgeSupplier.idl b/udkapi/com/sun/star/bridge/XBridgeSupplier.idl
new file mode 100644
index 0000000000..4b0a95a50d
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/XBridgeSupplier.idl
@@ -0,0 +1,77 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module bridge {
+
+
+
+/** defines the interface for creating bridges to other object models.
+
+ <p>Because bridges sometimes can not be generated in an address space,
+ the implementation needs to check the address space of the caller by
+ comparing the machine and process ID against its own. These IDs are
+ provided by the UNO runtime. </p>
+
+ <p>All objects, whether they are part of the UNO object model or not,
+ are carried in an `any`. The representation of this object
+ is heavily model-dependent and has to be specified in the following list: </p>
+
+ <dl>
+ <dt>UNO: </dt>
+ <dd>The any carries normal UNO types, which can be any base type,
+ struct, sequence, enum, or interface. </dd>
+
+ <dt>OLE: </dt>
+ <dd>The any carries an `unsigned long` (on 32-bit systems)
+ or an `unsigned hyper` (on 64-bit systems), which is
+ interpreted as a variant pointer. The any does not control the
+ lifetime of the represented variant. That implies that the caller
+ has the responsibility of freeing the OLE resources represented
+ by the any value. </dd>
+
+ <dt>JAVA: </dt>
+ <dd>not yet specified. </dd>
+ </dl>
+
+ <p>Any implementation can supply its own bridges to other object
+ models by implementing this interface and returning the bridge
+ when the method is called with itself as the first parameter. </p>
+
+ @see com::sun::star::bridge::OleBridgeSupplier
+ @deprecated
+ */
+published interface XBridgeSupplier: com::sun::star::uno::XInterface
+{
+
+ /** creates a bridge to provide an object of one object model with another.
+ */
+ any createBridge( [in] any modelDepObject,
+ [in] com::sun::star::uno::Uik MachineId,
+ [in] long ProcessId,
+ [in] short sourceModelType,
+ [in] short destModelType )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/XBridgeSupplier2.idl b/udkapi/com/sun/star/bridge/XBridgeSupplier2.idl
new file mode 100644
index 0000000000..6006befd01
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/XBridgeSupplier2.idl
@@ -0,0 +1,94 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module bridge {
+
+
+/** defines the interface for creating bridges to other object models.
+
+ <p>
+ The created bridges are transparent to the user. That is, if one maps
+ an interface into the target model, then the resulting target interface
+ is a bridge implementation, that is not being noticed by an user. During
+ a call on that interface, the bridge is invoked to convert the arguments
+ and carry out a call according to the rules of the source model.
+ Return values are automatically mapped to the types of the target model.
+ </p>
+ <p>
+ Simple types are mapped to simple target types. That is, there is no additional
+ bridging code involved when those types are being used.
+ </p>
+
+ <p>Sometimes a bridge cannot be created, depending on whether a program uses
+ the XBridgeSupplier2 interface remotely. Assuming one wants to bridge an
+ OLE Automation object to UNO by calling createBridge on a proxy, then the UNO remote
+ bridge would not recognise that the Any argument contains an IDispatch interface.
+ Therefore it cannot marshal it as COM requires it and the bridgeing would fail.
+ To prevent this, implementations of this interface should be aware of this scenario and
+ if necessary take the appropriate steps. The process ID argument to the createBridge
+ function represents the calling process and may be used by the implementation to determine
+ if it is being accessed remotely.
+ </p>
+ <p>All objects, whether they are part of the UNO object model or not,
+ are carried in an `any`. The representation of this object
+ is heavily model-dependent and has to be specified in the following list: </p>
+
+ <dl>
+ <dt>UNO: </dt>
+ <dd>The any carries normal UNO types, which can be any base type,
+ struct, sequence, enum or interface. </dd>
+
+ <dt>OLE: </dt>
+ <dd>The any carries an `unsigned long` (on 32-bit systems)
+ or an `unsigned hyper` (on 64-bit systems), which is
+ interpreted as a variant pointer. The any does not control the
+ lifetime of the represented variant. That implies that the caller
+ has the responsibility of freeing the OLE resources represented
+ by the any value. </dd>
+
+ <dt>JAVA: </dt>
+ <dd>not specified yet. </dd>
+ </dl>
+
+ </p>
+ <p>Any implementation can supply its own bridges to other object
+ models by implementing this interface and returning the bridge
+ when the method XBridgeSupplier2::createBridge()
+ is called with itself as the first parameter. </p>
+
+ @see com::sun::star::bridge::OleBridgeSupplier2
+ */
+published interface XBridgeSupplier2: com::sun::star::uno::XInterface
+{
+ /** creates a bridge to provide an object of one object model with another.
+ */
+ any createBridge( [in] any aModelDepObject,
+ [in] sequence< byte > aProcessId,
+ [in] short nSourceModelType,
+ [in] short nDestModelType )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/XInstanceProvider.idl b/udkapi/com/sun/star/bridge/XInstanceProvider.idl
new file mode 100644
index 0000000000..f4c4e6c94a
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/XInstanceProvider.idl
@@ -0,0 +1,52 @@
+/* -*- 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 .
+ */
+
+ module com { module sun { module star { module bridge {
+
+
+/** allows to export UNO objects to other processes.
+
+ @see XBridge
+ */
+published interface XInstanceProvider: com::sun::star::uno::XInterface
+{
+
+ /** gets called, when an initial object is requested from a remote process.
+ You may either create a new instance or return an existing object.
+
+ @param sInstanceName
+ The name of the requested object.
+
+ @returns
+ the object associated with the name. The return value may be null in case
+ there is no object to offer for this string. In this case, XBridge.getInstance()
+ (in the other process) will also return a null reference.
+
+ @throws NoSuchElementException
+ You may throw this exception to indicate, that there is no object for this
+ name. Due to a specification bug, this exception will appear as a RuntimeException
+ at the XBridge.getInstance() method.
+ */
+ com::sun::star::uno::XInterface getInstance( [in] string sInstanceName )
+ raises ( com::sun::star::container::NoSuchElementException );
+};
+
+};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/XProtocolProperties.idl b/udkapi/com/sun/star/bridge/XProtocolProperties.idl
new file mode 100644
index 0000000000..a711b40082
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/XProtocolProperties.idl
@@ -0,0 +1,89 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module bridge {
+
+
+/** Bridge internal interface, that allows to change protocol settings of the remote
+ counter part.
+
+ <p>In general, this interface is implemented by the bridge itself. It must not
+ be called from outside the bridge.</p>
+
+ <p>INTERNAL INTERFACE, DO NOT USE IT ELSEWHERE!</p>
+*/
+published interface XProtocolProperties : com::sun::star::uno::XInterface
+{
+ /** called to get a list of bridge internal properties. Which properties can be retrieved,
+ is protocol dependent.
+
+ <p> The properties MUST NOT change between a requestChange and a commit change call.</p>
+ */
+ sequence< ProtocolProperty > getProperties( );
+
+ /** called to initiate a protocol change.
+
+ <p>This method should always be called in the scope of the local bridge setting object,
+ because the remote counter part may do such a call at the same time
+ (typically at startup time). </p>
+
+ @param nRandomNumber
+ In case both processes call requestChange at the same time,
+ the caller with the higher nRandomNumber is allowed to call
+ commitChange.
+
+ @returns
+ 1, if the caller may ( and MUST !!!) call commitChange.
+ 0, if the caller is not allowed to call commitChange. This can only happen,
+ if the other bridge has called requestChange at the same time and
+ nRandomNumber is smaller than the other bridge's nRandomNumber.
+ The remote counterpart is supposed to call commitChange within a small
+ time span. Please call requestChange() after the remote counterpart has
+ called commitChange().
+ -1 if the nRandomNumber is of the same value as the previously
+ sent requestChange (sent by the remote counterpart). This is a draw :o).
+ Generate a new random number and try again.
+ */
+ long requestChange( [in] long nRandomNumber );
+
+ /** called to commit a protocol change.
+
+ <p>It is only allowed to call commitChange, if requestChange
+ has been called previously and the return value was true. The new properties are
+ valid after the reply of commitChange has been received.
+ Note, that this is difficult for the callee, because it must marshal the reply
+ with the old settings. </p>
+
+ <p>All properties not mentioned in the list are unchanged.
+ Note that the bridge must be blocked for other threads,
+ before commitChange is sent and unblocked
+ after the reply has been received. This blocks the bridge.</p>
+
+ @throws InvalidProtocolChangeException
+ when the remote counterpart could not change at least one of the properties.
+ No property has been changed. requestChange must be called
+ again to initiate a new change of the protocol.
+ */
+ void commitChange( [in] sequence< ProtocolProperty > newValues )
+ raises ( com::sun::star::bridge::InvalidProtocolChangeException );
+};
+
+};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/XUnoUrlResolver.idl b/udkapi/com/sun/star/bridge/XUnoUrlResolver.idl
new file mode 100644
index 0000000000..820a4f8b2d
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/XUnoUrlResolver.idl
@@ -0,0 +1,45 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module bridge {
+
+
+/** allows to resolve an object using the uno-url.
+ */
+published interface XUnoUrlResolver: com::sun::star::uno::XInterface
+{
+
+ /** resolves an object using the given uno-url.
+ @param sUnoUrl the uno-url. The uno-url is specified
+ <a href="http://udk.openoffice.org/common/man/spec/uno-url.html">here</a>.
+
+ @returns the resolved object, in general a proxy for a remote object.
+ You can use it the same way as you use local references.
+ */
+ com::sun::star::uno::XInterface resolve( [in] string sUnoUrl )
+ raises (com::sun::star::connection::NoConnectException,
+ com::sun::star::connection::ConnectionSetupException,
+ com::sun::star::lang::IllegalArgumentException);
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/oleautomation/ApplicationRegistration.idl b/udkapi/com/sun/star/bridge/oleautomation/ApplicationRegistration.idl
new file mode 100644
index 0000000000..6559a6f894
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/oleautomation/ApplicationRegistration.idl
@@ -0,0 +1,61 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module bridge { module oleautomation {
+
+
+/** registers UNO objects as COM objects.
+ <p>
+ That is, COM class factories are registered with COM at runtime. The required
+ EXE server is the application which deploys this service. In order to access
+ the factories by COM API functions, there need to be proper registry entries.
+ This service does not provide for writing those entries.
+ </p>
+ <p>
+ The instantiation of the registered objects can be carried out by any
+ ordinary mechanism which is used in a certain language to create COM
+ components. For example, <code>CreateObject</code> in Visual Basic,
+ <code>CoCreateInstance</code> in C++.
+ </p>
+ <p>
+ Currently only a factory for the service
+ com::sun::star::lang::MultiServiceFactory is registered
+ by this service. The CLSID is {82154420-0FBF-11d4-8313-005004526AB4} and the
+ ProgId is com.sun.star.ServiceManager.
+ </p>
+ <p>
+ ApplicationRegistration does not provide any particular
+ interface because the UNO objects are registered while instantiating this
+ service and deregistered if the implementation, which makes use of this
+ service, is being released.
+ </p>
+ */
+service ApplicationRegistration
+{
+
+ interface com::sun::star::uno::XInterface;
+
+};
+
+
+}; }; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/oleautomation/BridgeSupplier.idl b/udkapi/com/sun/star/bridge/oleautomation/BridgeSupplier.idl
new file mode 100644
index 0000000000..ae8a38fc3b
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/oleautomation/BridgeSupplier.idl
@@ -0,0 +1,63 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module bridge { module oleautomation {
+
+/** maps UNO types to oleautomation types and vice versa.
+ <p>
+ The function
+ com::sun::star::bridge::XBridgeSupplier2::createBridge()
+ maps a value of a UNO or Automation type to the desired target type. If a UNO
+ interface was mapped to <code>IDispatch</code>, then all objects
+ (interfaces, structs) and other types which are obtained from that Automation
+ object are automatically mapped to the corresponding Automation types. Hence,
+ if one provides an initial object which forms the root of all other objects,
+ such as a service manager, then only that object needs to be explicitly
+ mapped by a call to
+ com::sun::star::bridge::XBridgeSupplier2::createBridge().
+ The same holds true if an automation object is mapped to a UNO interface.
+ </p>
+ <p>
+ For Automation objects to be mapped they have to implement
+ <code>IDispatch</code> interface. Other COM interfaces, except for
+ <code>IUnknown</code>, are not supported. UNO interfaces and structs are
+ mapped to <code>IDispatch</code>.
+ </p>
+ <p>
+ The service implements the
+ com::sun::star::bridge::XBridgeSupplier2 interface and
+ handles the model types
+ com::sun::star::bridge::ModelDependent::UNO and
+ com::sun::star::bridge::ModelDependent::OLE.
+ The service does not specify any requirements for registering OLE objects and
+ class factories.
+ </p>
+*/
+service BridgeSupplier
+{
+ interface com::sun::star::bridge::XBridgeSupplier2;
+
+};
+
+
+}; }; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/oleautomation/Currency.idl b/udkapi/com/sun/star/bridge/oleautomation/Currency.idl
new file mode 100644
index 0000000000..3279d0a938
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/oleautomation/Currency.idl
@@ -0,0 +1,51 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module bridge { module oleautomation {
+
+/** is the UNO representation of the Automation type <code>CY</code>, also know
+ as <code>CURRENCY</code>.
+ <p>
+ A <code>CY</code> could actually be represented as `hyper` in UNO
+ and therefore a typedef from `hyper` to a currency type would do.
+ But a typedef cannot be expressed in all language bindings. In the case
+ where no typedefs are supported the actual type is used. That is, a
+ typedef'd currency type would be represented as <code>long</code> in Java.
+ The information that the <code>long</code> is a currency type is lost.
+ </p>
+ <p>
+ When calling Automation objects from UNO the distinction between
+ `hyper` and a currency type is important. Therefore
+ Currency is declared as struct.
+ </p>
+
+ @since OOo 1.1.2
+ */
+struct Currency
+{
+ /** corresponds to the Automation type <code>CY</code>.
+ */
+ hyper Value;
+};
+
+}; }; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/oleautomation/Date.idl b/udkapi/com/sun/star/bridge/oleautomation/Date.idl
new file mode 100644
index 0000000000..499c57cb71
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/oleautomation/Date.idl
@@ -0,0 +1,50 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module bridge { module oleautomation {
+
+/** is the UNO representation of the Automation type <code>DATE</code>.
+ <p>
+ A <code>DATE</code> could actually be represented as `double` in
+ UNO and therefore a typedef from `double` to a date type would
+ do. But a typedef cannot be expressed in all language bindings. In the
+ case where no typedefs are supported the actual type is used. That is, a
+ typedef'd date type would be represented as <code>double</code> in Java.
+ The information that the `double` is a date type is lost.
+ </p>
+ <p>
+ When calling Automation objects from UNO the distinction between
+ `double` and date type is important. Therefore Date
+ is declared as struct.
+ </p>
+
+ @since OOo 1.1.2
+ */
+struct Date
+{
+ /** corresponds to the Automation type <code>DATE</code>.
+ */
+ double Value;
+};
+
+}; }; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/oleautomation/Decimal.idl b/udkapi/com/sun/star/bridge/oleautomation/Decimal.idl
new file mode 100644
index 0000000000..526f7a26df
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/oleautomation/Decimal.idl
@@ -0,0 +1,54 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module bridge { module oleautomation {
+
+/** is the UNO representation of the Automation type <code>DECIMAL</code>.
+
+
+ @since OOo 1.1.2
+ */
+struct Decimal
+{
+ /** corresponds to <code>DECIMAL.scale</code>.
+ */
+ byte Scale;
+
+ /** corresponds to <code>DECIMAL.sign</code>.
+ */
+ byte Sign;
+
+ /** corresponds to <code>DECIMAL.Lo32</code>.
+ */
+ unsigned long LowValue;
+
+ /** corresponds to <code>DECIMAL.Mid32</code>.
+ */
+ unsigned long MiddleValue;
+
+ /** corresponds to <code>DECIMAL.Hi32</code>.
+ */
+ unsigned long HighValue;
+};
+
+}; }; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/oleautomation/Factory.idl b/udkapi/com/sun/star/bridge/oleautomation/Factory.idl
new file mode 100644
index 0000000000..1ea876eef6
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/oleautomation/Factory.idl
@@ -0,0 +1,49 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module bridge { module oleautomation {
+
+
+/** makes it possible to create COM objects as UNO objects.
+
+ <p>
+ A COM object must have a ProgId since the ProgId is used as argument for
+ com::sun::star::lang::XMultiServiceFactory::createInstance().
+ The only interfaces which are mapped are <code>IUnknown</code> and
+ <code>IDispatch</code>. The created UNO objects support
+ com::sun::star::script::XInvocation if the original COM
+ objects support <code>IDispatch</code>.
+ </p>
+ <p>
+ The optional parameters of the method
+ com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments()
+ are reserved for future use; at this time they are ignored.
+ </p>
+ */
+service Factory
+{
+ interface com::sun::star::lang::XMultiServiceFactory;
+};
+
+
+}; }; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/oleautomation/NamedArgument.idl b/udkapi/com/sun/star/bridge/oleautomation/NamedArgument.idl
new file mode 100644
index 0000000000..6dce5dad38
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/oleautomation/NamedArgument.idl
@@ -0,0 +1,53 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module bridge { module oleautomation {
+
+/** represents a named argument in a call to a method of an Automation object.
+ <p>
+ The Automation bridge accepts values of NamedArgument when a
+ call to an Automation object is made. The call is done through the
+ com::sun::star::script::XInvocation::invoke()
+ method, which takes all arguments in a sequence of anys. Usually the order
+ of the arguments must correspond to the order of arguments in the Automation
+ method. By using instances of NamedArgument the arguments in the
+ sequence can be unordered. The Automation object being called must support
+ named arguments, otherwise the call fails.
+ </p>
+
+ @since OOo 1.1.2
+ */
+struct NamedArgument
+{
+ /** The name of the argument, for which
+ NamedArgument::Value is intended.
+ */
+ string Name;
+
+ /** The value of the argument whose name is the one as contained in the
+ member #Name.
+ */
+ any Value;
+};
+
+}; }; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/oleautomation/PropertyPutArgument.idl b/udkapi/com/sun/star/bridge/oleautomation/PropertyPutArgument.idl
new file mode 100644
index 0000000000..5f890174f4
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/oleautomation/PropertyPutArgument.idl
@@ -0,0 +1,60 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module bridge { module oleautomation {
+
+/** contains a value that is used as argument in a &quot;property put&quot
+ operation on an Automation object.
+ <p>
+ If an Automation object is converted into a UNO object by a scripting
+ bridge, such as
+ com::sun::star::bridge::oleautomation::BridgeSupplier,
+ then it is accessed through the
+ com::sun::star::script::XInvocation interface.
+ The methods
+ com::sun::star::script::XInvocation::setValue()
+ and
+ com::sun::star::script::XInvocation::getValue()
+ are used to access properties which do not have additional
+ arguments. To access a property with additional arguments, the
+ method
+ com::sun::star::script::XInvocation::invoke()
+ has to be used. The method implementation must decide, if the
+ property is to be written or read so it can perform the proper
+ operation on the Automation object. To make this decision, the
+ caller has to provide the information if the current call is
+ intended to be a write or read operation. This is done by
+ providing either instances of PropertyPutArgument or
+ PropertyGetArgument as arguments to
+ com::sun::star::script::XInvocation::Invoke.
+
+ @since OOo 1.1.2
+*/
+struct PropertyPutArgument
+{
+ /** contains the actual argument.
+ */
+ any Value;
+};
+
+}; }; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/oleautomation/SCode.idl b/udkapi/com/sun/star/bridge/oleautomation/SCode.idl
new file mode 100644
index 0000000000..0a28c0c3af
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/oleautomation/SCode.idl
@@ -0,0 +1,52 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module bridge { module oleautomation {
+
+/** <p>is the UNO representation of the Automation type SCODE.
+ </p>
+ <p>
+ A <code>SCODE</code> is used to express errors in Automation.
+ In UNO it could be represented by a `long` and therefore a typedef
+ from `long` to a particular error type would do. But a typedef
+ cannot be expressed in all language bindings. In the case where no typedefs
+ are supported the actual type is used. That is, a typedef'd error type would
+ be represented as <code>int</code> in Java. The information that the
+ <code>int</code> is an error type is lost.
+ </p>
+ <p>
+ When calling Automation objects from UNO the distinction between error type
+ and `long` is important. Therefore the Scode is
+ declared as struct.
+ </p>
+
+ @since OOo 1.1.2
+ */
+
+
+struct SCode
+{
+ long Value;
+};
+
+}; }; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/bridge/oleautomation/XAutomationObject.idl b/udkapi/com/sun/star/bridge/oleautomation/XAutomationObject.idl
new file mode 100644
index 0000000000..d177081d6c
--- /dev/null
+++ b/udkapi/com/sun/star/bridge/oleautomation/XAutomationObject.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module bridge { module oleautomation {
+
+
+/** a tagging interface for UNO objects which represent Automation
+ objects.
+ <p>
+ If an Automation object is bridged into the UNO environment, then
+ the resulting UNO object does not distinguish itself from any
+ other ordinary UNO object. However, it may be desirable to have
+ that distinction regardless, if a UNO client needs to take
+ particular Automation specific characteristics into account.
+ By providing XAutomationObject an object declares
+ to be representing an Automation object.
+
+ @since OOo 1.1.2
+ */
+interface XAutomationObject: com::sun::star::uno::XInterface
+{
+
+};
+
+}; }; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/connection/Acceptor.idl b/udkapi/com/sun/star/connection/Acceptor.idl
new file mode 100644
index 0000000000..b29ce4589a
--- /dev/null
+++ b/udkapi/com/sun/star/connection/Acceptor.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module connection {
+
+published interface XAcceptor;
+
+
+/** allows to accept connection attempts from another process.
+ <p>
+ Acceptor is a delegating service. You can add further acceptors by giving
+ them a service name com.sun.star.connection.Acceptor.xxx, where xxx is the
+ connection type used in the connection string during accept()/connect() call.
+
+ */
+published service Acceptor: XAcceptor;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/connection/AlreadyAcceptingException.idl b/udkapi/com/sun/star/connection/AlreadyAcceptingException.idl
new file mode 100644
index 0000000000..0562011a51
--- /dev/null
+++ b/udkapi/com/sun/star/connection/AlreadyAcceptingException.idl
@@ -0,0 +1,31 @@
+/* -*- 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 .
+ */
+
+ module com { module sun { module star { module connection {
+
+/** Is thrown, when there is another thread already accepting on this instance.
+ */
+published exception AlreadyAcceptingException: com::sun::star::uno::Exception
+{
+};
+
+
+};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/connection/ConnectionSetupException.idl b/udkapi/com/sun/star/connection/ConnectionSetupException.idl
new file mode 100644
index 0000000000..a4c1d2edc9
--- /dev/null
+++ b/udkapi/com/sun/star/connection/ConnectionSetupException.idl
@@ -0,0 +1,31 @@
+/* -*- 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 .
+ */
+
+ module com { module sun { module star { module connection {
+
+/** Is thrown, when it is not possible to accept on a local resource.
+ */
+published exception ConnectionSetupException: com::sun::star::uno::Exception
+{
+};
+
+
+};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/connection/Connector.idl b/udkapi/com/sun/star/connection/Connector.idl
new file mode 100644
index 0000000000..5e6801de44
--- /dev/null
+++ b/udkapi/com/sun/star/connection/Connector.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module connection {
+
+published interface XConnector;
+
+
+/** allows to establish a connection to another process.
+ <p>
+ Connector is a delegating service. You can add further connectors by giving
+ them a service name com.sun.star.connection.Connector.xxx, where xxx is the
+ connection type used in the connection string during accept()/connect() call.
+ */
+published service Connector: XConnector;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/connection/NoConnectException.idl b/udkapi/com/sun/star/connection/NoConnectException.idl
new file mode 100644
index 0000000000..baa7e3da85
--- /dev/null
+++ b/udkapi/com/sun/star/connection/NoConnectException.idl
@@ -0,0 +1,31 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module connection {
+
+/** Is thrown in case no one is accepting on the specified resource.
+ */
+published exception NoConnectException: com::sun::star::uno::Exception
+{
+};
+
+
+};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/connection/SocketPermission.idl b/udkapi/com/sun/star/connection/SocketPermission.idl
new file mode 100644
index 0000000000..a86cb9f45d
--- /dev/null
+++ b/udkapi/com/sun/star/connection/SocketPermission.idl
@@ -0,0 +1,91 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module connection {
+
+
+/** This permission represents access to a network via sockets.
+ A SocketPermission consists of a host specification and a set of actions
+ specifying ways to connect to that host. The host is specified as
+ <pre>
+ host = (hostname | IPaddress)[:portrange]
+ portrange = portnumber | -portnumber | portnumber-[portnumber]
+ </pre>
+ The host is expressed as a DNS name, as a numerical IP address, or as
+ <code>"localhost"</code> (for the local machine). The wildcard <code>"*"</code>
+ may be included once
+ in a DNS name host specification. If it is included, it must be in the
+ leftmost position, as in <code>"*.sun.com"</code>.
+ <br>
+ The port or portrange is optional. A port specification of the form <code>"N-"</code>,
+ where <code>N</code> is a port number, signifies all ports numbered <code>N</code> and above,
+ while a specification of the form <code>"-N"</code> indicates all ports numbered
+ <code>N</code> and below.
+
+ <p>
+ The possible ways to connect to the host are
+ <ul>
+ <li><code>accept</code></li>
+ <li><code>connect</code></li>
+ <li><code>listen</code></li>
+ <li><code>resolve</code></li>
+ </ul><br>
+ The <code>"listen"</code> action is only meaningful when used with <code>"localhost"</code>.
+ The <code>"resolve"</code> (resolve host/ip name service lookups) action is implied when
+ any of the other actions are present.
+ <br>
+ As an example of the creation and meaning of SocketPermissions, note that if
+ the following permission
+<pre>
+SocketPermission("foo.bar.com:7777", "connect,accept");
+</pre>
+ is granted, it allows to connect to port 7777 on foo.bar.com, and to
+ accept connections on that port.
+ <br>
+ Similarly, if the following permission
+<pre>
+SocketPermission("localhost:1024-", "accept,connect,listen");
+</pre>
+ is granted, it allows that code to accept connections on, connect to, or listen
+ on any port between 1024 and 65535 on the local host.
+ </p>
+
+ @attention
+ Granting code permission to accept or make connections to remote hosts may be
+ dangerous because malevolent code can then more easily transfer and share
+ confidential data among parties who may not otherwise have access to the data.
+ </p>
+
+ @since OOo 1.1.2
+*/
+published struct SocketPermission
+{
+ /** target host with optional portrange
+ */
+ string Host;
+ /** comma separated actions list
+ */
+ string Actions;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/connection/XAcceptor.idl b/udkapi/com/sun/star/connection/XAcceptor.idl
new file mode 100644
index 0000000000..588e034706
--- /dev/null
+++ b/udkapi/com/sun/star/connection/XAcceptor.idl
@@ -0,0 +1,67 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module connection {
+
+/** allows to passively accept connection attempts from other processes.
+
+ <p>
+ This is the counterpart to the XConnector interface.
+ */
+published interface XAcceptor: com::sun::star::uno::XInterface
+{
+ /** accepts an interprocess connection. Waits until someone connects to the resource.
+ <p>
+ After a successful return, the method may be called again to accept
+ further connections, but the parameter string MUST be left unchanged.
+
+
+ @param sConnectionDescription
+ contains the kind of the connection plus a
+ comma separated list of attributes,
+ e.g., <em>socket,host=localhost,port=2345</em> for a tcpip connection.
+
+ @return null reference,
+ stopAccepting was called.
+ Otherwise a valid XConnection reference.
+
+ @throws AlreadyAcceptingException
+ Only one acceptor-thread per instance allowed.
+ @throws ConnectionSetupException
+ Problems during setting up the acceptor.
+ (e.g., Security-reasons, socket already busy, etc.)
+ @throws com::sun::star::lang::IllegalArgumentException
+ sConnectionDescription could not be interpreted
+
+ */
+ XConnection accept( [in] string sConnectionDescription )
+ raises( AlreadyAcceptingException,
+ ConnectionSetupException,
+ com::sun::star::lang::IllegalArgumentException);
+
+
+ /** pushes acceptor out of the accept-call.
+ */
+ void stopAccepting();
+};
+
+};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/connection/XConnection.idl b/udkapi/com/sun/star/connection/XConnection.idl
new file mode 100644
index 0000000000..1af7b1ff67
--- /dev/null
+++ b/udkapi/com/sun/star/connection/XConnection.idl
@@ -0,0 +1,86 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module connection {
+
+/** A bidirectional bytestream.
+
+ <p> You should additionally implement XConnection2.
+
+ @see XConnection2
+ */
+published interface XConnection: com::sun::star::uno::XInterface
+{
+
+ /** reads a requested number of bytes from the connection.
+ <p> This method is blocking, meaning that it always returns a bytesequence
+ with the requested number of bytes, unless it has reached end of file (which
+ often means, that close() has been called).
+
+ <p> please see also the readSomeBytes() method of XConnection2.
+
+ @return The read number of bytes.
+ The return value and the length of the
+ returned sequence must be identical.
+ @param aReadBytes
+ The buffer to receive the read bytes.
+ @param nBytesToRead
+ The number of bytes to be read from the stream.
+
+ @throws com::sun::star::io::IOException
+ in case an error occurred during reading from the stream.
+ */
+ long read( [out] sequence < byte > aReadBytes , [in] long nBytesToRead )
+ raises( com::sun::star::io::IOException );
+
+ /** writes the given bytesequence to the stream.
+ <p>The method blocks until the whole sequence is written.
+
+ @throws com::sun::star::io::IOException
+ in case an error occurred during writing to the stream.
+ */
+ void write( [in] sequence < byte > aData )
+ raises( com::sun::star::io::IOException );
+
+
+ /** Empties all internal buffers.
+ */
+ void flush( )
+ raises( com::sun::star::io::IOException );
+
+ /** Immediately terminates any ongoing read or write calls.
+ All subsequent read or write calls()
+ */
+ void close( )
+ raises( com::sun::star::io::IOException );
+
+
+ /** A unique string describing the connection.
+
+ <p>This string is different from the arguments to XConnection::accept()
+ and XConnector::connect(). In general, the string contains an additional
+ handle value. For example, "socket,host=localhost,port=2002,uniqueValue=2324". </p>
+ */
+ string getDescription();
+};
+
+};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/connection/XConnection2.idl b/udkapi/com/sun/star/connection/XConnection2.idl
new file mode 100644
index 0000000000..72c836edb4
--- /dev/null
+++ b/udkapi/com/sun/star/connection/XConnection2.idl
@@ -0,0 +1,48 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module connection {
+
+
+
+
+/**
+ XConnection2 extends the <code>XConnection</code> interface
+ with <code>available</code> and <code>readSomeBytes</code>
+*/
+published interface XConnection2: com::sun::star::connection::XConnection
+{
+
+ /** Gives the number of bytes available via <code>read</code>
+ without blocking.
+ */
+ long available() raises(com::sun::star::io::IOException);
+
+ /** Blocks if no data is available otherwise reads at
+ max <var>nMaxBytesToRead</var> but at least 1 byte.
+ </p>
+ */
+ long readSomeBytes([out] sequence<byte> aData, [in] long nMaxBytesToRead)
+ raises(com::sun::star::io::IOException);
+};
+
+};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/connection/XConnectionBroadcaster.idl b/udkapi/com/sun/star/connection/XConnectionBroadcaster.idl
new file mode 100644
index 0000000000..175b92be44
--- /dev/null
+++ b/udkapi/com/sun/star/connection/XConnectionBroadcaster.idl
@@ -0,0 +1,51 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module connection {
+
+
+
+
+/** allows to add listeners to a connection.
+ <p> Maybe supported by connections returned from XAcceptor::accept()
+ or XConnector::connect().
+ */
+published interface XConnectionBroadcaster: com::sun::star::uno::XInterface
+{
+
+ /** registers an object to receive events from this connection.
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+ */
+ void addStreamListener( [in] com::sun::star::io::XStreamListener aListener );
+
+
+ /** unregisters an object to receive events from this connection.
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+ */
+ void removeStreamListener( [in] com::sun::star::io::XStreamListener aListener );
+};
+
+};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/connection/XConnector.idl b/udkapi/com/sun/star/connection/XConnector.idl
new file mode 100644
index 0000000000..742068b033
--- /dev/null
+++ b/udkapi/com/sun/star/connection/XConnector.idl
@@ -0,0 +1,55 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module connection {
+
+/**
+ allows to actively establish an interprocess connection.
+ */
+published interface XConnector: com::sun::star::uno::XInterface
+{
+ /** creates a new connection interprocess connection.
+ <p>
+ Tries to connect to an XAcceptor. Behavior is unspecified
+ if a call to connect is made when another call to connect either has not
+ yet returned or has returned successfully without raising an exception.
+
+ @param sConnectionDescription
+ contains the kind of the connection plus a
+ comma separated list of attributes,
+ e.g., <em>socket,host=localhost,port=2345</em> for a tcpip connection.
+
+ @throws ConnectionSetupException
+ Problems during setting up the connector
+ on client side, (e.g., Security-reasons, socket already busy .. ),
+ or the string could not be interpreted correctly.
+
+ @throws NoConnectException
+ Couldn't reach a server (e.g. network failure),
+ no server is listening
+ */
+ XConnection connect( [in] string sConnectionDescription )
+ raises( NoConnectException,ConnectionSetupException );
+};
+
+
+};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/ContainerEvent.idl b/udkapi/com/sun/star/container/ContainerEvent.idl
new file mode 100644
index 0000000000..7d4205e5fd
--- /dev/null
+++ b/udkapi/com/sun/star/container/ContainerEvent.idl
@@ -0,0 +1,53 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+
+/** This event is fired when an element is inserted in a container.
+
+ @see XContainerListener
+ */
+published struct ContainerEvent: com::sun::star::lang::EventObject
+{
+
+ /** It contains the accessor to the element which is inserted or removed.
+
+ <p>The type and the value of the accessor depends on the service.</p>
+ */
+ any Accessor;
+
+
+ /** This contains the element that was inserted or removed.
+ */
+ any Element;
+
+
+ /** This contains the replaced element.
+ */
+ any ReplacedElement;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/ElementExistException.idl b/udkapi/com/sun/star/container/ElementExistException.idl
new file mode 100644
index 0000000000..fd213f5d83
--- /dev/null
+++ b/udkapi/com/sun/star/container/ElementExistException.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+
+/** is thrown by container methods, if an element is added which is already
+ a child of the container.
+
+ <p>Probably not the same element is already a member, when this exception
+ is thrown, but a member with the same id or name. </p>
+
+ @see XNameContainer
+ @see XNameContainer::insertByName
+ */
+published exception ElementExistException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/EnumerableMap.idl b/udkapi/com/sun/star/container/EnumerableMap.idl
new file mode 100644
index 0000000000..120d0fbbce
--- /dev/null
+++ b/udkapi/com/sun/star/container/EnumerableMap.idl
@@ -0,0 +1,122 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** provides a default XEnumerableMap implementation
+
+ <p>For the keys put into the map using XMap::put() or createImmutable(),
+ the following rules apply:
+ <a name="keyrules"></a>
+ <ul><li>A `VOID` key is not allowed.</li>
+ <li>If the key type is <code>BOOLEAN</code>, <code>CHAR</code>, <code>FLOAT</code>, <code>DOUBLE</code>,
+ <code>STRING</code>, <code>TYPE</code>, or <code>UNSIGNED HYPER</code>, then only keys of exactly this
+ type are accepted.</li>
+ <li>If the key type is <code>DOUBLE</code> or <code>FLOAT</code>, then <code>Double.NaN</code> respectively
+ <code>Float.NaN</code> is not accepted as key.</li>
+ <li>If the key type's class is com::sun::star::uno::TypeClass::ENUM, then only keys
+ of exactly this type are accepted.</li>
+ <li>If the key type is any of <code>BYTE</code>, <code>SHORT</code>, <code>UNSIGNED SHORT</code>,
+ <code>LONG</code>, <code>UNSIGNED LONG</code>, or <code>HYPER</code>, then all keys which can losslessly
+ be converted to this type (possibly using widening conversions) are accepted.</li>
+ <li>If the key type is an interface type, then all key values denoting objects which can be queried for
+ the given interface are accepted.</li>
+ <li>All other key types are rejected.</li>
+ </ul></p>
+
+ <p>For the values put into the map using XMap::put() or createImmutable(),
+ the following rules apply:
+ <a name="valuerules"></a>
+ <ul><li>The `VOID` value will be accepted to be put into the map.</p>
+ <li>If the value type's class is com::sun::star::uno::TypeClass::ANY, any value
+ will be accepted.</li>
+ <li>If the value type is an interface type, then all values denoting objects which can be queried for
+ the given interface are accepted.</li>
+ <li>If the value type's class is com::sun::star::uno::TypeClass::EXCEPTION
+ or com::sun::star::uno::TypeClass::STRUCT, then values whose type equals the
+ value type, or is a sub class of the value type, are accepted.</li>
+ <li>For all other value types, only values whose type matches exactly are accepted.</li>
+ <li>If the value type is <code>DOUBLE</code> or <code>FLOAT</code>, then <code>Double.NaN</code> respectively
+ <code>Float.NaN</code> is not accepted.</li>
+ </ul></p>
+
+ <p>The factory methods of the <code>XEnumerableMap</code> interface support both <em>isolated</em>
+ and <em>non-isolated</em> enumerators. The latter one will be automatically disposed when the map changes
+ after enumerator creation, so every attempt to use them will result in a
+ com::sun::star::lang::DisposedException being thrown.</p>
+
+ @see http://udk.openoffice.org/common/man/typesystem.html
+*/
+service EnumerableMap : XEnumerableMap
+{
+ /** creates an instance mapping from the given key type to the given value type
+
+ @param KeyType
+ denotes the type of the keys in the to-be-created map
+ @param ValueType
+ denotes the type of the values in the to-be-created map
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if KeyType or ValueType are unsupported types.
+ For values, all type classes except com::sun::star::uno::TypeClass::VOID
+ and com::sun::star::uno::TypeClass::UNKNOWN are accepted.
+ For keys, scalar types, strings, com::sun::star::uno::Type itself, and interface
+ types are accepted.
+ */
+ create( [in] type KeyType, [in] type ValueType )
+ raises( ::com::sun::star::beans::IllegalTypeException );
+
+ /** creates an instance mapping from the given key type to the given value type
+
+ <p>The resulting map is immutable, so later alter operations on it will fail
+ with a com::sun::star::lang::NoSupportException.</p>
+
+ @param KeyType
+ denotes the type of the keys in the to-be-created map
+ @param ValueType
+ denotes the type of the values in the to-be-created map
+ @param Values
+ denote the values contained in the to-be-created map
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if KeyType or ValueType are unsupported types.
+ For values, all type classes except com::sun::star::uno::TypeClass::VOID
+ are accepted.<br/>
+ For keys, scalar types, strings, com::sun::star::uno::Type itself, and interface
+ types are accepted.
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if any of the given values or keys violates the <a href="#keyrules">key rules</a> or
+ <a href="#valuerules">value rules</a>.
+ */
+ createImmutable(
+ [in] type KeyType,
+ [in] type ValueType,
+ [in] sequence< ::com::sun::star::beans::Pair< any, any > > Values
+ )
+ raises( ::com::sun::star::beans::IllegalTypeException,
+ ::com::sun::star::lang::IllegalArgumentException );
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/NoSuchElementException.idl b/udkapi/com/sun/star/container/NoSuchElementException.idl
new file mode 100644
index 0000000000..bf30d015b1
--- /dev/null
+++ b/udkapi/com/sun/star/container/NoSuchElementException.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** is thrown by child access methods of collections, if the addressed child
+ does not exist.
+
+ @see XEnumeration
+ @see XEnumeration::nextElement
+ */
+published exception NoSuchElementException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XChild.idl b/udkapi/com/sun/star/container/XChild.idl
new file mode 100644
index 0000000000..52733c267c
--- /dev/null
+++ b/udkapi/com/sun/star/container/XChild.idl
@@ -0,0 +1,51 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+
+/** provides access to the parent of the object.
+
+ <p>This interface normally is only supported if the objects all have
+ exactly one dedicated parent container.</p>
+ */
+published interface XChild: com::sun::star::uno::XInterface
+{
+
+ /** grants access to the object containing this content.
+ */
+ com::sun::star::uno::XInterface getParent();
+
+
+ /** sets the parent to this object.
+
+ @throws com::sun::star::lang::NoSupportException
+ if the name of this object cannot be changed.
+ */
+ void setParent( [in] com::sun::star::uno::XInterface Parent )
+ raises( com::sun::star::lang::NoSupportException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XComponentEnumeration.idl b/udkapi/com/sun/star/container/XComponentEnumeration.idl
new file mode 100644
index 0000000000..7f60fb270f
--- /dev/null
+++ b/udkapi/com/sun/star/container/XComponentEnumeration.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+
+/** provides a typified enumeration through components.
+ */
+published interface XComponentEnumeration: com::sun::star::container::XEnumeration
+{
+
+ /** @returns
+ the next component of this enumeration.
+
+ @throws NoSuchElementException
+ if no more elements exist.
+ */
+ com::sun::star::lang::XComponent nextComponent()
+ raises( com::sun::star::container::NoSuchElementException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XComponentEnumerationAccess.idl b/udkapi/com/sun/star/container/XComponentEnumerationAccess.idl
new file mode 100644
index 0000000000..2a306c5b07
--- /dev/null
+++ b/udkapi/com/sun/star/container/XComponentEnumerationAccess.idl
@@ -0,0 +1,40 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+
+/** provides a factory for a typified enumeration through
+ a collection of components.
+ */
+published interface XComponentEnumerationAccess: com::sun::star::container::XEnumerationAccess
+{
+
+ /** creates a new instance of enumeration through components.
+ */
+ com::sun::star::container::XComponentEnumeration createComponentEnumeration();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContainer.idl b/udkapi/com/sun/star/container/XContainer.idl
new file mode 100644
index 0000000000..02b4469c51
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainer.idl
@@ -0,0 +1,70 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+
+/** supports quick access to the information if a container currently
+ contains elements.
+
+ <p>The XContainer interface is provided for containers
+ which need to broadcast changes within the container; that means
+ the actions of adding or removing elements are broadcast to the
+ listeners. </p>
+
+ <p>This can be useful for UI to enable/disable some functions
+ without actually accessing the data. </p>
+
+ @see XContent
+ @see XIndexAccess
+ @see XNameAccess
+ @see XEnumerationAccess
+ */
+published interface XContainer: com::sun::star::uno::XInterface
+{
+
+ /** adds the specified listener to receive events when
+ elements are inserted or removed.
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+
+ @see XContainerListener
+ */
+ void addContainerListener( [in] com::sun::star::container::XContainerListener xListener );
+
+
+ /** removes the specified listener so it does not receive
+ any events from this container.
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+
+ @see XContainerListener
+ */
+ void removeContainerListener( [in] com::sun::star::container::XContainerListener xListener );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl b/udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl
new file mode 100644
index 0000000000..34488d0a65
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl
@@ -0,0 +1,46 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+interface XContainerApproveListener;
+
+/** allows containers to implement a vetoing mechanism for insertion, removal, and
+ replacement of their elements.
+ */
+interface XContainerApproveBroadcaster
+{
+ /** adds a listener which can veto changes in the container's content
+ */
+ void addContainerApproveListener(
+ [in] XContainerApproveListener Listener );
+
+ /** removes a previously added listener
+ */
+ void removeContainerApproveListener(
+ [in] XContainerApproveListener Listener );
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContainerApproveListener.idl b/udkapi/com/sun/star/container/XContainerApproveListener.idl
new file mode 100644
index 0000000000..5fcebd55ca
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerApproveListener.idl
@@ -0,0 +1,62 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** is notified to approve changes which happen to the content of a generic container
+
+ @see XContainerApproveBroadcaster
+ */
+interface XContainerApproveListener
+{
+ /** is called for the listener to approve an insertion into the container
+
+ @return
+ an instance implementing the com::sun::star::util::XVeto interface,
+ if the insertion is vetoed, `NULL` otherwise.
+ */
+ com::sun::star::util::XVeto approveInsertElement( [in] ContainerEvent Event )
+ raises ( com::sun::star::lang::WrappedTargetException );
+
+ /** is called for the listener to approve a replacement inside the container
+
+ @return
+ an instance implementing the com::sun::star::util::XVeto interface,
+ if the replacement is vetoed, `NULL` otherwise.
+ */
+ com::sun::star::util::XVeto approveReplaceElement( [in] ContainerEvent Event )
+ raises ( com::sun::star::lang::WrappedTargetException );
+
+ /** is called for the listener to approve a removal of an element from the container
+
+ @return
+ an instance implementing the com::sun::star::util::XVeto interface,
+ if the removal is vetoed, `NULL` otherwise.
+ */
+ com::sun::star::util::XVeto approveRemoveElement( [in] ContainerEvent Event )
+ raises ( com::sun::star::lang::WrappedTargetException );
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContainerListener.idl b/udkapi/com/sun/star/container/XContainerListener.idl
new file mode 100644
index 0000000000..4e60b16676
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerListener.idl
@@ -0,0 +1,49 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+
+/** receives events when the content of the related container changes.
+ */
+published interface XContainerListener: com::sun::star::lang::XEventListener
+{
+
+ /** is invoked when a container has inserted an element.
+ */
+ void elementInserted( [in] com::sun::star::container::ContainerEvent Event );
+
+
+ /** is invoked when a container has removed an element.
+ */
+ void elementRemoved( [in] com::sun::star::container::ContainerEvent Event );
+
+
+ /** is invoked when a container has replaced an element.
+ */
+ void elementReplaced( [in] com::sun::star::container::ContainerEvent Event );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContainerQuery.idl b/udkapi/com/sun/star/container/XContainerQuery.idl
new file mode 100644
index 0000000000..f641f502e7
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerQuery.idl
@@ -0,0 +1,87 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+/** supports simple query feature on a container
+
+ <p>
+ This interface makes it possible to create sub sets of container items
+ which serve specified search criterion.
+ <p>
+ */
+published interface XContainerQuery: com::sun::star::uno::XInterface
+{
+ /** creates a sub set of container items which match given query command
+
+ <p>
+ Items of this sub set must match used query string. Format of query depends
+ from real implementation. Using of "param=value" pairs isn't necessary.
+ So it's possible to combine different parameters as one simple command
+ string.
+ <p>
+
+ @param Query items of sub set must match to this query<br>
+ example:<br>
+ (1)<br>
+ query as parameter sequence to return all elements which match
+ the name pattern and supports a special feature; sort it ascending<br>
+ "name=*myname_??_;sort=ascending;feature=VISIBLE"<br>
+ (2)<br>
+ query as command to return all elements which support special feature
+ and match by name pattern;ascending sort is the default<br>
+ "getAllVisible(*myname_??_)"<br>
+
+ @returns an sub set of container items as an enumeration.
+ */
+ XEnumeration createSubSetEnumerationByQuery( [in] string Query );
+
+ /** creates a sub set of container items which supports searched properties as minimum
+
+ <p>
+ It's not possible to use special commands or search specific parameters here.
+ You can match by properties only. Enumerated elements must provide queried
+ properties as minimum. Not specified properties will not be used for searching.
+ <p>
+
+ @param Properties items of sub set must support given properties as minimum<br>
+ example:<br>
+ (supported)<br>
+ search for items which match the name pattern and supports the VISIBLE feature<br>
+ Parameters[0].Name = "name"<br>
+ Parameters[0].Value = "*myname_??_"<br>
+ Parameters[1].Name = "feature"<br>
+ Parameters[1].Value = "VISIBLE"<br>
+ ...<br>
+ (unsupported)<br>
+ "sort" isn't a property of a container item!
+ Parameters[0].Name = "sort"<br>
+ Parameters[0].Value = "ascending"<br>
+ ...<br>
+
+ @returns an sub set of container items as an enumeration.
+ */
+ XEnumeration createSubSetEnumerationByProperties( [in] sequence< com::sun::star::beans::NamedValue > Properties );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContentEnumerationAccess.idl b/udkapi/com/sun/star/container/XContentEnumerationAccess.idl
new file mode 100644
index 0000000000..64fb51bc95
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContentEnumerationAccess.idl
@@ -0,0 +1,58 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+
+/** allows access to the collections of all content types within the object.
+
+ <p>This example prints the names of all tables: </p>
+
+ @code{.bas}
+ xTextTableEnum = xTextDoc.createContentEnumeration( "com::sun::star::text::TextTable" )
+ while xTextTableEnum.hasMoreElements() do
+ print xTextTableEnum.nextElement().Name
+ wend
+ @endcode
+ */
+published interface XContentEnumerationAccess: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ a new enumeration object for the contents of the specified service type.
+ */
+ com::sun::star::container::XEnumeration createContentEnumeration( [in] string aServiceName );
+
+ /** @returns
+ all names of services of which instances exist in this object.
+
+ <p>XContentEnumerationAccess::createContentEnumeration()
+ creates an enumeration for all the service names which are
+ listed here. For all others it creates no enumeration. </p>
+ */
+ sequence<string> getAvailableServiceNames();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XElementAccess.idl b/udkapi/com/sun/star/container/XElementAccess.idl
new file mode 100644
index 0000000000..61b2f272e1
--- /dev/null
+++ b/udkapi/com/sun/star/container/XElementAccess.idl
@@ -0,0 +1,49 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the base interface of all collection interfaces.
+ */
+published interface XElementAccess: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the type of the elements. `void` means that it is a
+ multi-type container and you cannot determine the exact types
+ with this interface.
+ */
+ type getElementType();
+
+
+ /** @returns
+ `TRUE` if the object contain elements,
+ otherwise `FALSE`.
+ */
+ boolean hasElements();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XEnumerableMap.idl b/udkapi/com/sun/star/container/XEnumerableMap.idl
new file mode 100644
index 0000000000..45c02e90a7
--- /dev/null
+++ b/udkapi/com/sun/star/container/XEnumerableMap.idl
@@ -0,0 +1,91 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** extends XMap with enumeration capabilities.
+
+ <p>No assumption should be made about the ordering of the elements returned by the various enumerators.
+ In particular, you cannot assume the elements are returned in the same order as they were inserted. Also,
+ you should not expect the <code>XMap</code> implementation to make use of a possibly existing strict ordering
+ defined on the domain of all possible key values.</p>
+
+ <p>You can create enumerators for the keys of the map, its values, and its key-value pairs.</p>
+
+ <p>In all cases, you can create an <em>isolated</em> enumerator, which works on a copy of the
+ map's content. Such an iterator is not affected by changes done to the map after creation of
+ the enumerator.</p>
+
+ <p>On the contrary, an enumerator which is <em>non-isolated</em> works directly on the map data.
+ This is less expensive than an <em>isolated</em> enumerator, but means that changes to the map while
+ an enumeration is running potentially invalidate your enumerator. The concrete behavior in this
+ case is undefined, it's up to the service implementing the <code>XEnumerableMap</code> interface
+ to specify it in more detail.</p>
+
+ <p>Implementations of this interface might decide to support only <em>isolated</em> enumerators, or
+ only <em>non-isolated</em> enumerators. Again, it's up to the service to specify this. Requesting an
+ enumerator type which is not supported will generally result in a com::sun::star::lang::NoSupportException
+ being thrown.</p>
+ */
+interface XEnumerableMap : XMap
+{
+ /** creates an enumerator for the keys of the map
+
+ @param Isolated
+ controls whether the newly create enumerator should be isolated from the map.
+
+ @throws ::com::sun::star::lang::NoSupportException
+ if the specified enumerator method is not supported by the implementation.
+ */
+ XEnumeration createKeyEnumeration( [in] boolean Isolated )
+ raises ( ::com::sun::star::lang::NoSupportException );
+
+ /** creates an enumerator for the values of the map
+
+ @param Isolated
+ controls whether the newly create enumerator should be isolated from the map.
+
+ @throws ::com::sun::star::lang::NoSupportException
+ if the specified enumerator method is not supported by the implementation.
+ */
+ XEnumeration createValueEnumeration( [in] boolean Isolated )
+ raises ( ::com::sun::star::lang::NoSupportException );
+
+ /** creates an enumerator for the key-value pairs of the map
+
+ <p>The elements returned by the enumerator are instances of com::sun::star::beans::Pair,
+ holding the key-value-pairs which are part of the map.</p>
+
+ @param Isolated
+ controls whether the newly create enumerator should be isolated from the map.
+
+ @throws ::com::sun::star::lang::NoSupportException
+ if the specified enumerator method is not supported by the implementation.
+ */
+ XEnumeration createElementEnumeration( [in] boolean Isolated )
+ raises ( ::com::sun::star::lang::NoSupportException );
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XEnumeration.idl b/udkapi/com/sun/star/container/XEnumeration.idl
new file mode 100644
index 0000000000..e3eb4d85f4
--- /dev/null
+++ b/udkapi/com/sun/star/container/XEnumeration.idl
@@ -0,0 +1,74 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+
+/** provides functionality to enumerate the contents of a container.
+
+ <p>An object that implements the XEnumeration interface
+ generates a series of elements, one at a time. Successive calls to
+ the <code>XEnumeration::nextElement</code> method return successive
+ elements of the series. </p>
+
+ <p>For example (Java), to print all elements of a vector <var>aVect</var>:
+ </p>
+
+ @code{.java}
+ for (XEnumeration xEnum = aVect.elements() ; xEnum.hasMoreElements() ; )
+ {
+ System.out.println( xEnum.nextElement() );
+ }
+ @endcode
+
+
+ <p> If the object changed, the behavior of the enumeration is
+ not specified. This is not a remote interface. </p>
+ */
+published interface XEnumeration: com::sun::star::uno::XInterface
+{
+
+ /** tests whether this enumeration contains more elements.
+ */
+ boolean hasMoreElements();
+
+
+ /** @returns
+ the next element of this enumeration.
+
+ @throws NoSuchElementException
+ if no more elements exist.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ any nextElement()
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XEnumerationAccess.idl b/udkapi/com/sun/star/container/XEnumerationAccess.idl
new file mode 100644
index 0000000000..92a32cb8a8
--- /dev/null
+++ b/udkapi/com/sun/star/container/XEnumerationAccess.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+
+/** used to enumerate objects in a container which contains objects.
+ */
+published interface XEnumerationAccess: com::sun::star::container::XElementAccess
+{
+
+ /** @returns
+ a new enumeration object for this container.
+ It returns NULL if there are no objects in this container.
+ */
+ com::sun::star::container::XEnumeration createEnumeration();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XHierarchicalName.idl b/udkapi/com/sun/star/container/XHierarchicalName.idl
new file mode 100644
index 0000000000..7d7ab1b4b2
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalName.idl
@@ -0,0 +1,55 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** specifies the fully qualified name of the object within a hierarchy.
+
+ <p>The name is generally globally unique in the hierarchy. </p>
+
+ @see com::sun::star::container::XHierarchicalNameAccess
+ @see com::sun::star::container::XNamed
+ */
+published interface XHierarchicalName: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the fully qualified hierarchical name of the object.
+ */
+ string getHierarchicalName();
+
+
+ /** builds the hierarchical name of an object, given a relative name
+
+ <p>Can be used to find the name of a descendant object in the hierarchy
+ without actually accessing it. </p>
+
+ @see XHierarchicalNameAccess::hasByHierarchicalName
+ */
+ string composeHierarchicalName( [in] string aRelativeName )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::NoSupportException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XHierarchicalNameAccess.idl b/udkapi/com/sun/star/container/XHierarchicalNameAccess.idl
new file mode 100644
index 0000000000..623e1b067b
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalNameAccess.idl
@@ -0,0 +1,67 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** is used to have hierarchical access to elements within a container.
+
+ <p>You address an object of a specific level in the hierarchy by giving its
+ fully qualified name, e.g., "com.sun.star.uno.XInterface". </p>
+
+ <p>To implement inaccurate name access, support the
+ com::sun::star::beans::XExactName interface. </p>
+
+ @see com::sun::star::beans::XExactName
+ */
+published interface XHierarchicalNameAccess: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the object with the specified name.
+
+ @param aName
+ the name of the object.
+
+ @throws NoSuchElementException
+ if an element under Name does not exist.
+ */
+ any getByHierarchicalName( [in] string aName )
+ raises( com::sun::star::container::NoSuchElementException );
+
+
+ /** @returns
+ `TRUE` if an element with this name is in
+ the container, `FALSE` otherwise.
+
+ <p>In many cases, the next call is XNameAccess::getByName().
+ You should optimize this case.
+
+ @param aName
+ the name of the object.
+ */
+ boolean hasByHierarchicalName( [in] string aName );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XHierarchicalNameContainer.idl b/udkapi/com/sun/star/container/XHierarchicalNameContainer.idl
new file mode 100644
index 0000000000..8a5fcfff0f
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalNameContainer.idl
@@ -0,0 +1,51 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module container {
+
+
+/**
+ * Insertion and removal of hierarchical elements.
+ */
+published interface XHierarchicalNameContainer : com::sun::star::container::XHierarchicalNameReplace
+{
+
+ /** inserts the element at the specified name.
+ */
+ void insertByHierarchicalName( [in] string aName,
+ [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** removes the element at the specified name.
+ */
+ void removeByHierarchicalName( [in] string Name )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XHierarchicalNameReplace.idl b/udkapi/com/sun/star/container/XHierarchicalNameReplace.idl
new file mode 100644
index 0000000000..3913263f89
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalNameReplace.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+
+/**
+ * Replacement of hierarchical elements.
+ */
+published interface XHierarchicalNameReplace : com::sun::star::container::XHierarchicalNameAccess
+{
+
+ /** replaces the element at the specified name.
+ */
+ void replaceByHierarchicalName( [in] string aName,
+ [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+};
+
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIdentifierAccess.idl b/udkapi/com/sun/star/container/XIdentifierAccess.idl
new file mode 100644
index 0000000000..d1d76b4419
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIdentifierAccess.idl
@@ -0,0 +1,59 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** provides access to the elements of a collection through a unique identifier.
+ */
+published interface XIdentifierAccess: com::sun::star::container::XElementAccess
+{
+ /** @returns
+ the element with the specified identifier
+
+ @param Identifier
+ specifies the identifier of the element that should be retrieved.
+
+ @throws com::sun::star::lang::NoSuchElementException
+ If the identifier is not existing.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ any getByIdentifier( [in] long Identifier )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ /** @returns
+ a sequence of all identifiers in this container.
+
+ <p>The order of the identifiers is not specified. </p>
+ */
+ sequence<long> getIdentifiers();
+}
+;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIdentifierContainer.idl b/udkapi/com/sun/star/container/XIdentifierContainer.idl
new file mode 100644
index 0000000000..ddbb1ec64c
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIdentifierContainer.idl
@@ -0,0 +1,76 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the creation and removal of
+ elements with unique identifiers.
+
+ @see XContainer
+ */
+published interface XIdentifierContainer: com::sun::star::container::XIdentifierReplace
+{
+
+ /** inserts an element and creates a new unique identifier for it.
+
+ @returns
+ the newly created identifier under which the element is inserted.
+
+ @param aElement
+ The new element that will be inserted.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the argument is not valid for this container.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+
+ */
+ long insert( [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** removes the element with the specified identifier.
+
+ @param Identifier
+ The identifier that should be removed.
+
+ @throws com::sun::star::lang::NoSuchElementException
+ If the identifier does not exist.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ void removeByIdentifier( [in] long Identifier )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIdentifierReplace.idl b/udkapi/com/sun/star/container/XIdentifierReplace.idl
new file mode 100644
index 0000000000..f81e1a403a
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIdentifierReplace.idl
@@ -0,0 +1,60 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the replacement of elements
+ with unique identifiers.
+*/
+published interface XIdentifierReplace: com::sun::star::container::XIdentifierAccess
+{
+ /** replaces the element with the specified identifier.
+
+ @param Identifier
+ specifies the identifier of the element that should be retrieved.
+
+ @param aElement
+ the new element that replaces the old element for the specified identifier.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ If the argument is not valid for this container.
+
+ @throws com::sun::star::lang::NoSuchElementException
+ If the identifier is not existing.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ void replaceByIdentifer( [in] long Identifier,
+ [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XImplicitIDAccess.idl b/udkapi/com/sun/star/container/XImplicitIDAccess.idl
new file mode 100644
index 0000000000..3b95772b56
--- /dev/null
+++ b/udkapi/com/sun/star/container/XImplicitIDAccess.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+/** makes it possible to access contents through an implicit (unique) ID.
+ */
+published interface XImplicitIDAccess: com::sun::star::container::XElementAccess
+{
+ /** @returns
+ the element with the specified implicit ID.
+ */
+ any getByImplicitID( [in] string ID ) raises( com::sun::star::container::NoSuchElementException );
+
+ /** @returns
+ a sequence with all existing implicit IDs.
+ */
+ sequence<string> getImplicitIDs();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XImplicitIDContainer.idl b/udkapi/com/sun/star/container/XImplicitIDContainer.idl
new file mode 100644
index 0000000000..30e629a4bc
--- /dev/null
+++ b/udkapi/com/sun/star/container/XImplicitIDContainer.idl
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+/** makes it possible to insert and remove elements in/from a container
+ using an implicit (unique) ID.
+ */
+published interface XImplicitIDContainer: com::sun::star::container::XImplicitIDReplace
+{
+ /** adds a new object to the container and generates an implicit (unique)
+ ID for this object.
+
+ @returns
+ the implicit ID for the new object.
+ */
+ string addWithImplicitID( [in] any aElement );
+
+ /** removes an object from the container which is specified by
+ an implicit (unique) identifier.
+ */
+ void removeByImplicitID( [in] string ID )
+ raises( com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XImplicitIDReplace.idl b/udkapi/com/sun/star/container/XImplicitIDReplace.idl
new file mode 100644
index 0000000000..e62598beae
--- /dev/null
+++ b/udkapi/com/sun/star/container/XImplicitIDReplace.idl
@@ -0,0 +1,39 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+/** makes it possible to replace contents in a collection by
+ an implicit (unique) ID:
+ */
+published interface XImplicitIDReplace: com::sun::star::uno::XInterface
+{
+ /** replaces the content which is specified by its implicit (unique)
+ ID with a new content.
+ */
+ void replaceByUniqueID( [in] string ID, [in] any aNewElement )
+ raises( com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIndexAccess.idl b/udkapi/com/sun/star/container/XIndexAccess.idl
new file mode 100644
index 0000000000..bca3bd0ed2
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIndexAccess.idl
@@ -0,0 +1,62 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module container {
+
+
+/** provides access to the elements of a collection through an
+ index.
+
+ <p>This interface should only be used if the data structure, itself,
+ is indexed.</p>
+ */
+published interface XIndexAccess: com::sun::star::container::XElementAccess
+{
+
+ /** @returns
+ the number of elements in this container.
+ */
+ long getCount();
+
+ /** @returns
+ the element at the specified index.
+
+ @param Index
+ specifies the position in the array. The first index is 0.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if the index is not valid.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ any getByIndex( [in] long Index )
+ raises( com::sun::star::lang::IndexOutOfBoundsException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIndexContainer.idl b/udkapi/com/sun/star/container/XIndexContainer.idl
new file mode 100644
index 0000000000..d939a7ebed
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIndexContainer.idl
@@ -0,0 +1,52 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the insertion and removal of
+ indexed elements.@see XContainer
+ */
+published interface XIndexContainer: com::sun::star::container::XIndexReplace
+{
+
+ /** inserts the given element at the specified index.
+
+ <p>To append an element, use the index "last index +1". </p>
+ */
+ void insertByIndex( [in] long Index,
+ [in] any Element )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::IndexOutOfBoundsException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** removes the element at the specified index.
+ */
+ void removeByIndex( [in] long Index )
+ raises( com::sun::star::lang::IndexOutOfBoundsException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIndexReplace.idl b/udkapi/com/sun/star/container/XIndexReplace.idl
new file mode 100644
index 0000000000..3b93438ac0
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIndexReplace.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the replacement of indexed
+ elements.
+ @see XContainer
+ */
+published interface XIndexReplace: com::sun::star::container::XIndexAccess
+{
+
+ /** replaces the element at the specified index with the given element.
+ */
+ void replaceByIndex( [in] long Index,
+ [in] any Element )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::IndexOutOfBoundsException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XMap.idl b/udkapi/com/sun/star/container/XMap.idl
new file mode 100644
index 0000000000..cb15314744
--- /dev/null
+++ b/udkapi/com/sun/star/container/XMap.idl
@@ -0,0 +1,182 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** describes a map between keys and values.
+
+ <p>Keys in the map are unique, and each key maps to exactly one value.</p>
+
+ <p>Locating elements in the map, both values and keys, requires a notion of equality of two objects.
+ In conformance with the <a href="http://udk.openoffice.org/common/man/typesystem.html">UNO type system</a>,
+ two values are said to be equal if and only if they have the same type, and both denote the same element of this
+ type's value set.</p>
+
+ @see Map for a default implementation of this interface
+*/
+interface XMap
+{
+ interface XElementAccess;
+
+ /** denotes the type of the keys in the map.
+
+ <p>Implementations are free to accept any supertype of <code>KeyType</code> as keys.</p>
+ */
+ [attribute, readonly] type KeyType;
+
+ /** denotes the type of the values in the map.
+
+ <p>Implementations are free to accept any supertype of the <code>ValueType</code> as values.</p>
+ */
+ [attribute, readonly] type ValueType;
+
+ /** clears the map, removing all key-value pairs from it.
+
+ @throws ::com::sun::star::lang::NoSupportException
+ if the map is not mutable.
+ */
+ void clear()
+ raises( ::com::sun::star::lang::NoSupportException );
+
+ /** determines whether a mapping for he given key exists in the map
+
+ @param Key
+ is the key whose presence in the map is to be tested.
+ @return
+ `TRUE` if and only if the map contains a mapping for the given key.
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if the given key is not of a type which is accepted by the map
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given key is not supported to be put into the map. It's up to the service
+ implementing the <code>XMap</code> interface to specify which special values are not
+ supported. For instances, implementations might decide to not allow `VOID` keys, or
+ to reject <code>Double.NaN</code> (<em>not a number</em>) to due its problematic
+ behavior with respect to equality.
+ */
+ boolean containsKey( [in] any Key )
+ raises( ::com::sun::star::beans::IllegalTypeException,
+ ::com::sun::star::lang::IllegalArgumentException );
+
+ /** determines whether the map contains a mapping to a given value.
+
+ @param Value
+ is the value whose presence in the map is to be tested.
+ @return
+ `TRUE` if and only one or more keys map to the given value.
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if the given value is not of a type which is accepted by the map. It's up to the service
+ implementing the <code>XMap</code> interface to specify which special values are not
+ supported. For instances, implementations might decide to not allow <code>Double.NaN</code>
+ (<em>not a number</em>) to due its problematic behavior with respect to equality.
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given value is not supported to be put into the map.
+ */
+ boolean containsValue( [in] any Value )
+ raises( ::com::sun::star::beans::IllegalTypeException,
+ ::com::sun::star::lang::IllegalArgumentException );
+
+ /** gets the value to which a given key maps.
+
+ @param Key
+ they key whose associated value is to be returned.
+ @return
+ the value which is associated with the given key.
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if the given key is not of a type which is accepted by the map
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given key is not supported to be put into the map. It's up to the service
+ implementing the <code>XMap</code> interface to specify which special values are not
+ supported. For instances, implementations might decide to not allow `VOID` keys, or
+ to reject <code>Double.NaN</code> (<em>not a number</em>) to due its problematic
+ behavior with respect to equality.
+ @throws ::com::sun::star::container::NoSuchElementException
+ if there is no value associated with the given key
+ */
+ any get( [in] any Key )
+ raises( ::com::sun::star::beans::IllegalTypeException,
+ ::com::sun::star::lang::IllegalArgumentException,
+ ::com::sun::star::container::NoSuchElementException );
+
+ /** associates a given key with a given value
+
+ <p>If the map already contains a mapping for the given key, then the old value is replaced by the
+ given new value.</p>
+
+ @param Key
+ is the key which the given value should be associated with
+ @param Value
+ is the value which should be associated with the given key
+ @return
+ the value which was previously associated with the given key, or `VOID`
+ if there was no such previous association.
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if the given key is not of a type which is accepted by the map
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given key, or the given value, is not supported to be put into the map. It's up to
+ the service implementing the <code>XMap</code> interface to specify which special values
+ are not supported.<br/>
+ For instances, implementations might decide to not allow `VOID` keys or values, or to
+ reject <code>Double.NaN</code> (<em>not a number</em>) to due its problematic behavior
+ with respect to equality.
+ @throws ::com::sun::star::lang::NoSupportException
+ if the map does not support putting new mappings into it
+ */
+ any put( [in] any Key, [in] any Value )
+ raises( ::com::sun::star::lang::NoSupportException,
+ ::com::sun::star::beans::IllegalTypeException,
+ ::com::sun::star::lang::IllegalArgumentException );
+
+ /** removes a key-value mapping, given by key, from the map.
+
+ @param Key
+ is the key whose mapping should be removed from the map
+ @return
+ the value which was associated with the given key before the removal
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if the given key is not of a type which is accepted by the map
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given key is not supported to be put into the map. It's up to the service
+ implementing the <code>XMap</code> interface to specify which special values are not
+ supported. For instances, implementations might decide to not allow `VOID` keys, or
+ to reject <code>Double.NaN</code> (<em>not a number</em>) to due its problematic
+ behavior with respect to equality.
+ @throws ::com::sun::star::lang::NoSupportException
+ if the map does not support removing mappings
+ @throws ::com::sun::star::container::NoSuchElementException
+ if there is no value associated with the given key
+ */
+ any remove( [in] any Key )
+ raises( ::com::sun::star::lang::NoSupportException,
+ ::com::sun::star::beans::IllegalTypeException,
+ ::com::sun::star::lang::IllegalArgumentException,
+ ::com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XNameAccess.idl b/udkapi/com/sun/star/container/XNameAccess.idl
new file mode 100644
index 0000000000..7f89b242c8
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNameAccess.idl
@@ -0,0 +1,78 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** is used to access named objects within a container.
+
+ <p>To implement inaccurate name access, support the
+ com::sun::star::beans::XExactName
+ interface. </p>
+ @see com::sun::star::beans::XExactName
+ */
+published interface XNameAccess: com::sun::star::container::XElementAccess
+{
+
+ /** @returns
+ the object with the specified name.
+
+ @param aName
+ the name of the object.
+
+ @throws NoSuchElementException
+ if an element under Name does not exist.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ any getByName( [in] string aName )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** @returns
+ a sequence of all element names in this container.
+
+ <p>The order of the names is not specified. </p>
+ */
+ sequence<string> getElementNames();
+
+
+ /** @returns
+ `TRUE` if an element with this name is in
+ the container, `FALSE` otherwise.
+
+ <p>In many cases the next call is XNameAccess::getByName().
+ You should optimize this case. </p>
+
+ @param aName
+ the name of the object.
+ */
+ boolean hasByName( [in] string aName );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XNameContainer.idl b/udkapi/com/sun/star/container/XNameContainer.idl
new file mode 100644
index 0000000000..14a98c06f7
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNameContainer.idl
@@ -0,0 +1,51 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the insertion and removal of
+ named elements.
+ @see XContainer
+ */
+published interface XNameContainer: com::sun::star::container::XNameReplace
+{
+
+ /** inserts the given element at the specified name.
+ */
+ void insertByName( [in] string aName,
+ [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** removes the element with the specified name.
+ */
+ void removeByName( [in] string Name )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XNameReplace.idl b/udkapi/com/sun/star/container/XNameReplace.idl
new file mode 100644
index 0000000000..8b82c59084
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNameReplace.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the replacement of named
+ elements.
+ @see XContainer
+ */
+published interface XNameReplace: com::sun::star::container::XNameAccess
+{
+
+ /** replaces the element with the specified name with the given element.
+ */
+ void replaceByName( [in] string aName,
+ [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XNamed.idl b/udkapi/com/sun/star/container/XNamed.idl
new file mode 100644
index 0000000000..564556fcee
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNamed.idl
@@ -0,0 +1,46 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** specifies the name of the object.
+
+ <p>The name is generally unique in the container of the object.</p>
+ */
+published interface XNamed: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the programmatic name of the object.
+ */
+ string getName();
+
+
+ /** sets the programmatic name of the object.
+ */
+ void setName( [in] string aName );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XSet.idl b/udkapi/com/sun/star/container/XSet.idl
new file mode 100644
index 0000000000..5377c9bf4f
--- /dev/null
+++ b/udkapi/com/sun/star/container/XSet.idl
@@ -0,0 +1,55 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the insertion and removal of
+ elements.@see XContainer
+ */
+published interface XSet: com::sun::star::container::XEnumerationAccess
+{
+
+ /** @returns
+ `TRUE` if the given element is a member of this container,
+ otherwise `FALSE`.
+ */
+ boolean has( [in] any aElement );
+
+
+ /** inserts the given element into this container.
+ */
+ void insert( [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException );
+
+
+ /** removes the given element from this container.
+ */
+ void remove( [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XStringKeyMap.idl b/udkapi/com/sun/star/container/XStringKeyMap.idl
new file mode 100644
index 0000000000..fadc09184a
--- /dev/null
+++ b/udkapi/com/sun/star/container/XStringKeyMap.idl
@@ -0,0 +1,115 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+
+/** maps strings to anys.
+
+ @since OOo 2.3
+ */
+
+interface XStringKeyMap
+{
+ /** reads data from the map.
+
+ @param aKey
+ The key string which should be searched for.
+
+ @return
+ the value matching aKey.
+
+ @throws com::sun::star::container::NoSuchElementException
+ if an element under aKey does not exist.
+ */
+ any getValue( [in] string aKey )
+ raises( com::sun::star::container::NoSuchElementException );
+
+
+ /** checks for element existence.
+
+ @param aKey
+ The key string which should be searched for.
+
+ @return
+ true if an element with key aKey exists.
+ */
+ boolean hasValue( [in] string aKey );
+
+
+ /** writes data to the map.
+
+ @param aKey
+ The key string which should be used to store the value.
+
+ @param aValue
+ The value that should be stored.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the element could not be inserted.
+
+ @throws com::sun::star::container::ElementExistException
+ if there is already a value stored under the key aKey.
+ */
+ void insertValue( [in] string aKey, [in] any aValue )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException );
+
+
+ /** the number of elements in the map.
+ */
+ [attribute, readonly] long Count;
+
+
+ /** obtains the key of an element by index.
+
+ @param nIndex
+ is the index of the element.
+
+ @return
+ the key string matching the given index.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if the specified index is greater than the number of
+ elements
+ */
+ string getKeyByIndex( [in] long nIndex )
+ raises( com::sun::star::lang::IndexOutOfBoundsException );
+
+
+ /** obtains the value of an element by index.
+
+ @param nIndex
+ is the index of the key.
+
+ @return
+ the value matching the given index.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if the specified index is greater than the number of
+ elements
+ */
+ any getValueByIndex( [in] long nIndex )
+ raises( com::sun::star::lang::IndexOutOfBoundsException );
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XUniqueIDAccess.idl b/udkapi/com/sun/star/container/XUniqueIDAccess.idl
new file mode 100644
index 0000000000..cea1479227
--- /dev/null
+++ b/udkapi/com/sun/star/container/XUniqueIDAccess.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module container {
+
+/** makes it possible to access contents via a unique ID.
+ */
+published interface XUniqueIDAccess: com::sun::star::uno::XInterface
+{
+ /** @returns
+ the element with the specified unique ID.
+ */
+ any getByUniqueID( [in] string ID ) raises( com::sun::star::container::NoSuchElementException );
+
+ /** removes the element with the specified unique ID from this
+ container.
+ */
+ void removeByUniqueID( [in] string ID ) raises( com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/AlreadyConnectedException.idl b/udkapi/com/sun/star/io/AlreadyConnectedException.idl
new file mode 100644
index 0000000000..104a616854
--- /dev/null
+++ b/udkapi/com/sun/star/io/AlreadyConnectedException.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** is thrown when a client tries to connect to a resource to which he is
+ already connected.
+ */
+exception AlreadyConnectedException: com::sun::star::io::IOException
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/BufferSizeExceededException.idl b/udkapi/com/sun/star/io/BufferSizeExceededException.idl
new file mode 100644
index 0000000000..2b6ff58e89
--- /dev/null
+++ b/udkapi/com/sun/star/io/BufferSizeExceededException.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** is thrown by instances which need to buffer data.
+ <p>It indicates that not enough system resources are available for
+ extending the buffer. (May also indicate that the internal buffer
+ has grown to a larger size than 2G. Some current implementations do
+ not support larger buffers.)
+ </p>
+ */
+published exception BufferSizeExceededException: com::sun::star::io::IOException
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/ConnectException.idl b/udkapi/com/sun/star/io/ConnectException.idl
new file mode 100644
index 0000000000..8360e9524e
--- /dev/null
+++ b/udkapi/com/sun/star/io/ConnectException.idl
@@ -0,0 +1,35 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module io {
+
+/** Signals that an error occurred while attempting to connect a
+ socket to a remote address and port. Typically, the connection
+ was refused remotely (e.g., no process is listening on the remote
+ address/port).
+ */
+exception ConnectException: com::sun::star::io::SocketException
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/DataInputStream.idl b/udkapi/com/sun/star/io/DataInputStream.idl
new file mode 100644
index 0000000000..ac67e2820f
--- /dev/null
+++ b/udkapi/com/sun/star/io/DataInputStream.idl
@@ -0,0 +1,51 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** reads structured data from a chained XInputStream.
+ <p>
+ An implementation of this service in general does not need
+ to buffer data itself.
+
+ @see com::sun::star::io::ObjectInputStream
+ */
+published service DataInputStream
+{
+ /** allows to read structured data.
+ */
+ interface com::sun::star::io::XDataInputStream;
+
+ /** used to plug the inputstream-data-source.
+ A plain input stream is sufficient.
+ */
+ interface com::sun::star::io::XActiveDataSink;
+
+ /** Allows to chain the DataInputStream.
+ */
+ interface com::sun::star::io::XConnectable;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/DataOutputStream.idl b/udkapi/com/sun/star/io/DataOutputStream.idl
new file mode 100644
index 0000000000..5debd8fa42
--- /dev/null
+++ b/udkapi/com/sun/star/io/DataOutputStream.idl
@@ -0,0 +1,45 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** writes structured data to a chained XOutputStream.
+
+ <p>
+ An implementation of this service in general does not need
+ to buffer data itself.
+ */
+published service DataOutputStream
+{
+ /** allows to write structured data.
+ */
+ interface com::sun::star::io::XDataOutputStream;
+
+ /** used to plug the outputstream-data-sink.
+ <p>A plain output stream is sufficient.
+ */
+ interface com::sun::star::io::XActiveDataSource;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/DataTransferEvent.idl b/udkapi/com/sun/star/io/DataTransferEvent.idl
new file mode 100644
index 0000000000..84eeba08d0
--- /dev/null
+++ b/udkapi/com/sun/star/io/DataTransferEvent.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** is broadcast by a filter.
+ @see XDataTransferEventListener
+ */
+published struct DataTransferEvent: com::sun::star::lang::EventObject
+{
+ /** specifies an occurred exception.
+ */
+ any aException;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/FilePermission.idl b/udkapi/com/sun/star/io/FilePermission.idl
new file mode 100644
index 0000000000..65a3f08be6
--- /dev/null
+++ b/udkapi/com/sun/star/io/FilePermission.idl
@@ -0,0 +1,70 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module io {
+
+
+/// This permission represents access to a file or directory.
+/// A FilePermission consists of a file url and a set of actions valid for that url.
+/// <p>
+/// The path of the file url that ends in <code>"/*"</code> indicates all the files and
+/// directories contained in that directory. A path that ends with <code>"/-"</code>
+/// indicates (recursively) all files and subdirectories contained in that
+/// directory. A file url string consisting of the special token
+/// <code>"<<ALL FILES>>"</code> matches any file.
+/// <br>
+/// Note: A file url string consisting of a single <code>"*"</code> indicates all the files
+/// in the current directory, while a string consisting of a single <code>"-"</code> indicates
+/// all the files in the current directory and (recursively) all files and
+/// subdirectories contained in the current directory.
+/// <br>
+/// The actions to be granted is a list of one or more comma-separated keywords.
+/// The possible keywords are <code>"read"</code>, <code>"write"</code>,
+/// <code>"execute"</code>, and <code>"delete"</code>.
+/// Their meaning is defined as follows:
+/// <ul>
+/// <li><code>read</code> -- read permission</li>
+/// <li><code>write</code> -- write permission</li>
+/// <li><code>execute</code> -- execute permission</li>
+/// <li><code>delete</code> -- delete permission</li>
+/// </ul><br>
+/// The actions string is processed case-insensitive.
+/// </p>
+///
+/// @attention
+/// Be careful when granting FilePermissions. Think about the implications of
+/// granting read and especially write access to various files and directories.
+/// The <code>"<<ALL FILES>>"</code> permission with write action is
+/// especially dangerous. This grants permission to write to the entire file system.
+///
+/// @since OOo 1.1.2
+published struct FilePermission
+{
+ /** target file url
+ */
+ string URL;
+ /** comma separated actions list
+ */
+ string Actions;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/IOException.idl b/udkapi/com/sun/star/io/IOException.idl
new file mode 100644
index 0000000000..eafbd56ef6
--- /dev/null
+++ b/udkapi/com/sun/star/io/IOException.idl
@@ -0,0 +1,33 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** is thrown when an input or output error has occurred.
+ */
+published exception IOException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/MarkableInputStream.idl b/udkapi/com/sun/star/io/MarkableInputStream.idl
new file mode 100644
index 0000000000..97daedd5f8
--- /dev/null
+++ b/udkapi/com/sun/star/io/MarkableInputStream.idl
@@ -0,0 +1,55 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module io {
+
+/** allows to set marks in an inputstream and to later jump back to these
+ marks.
+ <p>The implementation reads the original data from the input stream,
+ that has been set previously at the XActiveDataSink
+ interface. In general the implementation must buffer the data. </p>
+ */
+published service MarkableInputStream
+{
+ /** allows to access the data of this stream
+ */
+ interface com::sun::star::io::XInputStream;
+
+ /** allows to create marks at the current position
+ and to set the current position.
+ */
+ interface com::sun::star::io::XMarkableStream;
+
+ /** allows to access to the underlying source
+ of this stream.
+ */
+ interface com::sun::star::io::XActiveDataSink;
+
+ /** allows to navigate via a chain of streams */
+ interface com::sun::star::io::XConnectable;
+
+};
+
+
+}; }; }; };
+
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/MarkableOutputStream.idl b/udkapi/com/sun/star/io/MarkableOutputStream.idl
new file mode 100644
index 0000000000..161d34d309
--- /dev/null
+++ b/udkapi/com/sun/star/io/MarkableOutputStream.idl
@@ -0,0 +1,60 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module io {
+
+/** allows to set marks in an outputstream and to later jump back to these
+ marks.
+ <p>The implementation stores the data as long as marks exists
+ and later writes these data into the output stream,
+ that has been set previously at the XActiveDataSource
+ interface. </p>
+ */
+published service MarkableOutputStream
+{
+ /** allows to write data at the current position.
+ <p> Flushing the outputstream will only flush data,
+ which was written before the first non-deleted mark,
+ because data after the first non-deleted mark
+ may be modified by later jumpToMark()/writeBytes() calls.
+ */
+ interface com::sun::star::io::XOutputStream;
+
+ /** allows to create marks at the current position
+ and to set the current position.
+ */
+ interface com::sun::star::io::XMarkableStream;
+
+ /** allows to access to the underlying sink
+ of this stream.
+ */
+ interface com::sun::star::io::XActiveDataSource;
+
+ /** allows to navigate via a chain of streams */
+ interface com::sun::star::io::XConnectable;
+
+};
+
+
+}; }; }; };
+
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/NoRouteToHostException.idl b/udkapi/com/sun/star/io/NoRouteToHostException.idl
new file mode 100644
index 0000000000..14ad88b7cf
--- /dev/null
+++ b/udkapi/com/sun/star/io/NoRouteToHostException.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module io {
+
+/** Signals that an error occurred while attempting to connect a socket to
+ a remote address and port. Typically, the remote host cannot be reached
+ because of an intervening firewall, or if an intermediate router is down.
+ */
+exception NoRouteToHostException: com::sun::star::io::SocketException
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/NotConnectedException.idl b/udkapi/com/sun/star/io/NotConnectedException.idl
new file mode 100644
index 0000000000..fca04ad67a
--- /dev/null
+++ b/udkapi/com/sun/star/io/NotConnectedException.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** is thrown when a read/write operation is tried on an instance that has
+ not been chained properly.
+ */
+published exception NotConnectedException: com::sun::star::io::IOException
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/ObjectInputStream.idl b/udkapi/com/sun/star/io/ObjectInputStream.idl
new file mode 100644
index 0000000000..fcb2b25b1c
--- /dev/null
+++ b/udkapi/com/sun/star/io/ObjectInputStream.idl
@@ -0,0 +1,75 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module io {
+
+/** is a stream which allows reading the data of persistent objects.
+
+ <p>Implementations of this service must fulfill the specifications of the
+ DataInputStream service. It must be chained to an
+ XMarkableStream. Therefore, it provides the
+ XMarkableStream interface, and delegates the calls to the
+ chained object. </p>
+ <p>The written objects are held until this instance is destroyed.
+ The references to the objects are read as four-byte integers.
+ Data format reads:</p>
+
+ <pre>
+ short InfoLength
+ long ObjectReference // 0 indicates no object
+ UTF ServiceName // length of 0 indicates this is only a reference
+ long ObjectLength // 0 if it is a reference or no object, otherwise the len of the object data
+ Object ObjectData // the data of the object
+ ... // skipping additional data
+ </pre>
+
+ @note
+ <ul>
+ <li>-thread safe</li>
+ <li>-allow buffer size is 2 ^ 31 -1</li>
+ <li>-maximum object reference identifier must be the number of objects. </li>
+ <li>-object reference identifier 0 indicates no object</li>
+ <li>-skip addition data</li>
+ <li>-set the stream position behind the object data</li>
+ </ul>
+ */
+published service ObjectInputStream
+{
+ /** allows to read the data from the stream.
+ */
+ interface com::sun::star::io::XObjectInputStream;
+
+ /** allows to set the underlying inputstream */
+ interface com::sun::star::io::XActiveDataSink;
+
+ /** allows to navigate via a chain of streams */
+ interface com::sun::star::io::XConnectable;
+
+ /** allows to set marks within the stream. The implementation
+ may forward calls to this interface to a chained markablestream. */
+ interface com::sun::star::io::XMarkableStream;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/ObjectOutputStream.idl b/udkapi/com/sun/star/io/ObjectOutputStream.idl
new file mode 100644
index 0000000000..a6479aebda
--- /dev/null
+++ b/udkapi/com/sun/star/io/ObjectOutputStream.idl
@@ -0,0 +1,66 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** is a stream which allows writing the data of persistent objects.
+
+ <p>Implementations of this service must fulfill the specifications of the
+ DataOutputStream service; furthermore, the stream needs to be chained to a
+ XMarkableStream. Therefore, it also provides the XMarkableStream
+ interface, but it delegates the calls to the chained object.
+ The written objects are held until this instance is destroyed.
+ The references to the objects are written as four-byte integers
+ and begin at 1. Data format is written: </p>
+ <pre>
+ short InfoLength
+ long ObjectReference // 0 indicates no object
+ UTF ServiceName // length of 0 indicates this is only a reference
+ long ObjectLength // 0 if it is a reference or no object, otherwise the len of the object data
+ Object ObjectData // the data of the object
+ </pre>
+
+ @note
+ <ul>
+ <li>-thread safe </li>
+ <li>-allow buffer size is 2 ^ 31 -1 </li>
+ <li>-maximum object reference identifier is the number of objects. </li>
+ <li>-object reference identifier 0 indicates no object </li>
+ </ul>
+ */
+published service ObjectOutputStream
+{
+ /** allows to write the data to the stream.
+ */
+ interface com::sun::star::io::XObjectOutputStream;
+
+ /** allows to set the underlying outputstream */
+ interface com::sun::star::io::XActiveDataSource;
+
+ /** allows to navigate via a chain of streams */
+ interface com::sun::star::io::XConnectable;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/Pipe.idl b/udkapi/com/sun/star/io/Pipe.idl
new file mode 100644
index 0000000000..80ff1ee77d
--- /dev/null
+++ b/udkapi/com/sun/star/io/Pipe.idl
@@ -0,0 +1,36 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module io {
+
+/** the implementation of an output stream and an input stream.
+ <p>
+ All data written through the outputstream is buffered until it is
+ read again from the input stream. Often two different threads access
+ input and outputstream.
+
+ <p> With the pipe-service, an outputstream can be converted into an
+ input stream at the cost of an additional buffer.
+ */
+published service Pipe : XPipe;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/Pump.idl b/udkapi/com/sun/star/io/Pump.idl
new file mode 100644
index 0000000000..6fa696fd13
--- /dev/null
+++ b/udkapi/com/sun/star/io/Pump.idl
@@ -0,0 +1,48 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module io {
+
+/** the implementation of a data source and a data sink.
+ <p>A thread will be created that reads from the input stream and writes
+ the data to the connected output stream. Data will not be buffered by
+ this service. </p>
+
+ */
+published service Pump
+{
+ /** allows to set the outputstream
+ */
+ interface com::sun::star::io::XActiveDataSource;
+
+ /** allows to set the inputstream
+ */
+ interface com::sun::star::io::XActiveDataSink;
+
+ /** allows listener administration and starting/stopping the pump */
+ interface com::sun::star::io::XActiveDataControl;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/SequenceInputStream.idl b/udkapi/com/sun/star/io/SequenceInputStream.idl
new file mode 100644
index 0000000000..784e74376f
--- /dev/null
+++ b/udkapi/com/sun/star/io/SequenceInputStream.idl
@@ -0,0 +1,36 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module io {
+
+/** This service allows to wrap a sequence of bytes with a stream object.
+ */
+published service SequenceInputStream : XSeekableInputStream
+{
+ /** allows to create a stream based on the sequence.
+ */
+ createStreamFromSequence( [in] sequence<byte> aData );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/SequenceOutputStream.idl b/udkapi/com/sun/star/io/SequenceOutputStream.idl
new file mode 100644
index 0000000000..1aa9ef6c98
--- /dev/null
+++ b/udkapi/com/sun/star/io/SequenceOutputStream.idl
@@ -0,0 +1,31 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** This service allows to wrap a sequence of bytes with an output stream object.
+ */
+service SequenceOutputStream : XSequenceOutputStream;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/SocketException.idl b/udkapi/com/sun/star/io/SocketException.idl
new file mode 100644
index 0000000000..7e10df8077
--- /dev/null
+++ b/udkapi/com/sun/star/io/SocketException.idl
@@ -0,0 +1,33 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module io {
+
+/** Thrown to indicate that there is an error in the underlying
+ protocol, such as a TCP error.
+ */
+exception SocketException: com::sun::star::io::IOException
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/TempFile.idl b/udkapi/com/sun/star/io/TempFile.idl
new file mode 100644
index 0000000000..b1ca7a4a51
--- /dev/null
+++ b/udkapi/com/sun/star/io/TempFile.idl
@@ -0,0 +1,30 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module io {
+
+/** This service allows to get access to temp files.
+ */
+service TempFile : XTempFile;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/TextInputStream.idl b/udkapi/com/sun/star/io/TextInputStream.idl
new file mode 100644
index 0000000000..4d667e9e55
--- /dev/null
+++ b/udkapi/com/sun/star/io/TextInputStream.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** provides functionality to read text data from a
+ com::sun::star::io::XInputStream
+ that initially has to be passed to the method
+ XActiveDataSink::setInputStream().
+
+ <p>For details about the text functionality see
+ com::sun::star::io::XTextInputStream.
+ */
+published service TextInputStream : XTextInputStream2;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/TextOutputStream.idl b/udkapi/com/sun/star/io/TextOutputStream.idl
new file mode 100644
index 0000000000..f103885a1e
--- /dev/null
+++ b/udkapi/com/sun/star/io/TextOutputStream.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** provides functionality to write text data to a
+ com::sun::star::io::XOutputStream
+ that initially has to be passed to the method
+ XActiveDataSource::setOutputStream().
+
+ <p>For details about the text functionality see
+ com::sun::star::io::XTextOutputStream.
+ */
+published service TextOutputStream : XTextOutputStream2;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/UnexpectedEOFException.idl b/udkapi/com/sun/star/io/UnexpectedEOFException.idl
new file mode 100644
index 0000000000..87333c5221
--- /dev/null
+++ b/udkapi/com/sun/star/io/UnexpectedEOFException.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** is thrown when the <code>EOF</code> is reached during reading a datatype
+ (<code>long</code>, <code>string</code>, etc.).
+ */
+published exception UnexpectedEOFException: com::sun::star::io::IOException
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/UnknownHostException.idl b/udkapi/com/sun/star/io/UnknownHostException.idl
new file mode 100644
index 0000000000..324724af7c
--- /dev/null
+++ b/udkapi/com/sun/star/io/UnknownHostException.idl
@@ -0,0 +1,32 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module io {
+
+/** is thrown when the IP address of a host could not be determined.
+ */
+exception UnknownHostException: com::sun::star::io::IOException
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/WrongFormatException.idl b/udkapi/com/sun/star/io/WrongFormatException.idl
new file mode 100644
index 0000000000..25c73bf1f2
--- /dev/null
+++ b/udkapi/com/sun/star/io/WrongFormatException.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** is thrown when inconsistent data comes up while reading a complex
+ data type (<code>string</code> or object).
+ */
+published exception WrongFormatException: com::sun::star::io::IOException
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XActiveDataControl.idl b/udkapi/com/sun/star/io/XActiveDataControl.idl
new file mode 100644
index 0000000000..bad0c32c9a
--- /dev/null
+++ b/udkapi/com/sun/star/io/XActiveDataControl.idl
@@ -0,0 +1,69 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** makes it possible to control an active data source.
+
+ <p>This interface should be supported by objects which implement
+ XActiveDataSource or XActiveDataSink.</p>
+ */
+published interface XActiveDataControl: com::sun::star::uno::XInterface
+{
+ /** registers an object to receive events from this data source.
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+ */
+ void addListener( [in] com::sun::star::io::XStreamListener aListener );
+
+ /** unregisters an object to receive events from this data source.
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+ */
+ void removeListener( [in] com::sun::star::io::XStreamListener aListener );
+
+ /** starts I/O.
+
+ <p>Either XActiveDataControl::setInputStream() or
+ XActiveDataControl::setOutputStream() must be called beforehand.
+ </p>
+
+ <p>This method does not block the thread, so reading is
+ generally not finished when the method returns. </p>
+ */
+ void start();
+
+ /** does a weak abort.
+
+ <p>It closes all connected resources and calls
+ XInputStream::close() or
+ XOutputStream::close() and fires the
+ XStreamListener::terminated()-event.</p>
+ */
+ void terminate();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XActiveDataSink.idl b/udkapi/com/sun/star/io/XActiveDataSink.idl
new file mode 100644
index 0000000000..7577fd670b
--- /dev/null
+++ b/udkapi/com/sun/star/io/XActiveDataSink.idl
@@ -0,0 +1,49 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** makes it possible to read the corresponding object from an input stream.
+
+ <p>If you want to allow control from outside, also implement the
+ XActiveDataControl interface. </p>
+ */
+published interface XActiveDataSink: com::sun::star::uno::XInterface
+{
+ /** plugs the input stream.
+
+ <p>If XConnectable is also implemented, this
+ method should query <var>aStream</var> for an
+ XConnectable and connect both.</p>
+ */
+ void setInputStream( [in] com::sun::star::io::XInputStream aStream );
+
+ /** @returns
+ the plugged stream.
+ */
+ com::sun::star::io::XInputStream getInputStream();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XActiveDataSource.idl b/udkapi/com/sun/star/io/XActiveDataSource.idl
new file mode 100644
index 0000000000..e398d70c71
--- /dev/null
+++ b/udkapi/com/sun/star/io/XActiveDataSource.idl
@@ -0,0 +1,49 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** has to be implemented if the class should be able to write into an output
+ stream.
+ @see XActiveDataControl.
+ */
+published interface XActiveDataSource: com::sun::star::uno::XInterface
+{
+ /** plugs the output stream.
+
+ <p>If XConnectable is also implemented, this
+ method should query <var>aStream</var> for a
+ XConnectable and connect both.
+ </p>
+ */
+ void setOutputStream( [in] com::sun::star::io::XOutputStream aStream );
+
+ /** @returns
+ the plugged stream.
+ */
+ com::sun::star::io::XOutputStream getOutputStream();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XActiveDataStreamer.idl b/udkapi/com/sun/star/io/XActiveDataStreamer.idl
new file mode 100644
index 0000000000..0b0dbc2621
--- /dev/null
+++ b/udkapi/com/sun/star/io/XActiveDataStreamer.idl
@@ -0,0 +1,50 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** makes it possible to read and write the corresponding stream.
+
+
+ <p>If you want to allow control from outside, also implement the
+ XActiveDataControl interface. </p>
+ */
+published interface XActiveDataStreamer: com::sun::star::uno::XInterface
+{
+ /** plugs the input/output stream.
+
+ <p>If XConnectable is also implemented, this
+ method should query <var>aStream</var> for a
+ XConnectable and connect both.</p>
+ */
+ void setStream( [in] com::sun::star::io::XStream aStream );
+
+ /** @returns
+ the plugged stream.
+ */
+ com::sun::star::io::XStream getStream();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XAsyncOutputMonitor.idl b/udkapi/com/sun/star/io/XAsyncOutputMonitor.idl
new file mode 100644
index 0000000000..6b5e3ca0c3
--- /dev/null
+++ b/udkapi/com/sun/star/io/XAsyncOutputMonitor.idl
@@ -0,0 +1,76 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module io {
+
+/**
+ An optional companion interface to
+ com::sun::star::io::XOutputStream that supports scenarios
+ where com::sun::star::io::XOutputStream::writeBytes()
+ operates asynchronously and does not necessarily report any errors.
+
+ <p>A typical scenario where this interface is useful is when an
+ com::sun::star::io::XOutputStream is used to write to a
+ file via NFS. Normally, any calls to
+ com::sun::star::io::XOutputStream::writeBytes() will
+ execute asynchronously then, in that any potential errors might only be
+ reported by later calls to
+ com::sun::star::io::XOutputStream::writeBytes() or
+ com::sun::star::io::XOutputStream::closeOutput(). If
+ such an output stream shall not be closed immediately after one or more calls
+ to com::sun::star::io::XOutputStream::writeBytes(), but
+ the client wants to know as soon as possible whether writing was successful,
+ then
+ com::sun::star::io::XAsyncOutputMonitor::waitForCompletion()
+ should be called after the series of calls to
+ com::sun::star::io::XOutputStream::writeBytes().</p>
+
+ @since OOo 2.0
+*/
+interface XAsyncOutputMonitor {
+ /**
+ waits for the completion of any previous calls to
+ com::sun::star::io::XOutputStream::writeBytes(),
+ and reports potentially pending errors.
+
+ <p>Calling this method is potentially expensive (even if the associated
+ com::sun::star::io::XOutputStream represents a local
+ file not accessed via NFS, for example). This method has a similar
+ description to
+ com::sun::star::io::XOutputStream::flush().
+ However, where the semantics of <code>flush</code> are rather vague,
+ <code>waitForCompletion</code> has very specific semantics&mdash;it just
+ blocks long enough so that any errors encountered during previous calls
+ to com::sun::star::io::XOutputStream::writeBytes()
+ can reliably be reported. It specifically does not guarantee that any
+ data have safely been stored on a stable physical medium, like a hard
+ disk (and it is completely unspecified whether <code>flush</code> should
+ give this guarantee).</p>
+
+ @throws com::sun::star::io::IOException
+ if any previous call to com::sun::star::io::XOutputStream::writeBytes()
+ encountered such an error, but has not yet reported it (in cases where
+ <code>writeBytes</code> operates asynchronously).
+ */
+ void waitForCompletion() raises (IOException);
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XConnectable.idl b/udkapi/com/sun/star/io/XConnectable.idl
new file mode 100644
index 0000000000..0f0e0de7a8
--- /dev/null
+++ b/udkapi/com/sun/star/io/XConnectable.idl
@@ -0,0 +1,60 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module io {
+
+/** makes it possible to connect data sinks and sources.
+
+ <p>The predecessor-member is the element in the connection that is
+ nearer to the source of the data. The successor-member is the element
+ that is further away from the source of the data. (Note that this
+ classification does not depend on whether the class implements
+ XInputStream or XOutputStream; it only
+ depends on the direction of data flow.) </p>
+ <p>This interface allows generic services to navigate between
+ arbitrary elements of a connection.</p>
+ */
+published interface XConnectable: com::sun::star::uno::XInterface
+{
+ /** sets the source of the data flow for this object.
+ */
+ void setPredecessor( [in] com::sun::star::io::XConnectable aPredecessor );
+
+ /** @returns
+ the predecessor of this object.
+ */
+ com::sun::star::io::XConnectable getPredecessor();
+
+ /** sets the sink of the data flow for this object.
+ */
+ void setSuccessor( [in] com::sun::star::io::XConnectable aSuccessor );
+
+ /** @returns
+ the successor of this object.
+ */
+ com::sun::star::io::XConnectable getSuccessor();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XDataExporter.idl b/udkapi/com/sun/star/io/XDataExporter.idl
new file mode 100644
index 0000000000..cacb6949c5
--- /dev/null
+++ b/udkapi/com/sun/star/io/XDataExporter.idl
@@ -0,0 +1,46 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** makes it possible to export data from a component into a data sink.
+
+ <p>Exporter objects are registered for specific components and data types.
+ </p>
+ */
+published interface XDataExporter: com::sun::star::uno::XInterface
+{
+ /** exports data for a component into an output stream.
+ */
+ void exportData( [in] com::sun::star::io::XOutputStream aOutputStream,
+ [in] com::sun::star::lang::XComponent Component,
+ [in] com::sun::star::io::XDataTransferEventListener aListener );
+
+ /** cancels the export process.
+ */
+ void cancel();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XDataImporter.idl b/udkapi/com/sun/star/io/XDataImporter.idl
new file mode 100644
index 0000000000..bb483fbb7f
--- /dev/null
+++ b/udkapi/com/sun/star/io/XDataImporter.idl
@@ -0,0 +1,45 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** makes it possible to import data from a data source into a component.
+
+ <p>Importer objects are registered for specific components and data types.</p>
+ */
+published interface XDataImporter: com::sun::star::uno::XInterface
+{
+ /** imports data for a component from an active data source.
+ */
+ void importData( [in] com::sun::star::io::XActiveDataSource aActiveSource,
+ [in] com::sun::star::lang::XComponent Component,
+ [in] com::sun::star::io::XDataTransferEventListener aListener );
+
+ /** cancels the import process.
+ */
+ void cancel();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XDataInputStream.idl b/udkapi/com/sun/star/io/XDataInputStream.idl
new file mode 100644
index 0000000000..26710fb108
--- /dev/null
+++ b/udkapi/com/sun/star/io/XDataInputStream.idl
@@ -0,0 +1,81 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** makes it possible to read machine-independent simple data types from a
+ stream.
+ @see com::sun::star::io::XDataOutputStream
+ */
+published interface XDataInputStream: com::sun::star::io::XInputStream
+{
+ /** reads in a boolean. It is an 8-bit value. 0 means FALSE; all
+ other values mean TRUE.
+ */
+ byte readBoolean()
+ raises( com::sun::star::io::IOException );
+
+ /** reads an 8-bit byte.
+ */
+ byte readByte()
+ raises( com::sun::star::io::IOException );
+
+ /** reads a 16-bit unicode character.
+ */
+ char readChar()
+ raises( com::sun::star::io::IOException );
+
+ /** reads a 16-bit big endian integer.
+ */
+ short readShort()
+ raises( com::sun::star::io::IOException );
+
+ /** reads a 32-bit big endian integer.
+ */
+ long readLong()
+ raises( com::sun::star::io::IOException );
+
+ /** reads a 64-bit big endian integer.
+ */
+ hyper readHyper()
+ raises( com::sun::star::io::IOException );
+
+ /** reads a 32-bit IEEE float.
+ */
+ float readFloat()
+ raises( com::sun::star::io::IOException );
+
+ /** reads a 64-bit IEEE double.
+ */
+ double readDouble()
+ raises( com::sun::star::io::IOException );
+
+ /** reads a string of UTF encoded characters.
+ */
+ string readUTF()
+ raises( com::sun::star::io::IOException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XDataOutputStream.idl b/udkapi/com/sun/star/io/XDataOutputStream.idl
new file mode 100644
index 0000000000..0c5df021fc
--- /dev/null
+++ b/udkapi/com/sun/star/io/XDataOutputStream.idl
@@ -0,0 +1,81 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** makes it possible to write machine-independent simple data types to a
+ stream.
+ @see com::sun::star::io::XDataInputStream
+ */
+published interface XDataOutputStream: com::sun::star::io::XOutputStream
+{
+ /** writes a boolean. It is an 8-bit value. 0 means FALSE; all other
+ values mean TRUE.
+ */
+ void writeBoolean( [in] boolean Value )
+ raises( com::sun::star::io::IOException );
+
+ /** writes an 8-bit byte.
+ */
+ void writeByte( [in] byte Value )
+ raises( com::sun::star::io::IOException );
+
+ /** writes a 16-bit character.
+ */
+ void writeChar( [in] char Value )
+ raises( com::sun::star::io::IOException );
+
+ /** writes a 16-bit big endian integer.
+ */
+ void writeShort( [in] short Value )
+ raises( com::sun::star::io::IOException );
+
+ /** writes a 32-bit big endian integer.
+ */
+ void writeLong( [in] long Value )
+ raises( com::sun::star::io::IOException );
+
+ /** writes a 64-bit big endian integer.
+ */
+ void writeHyper( [in] hyper Value )
+ raises( com::sun::star::io::IOException );
+
+ /** writes a 32-bit IEEE float.
+ */
+ void writeFloat( [in] float Value )
+ raises( com::sun::star::io::IOException );
+
+ /** writes a 64-bit IEEE double.
+ */
+ void writeDouble( [in] double Value )
+ raises( com::sun::star::io::IOException );
+
+ /** writes a string in UTF format.
+ */
+ void writeUTF( [in] string Value )
+ raises( com::sun::star::io::IOException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XDataTransferEventListener.idl b/udkapi/com/sun/star/io/XDataTransferEventListener.idl
new file mode 100644
index 0000000000..c407c24aa0
--- /dev/null
+++ b/udkapi/com/sun/star/io/XDataTransferEventListener.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** is used to receive callbacks from an importer or exporter.
+ */
+published interface XDataTransferEventListener: com::sun::star::lang::XEventListener
+{
+ /** is called when an import or export process has finished.
+ */
+ void finished( [in] com::sun::star::io::DataTransferEvent aEvent );
+
+ /** is called when an import or export process has been cancelled.
+ */
+ void cancelled( [in] com::sun::star::io::DataTransferEvent aEvent );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XInputStream.idl b/udkapi/com/sun/star/io/XInputStream.idl
new file mode 100644
index 0000000000..39810e78bb
--- /dev/null
+++ b/udkapi/com/sun/star/io/XInputStream.idl
@@ -0,0 +1,135 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** This is the basic interface to read data from a stream.
+ <p>
+ See the <a href="http://udk.openoffice.org/common/man/concept/streams.html">
+ streaming document</a> for further information on chaining and piping streams.
+ */
+published interface XInputStream: com::sun::star::uno::XInterface
+{
+ /** reads the specified number of bytes in the given sequence.
+
+ <p>The return value specifies the number of bytes which have been
+ put into the sequence. A difference between <var>nBytesToRead</var>
+ and the return value indicates that EOF has been reached. This means
+ that the method blocks until the specified number of bytes are
+ available or the EOF is reached. </p>
+
+ @param aData
+ after the call, the byte sequence contains the requested number
+ of bytes (or less as a sign of EOF).
+ <br>
+ C++ only : Note that for unbridged (e.g., in-process)
+ calls, using the same sequence for repetitive readBytes()-calls
+ can bear a performance advantage. The callee can put the data
+ directly into the sequence so that no buffer reallocation is
+ necessary.
+ But this holds only when
+ <ol>
+ <li> neither caller nor callee keep a second reference to the same
+ sequence.
+ <li> the sequence is pre-allocated with the requested number of bytes.
+ <li> the same sequence is reused (simply preallocating a new
+ sequence for every call bears no advantage).
+ <li> the call is not bridged (e.g., between different compilers
+ or different processes).
+ </ol>
+ <br>
+ If the same 'optimized' code runs against an interface in a different process,
+ there is an unnecessary memory allocation/deallocation (the out parameter
+ is of course NOT transported over the connection), but this should
+ be negligible compared to a synchron call.
+
+ @param nBytesToRead
+ the total number of bytes to read
+ */
+ long readBytes( [out] sequence<byte> aData,
+ [in] long nBytesToRead )
+ raises( com::sun::star::io::NotConnectedException,
+ com::sun::star::io::BufferSizeExceededException,
+ com::sun::star::io::IOException);
+
+ /** reads the available number of bytes, at maximum
+ <var>nMaxBytesToRead</var>.
+
+ <p>This method is very similar to the readBytes method, except that
+ it has different blocking behaviour.
+ The method blocks as long as at least 1 byte is available or
+ EOF has been reached. EOF has only been reached, when the method
+ returns 0 and the corresponding byte sequence is empty.
+ Otherwise, after the call, aData contains the available,
+ but no more than nMaxBytesToRead, bytes.
+
+ @param aData contains the data read from the stream.
+ @param nMaxBytesToRead The maximum number of bytes to be read from this
+ stream during the call.
+ @see com::sun::star::io::XInputStream::readBytes
+ */
+ long readSomeBytes( [out] sequence<byte> aData,
+ [in] long nMaxBytesToRead )
+ raises( com::sun::star::io::NotConnectedException,
+ com::sun::star::io::BufferSizeExceededException,
+ com::sun::star::io::IOException );
+
+ /** skips the next <var>nBytesToSkip</var> bytes (must be positive).
+
+ <p>It is up to the implementation whether this method is
+ blocking the thread or not. </p>
+
+ @param nBytesToSkip
+ number of bytes to skip
+ */
+ void skipBytes( [in] long nBytesToSkip )
+ raises( com::sun::star::io::NotConnectedException,
+ com::sun::star::io::BufferSizeExceededException,
+ com::sun::star::io::IOException );
+
+ /** states how many bytes can be read or skipped without blocking.
+
+ <p>Note: This method offers no information on whether the EOF
+ has been reached. </p>
+ */
+ long available()
+ raises( com::sun::star::io::NotConnectedException,
+ com::sun::star::io::IOException
+ );
+
+ /** closes the stream.
+
+ <p>Users must close the stream explicitly when no further
+ reading should be done. (There may exist ring references to
+ chained objects that can only be released during this call.
+ Thus not calling this method would result in a leak of memory or
+ external resources.) </p>
+ */
+ void closeInput()
+ raises( com::sun::star::io::NotConnectedException,
+ com::sun::star::io::IOException);
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XInputStreamProvider.idl b/udkapi/com/sun/star/io/XInputStreamProvider.idl
new file mode 100644
index 0000000000..43e380ce74
--- /dev/null
+++ b/udkapi/com/sun/star/io/XInputStreamProvider.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module io {
+
+
+/** Interface for providing an input stream.
+
+ <p>Every time createInputStream() is called a new input stream
+ is returned, always pointing to the begin of the same data. All
+ input streams returned by createInputStream()
+ are completely independent from each other.</p>
+*/
+published interface XInputStreamProvider : com::sun::star::uno::XInterface
+{
+ /** Creates a new input stream, every time providing
+ the same data.
+
+ @return
+ a new input stream
+ */
+ com::sun::star::io::XInputStream createInputStream();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XMarkableStream.idl b/udkapi/com/sun/star/io/XMarkableStream.idl
new file mode 100644
index 0000000000..15eeb98926
--- /dev/null
+++ b/udkapi/com/sun/star/io/XMarkableStream.idl
@@ -0,0 +1,84 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** makes it possible to set and remove seekable marks to a stream.
+ */
+published interface XMarkableStream: com::sun::star::uno::XInterface
+{
+ /** creates a mark of the current position and returns an identifier to it.
+ */
+ long createMark()
+ raises( com::sun::star::io::IOException );
+
+ /** deletes the mark that you previously created with
+ XMarkableStream::createMark().
+
+ <p>It is an error to delete a mark if other marks after this
+ exist. In this case, for reasons of robustness, the
+ implementation must delete this mark and all others after
+ this mark. </p>
+ */
+ void deleteMark( [in] long Mark )
+ raises( com::sun::star::io::IOException,
+ com::sun::star::lang::IllegalArgumentException );
+
+ /** jumps to a previously created mark.
+ */
+ void jumpToMark( [in] long nMark )
+ raises( com::sun::star::io::IOException,
+ com::sun::star::lang::IllegalArgumentException );
+
+
+ /** jumps to the furthest position of the stream.
+ <p> In the inputstream case, a subsequent read call returns
+ data, that was never read or skipped over before. In the
+ outputstream case, a subsequent write call will add
+ new data at the end of the stream without overwriting existing data.
+ */
+ void jumpToFurthest()
+ raises( com::sun::star::io::IOException );
+
+ /** @returns
+ the offset from the current stream position to the
+ mark ("current position" - "mark position").
+
+ @param nMark
+ identifies the mark which is used as a base
+ to calculate the offset of the current position.
+
+ @throws IllegalArgumentException
+ if the mark does not exist or is deleted.
+
+ @throws IOException
+ if an I/O error has occurred.
+ */
+ long offsetToMark( [in] long nMark )
+ raises( com::sun::star::io::IOException,
+ com::sun::star::lang::IllegalArgumentException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XObjectInputStream.idl b/udkapi/com/sun/star/io/XObjectInputStream.idl
new file mode 100644
index 0000000000..c2e8490761
--- /dev/null
+++ b/udkapi/com/sun/star/io/XObjectInputStream.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+
+/** reads XPersistObject implementations from a stream
+ */
+published interface XObjectInputStream: com::sun::star::io::XDataInputStream
+{
+
+ /** reads an object from the stream. In general, it
+ reads the service name, instantiates the object and
+ calls read on the XPersistObject interface with itself
+ as argument.
+ */
+ com::sun::star::io::XPersistObject readObject()
+ raises( com::sun::star::io::IOException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XObjectOutputStream.idl b/udkapi/com/sun/star/io/XObjectOutputStream.idl
new file mode 100644
index 0000000000..caa2c0c776
--- /dev/null
+++ b/udkapi/com/sun/star/io/XObjectOutputStream.idl
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module io {
+
+ published interface XPersistObject;
+
+
+/** stores XPersistObject implementations into the stream
+
+ <p>An implementation of the type XPersistObject
+ uses this interface to write its internal state into a stream.
+ Have a look there for the explanation of the concept.
+
+ @see com::sun::star::io::XPersistObject
+ */
+published interface XObjectOutputStream: XDataOutputStream
+{
+ /** writes an object to the stream.
+ @param Object the object, which shall serialize itself into the stream.
+ */
+ void writeObject( [in] XPersistObject Object )
+ raises( IOException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XOutputStream.idl b/udkapi/com/sun/star/io/XOutputStream.idl
new file mode 100644
index 0000000000..78eeedeaa8
--- /dev/null
+++ b/udkapi/com/sun/star/io/XOutputStream.idl
@@ -0,0 +1,66 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** This is the basic interface to write data to a stream.
+ <p>
+ See the <a href="http://udk.openoffice.org/common/man/concept/streams.html">
+ streaming document</a> for further information on chaining and piping streams.
+ */
+published interface XOutputStream: com::sun::star::uno::XInterface
+{
+ /** writes the whole sequence to the stream. (blocking call)
+ */
+ void writeBytes( [in] sequence<byte> aData )
+ raises( com::sun::star::io::NotConnectedException,
+ com::sun::star::io::BufferSizeExceededException,
+ com::sun::star::io::IOException);
+
+ /** flushes out of the stream any data that may exist in buffers.
+
+ <p>The semantics of this method are rather vague. See
+ com::sun::star::io::XAsyncOutputMonitor::waitForCompletion()
+ for a similar method
+ with very specific semantics, that is useful in certain scenarios.</p>
+ */
+ void flush()
+ raises( com::sun::star::io::NotConnectedException,
+ com::sun::star::io::BufferSizeExceededException,
+ com::sun::star::io::IOException);
+
+ /** gets called to indicate that all data has been written.
+
+ <p>If this method has not yet been called, no attached
+ XInputStream receives an EOF signal. No further
+ bytes may be written after this method has been called.</p>
+ */
+ void closeOutput()
+ raises( com::sun::star::io::NotConnectedException,
+ com::sun::star::io::BufferSizeExceededException,
+ com::sun::star::io::IOException);
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XPersist.idl b/udkapi/com/sun/star/io/XPersist.idl
new file mode 100644
index 0000000000..8b5bfe2bad
--- /dev/null
+++ b/udkapi/com/sun/star/io/XPersist.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** makes it possible to write this object to a URL or read it from a URL.
+ */
+published interface XPersist: com::sun::star::uno::XInterface
+{
+ /** writes all the persistent data of the object to the URL.
+ */
+ void write ( [in] string URL ) raises ( com::sun::star::io::IOException ) ;
+
+ /** reads all the persistent data of the object from the URL.
+ */
+ void read ( [in] string URL ) raises ( com::sun::star::io::IOException ) ;
+
+};
+
+
+}; }; }; };
+
+/*=============================================================================
+=============================================================================*/
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XPersistObject.idl b/udkapi/com/sun/star/io/XPersistObject.idl
new file mode 100644
index 0000000000..38a3707c2e
--- /dev/null
+++ b/udkapi/com/sun/star/io/XPersistObject.idl
@@ -0,0 +1,89 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+ published interface XObjectInputStream;
+ published interface XObjectOutputStream;
+
+
+/** allows to make UNO objects persistent
+
+ <p>Every UNO object, that wants to be serializable, should implement
+ this interface. The object stores stores itself, when the
+ write method is called.
+ <p>
+ The object needs to be created before it deserializes
+ itself again (by using the read method). Therefore it must be
+ creatable by name via a factory, which is in general
+ the global service manager. The create and read mechanism
+ is implemented by the com::sun::star::io::ObjectInputStream.
+
+ <p>The serialization format (the series of strings, integers, objects) must
+ be specified at the specification of the concrete service.
+
+ <p>The interface does not support any special versioning mechanism.
+
+ @see com::sun::star::io::XObjectOutputStream
+ @see com::sun::star::io::XObjectInputStream
+ */
+published interface XPersistObject: com::sun::star::uno::XInterface
+{
+
+ /** gives the service name of the object
+
+ <p>This name is used to create such an object by a factory
+ during deserialization. </p>
+
+ @returns
+ the service name that specifies the behavior and the
+ persistent data format of this implementation.
+
+ @see com::sun::star::lang::XMultiComponentFactory::getAvailableServiceNames()
+ */
+ string getServiceName();
+
+ /** writes all the persistent data of the object to the stream.
+ <p>The implementation
+ must write the data in the order documented in the service specification.
+ @param OutStream the stream, the data shall be written to. The stream
+ supports simple types and other XPersistObject implementations.
+ */
+ void write( [in] com::sun::star::io::XObjectOutputStream OutStream )
+ raises( com::sun::star::io::IOException );
+
+ /** reads all the persistent data of the object from the stream.
+ <p>In case
+ other XPersistObjects are read from the stream, the implementation uses a factory
+ to create these objects (in general the global service manager).
+ <p> The implementation must read the data in the order documented at
+ the service specification.
+ @param InStream the stream, the data shall be read from.
+ */
+ void read( [in] com::sun::star::io::XObjectInputStream InStream )
+ raises( com::sun::star::io::IOException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XPipe.idl b/udkapi/com/sun/star/io/XPipe.idl
new file mode 100644
index 0000000000..8002c425c3
--- /dev/null
+++ b/udkapi/com/sun/star/io/XPipe.idl
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+
+/** The implementation of an output stream and an input stream.
+ <p>
+ All data written through the outputstream is buffered until it is
+ read again from the input stream. Often two different threads access
+ input and outputstream.
+
+ <p> With the pipe-service, an outputstream can be converted into an
+ input stream at the cost of an additional buffer.
+
+ @since LibreOffice 4.0
+ */
+published interface XPipe
+{
+ interface com::sun::star::io::XOutputStream;
+
+ interface com::sun::star::io::XInputStream;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XSeekable.idl b/udkapi/com/sun/star/io/XSeekable.idl
new file mode 100644
index 0000000000..4297bbf552
--- /dev/null
+++ b/udkapi/com/sun/star/io/XSeekable.idl
@@ -0,0 +1,62 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module io {
+
+/** makes it possible to seek to a certain position within a stream.
+
+ <p>This interface should be supported, if it is possible to access the
+ data at the new position quickly.
+ You should not support this interface, if you have a continuous
+ stream, for example, a video stream.
+ */
+published interface XSeekable: com::sun::star::uno::XInterface
+{
+ /** changes the seek pointer to a new location relative to the beginning of the stream.
+
+
+ <p> This method changes the seek pointer so subsequent reads and writes can take place at a different
+ location in the stream object. It is an error to seek before the beginning of the stream or after the
+ end of the stream. </p>
+
+ @throws com::sun::star::lang::IllegalArgumentException in case location is negative or greater than XSeekable::getLength().
+ */
+ void seek( [in] hyper location )
+ raises( com::sun::star::lang::IllegalArgumentException, com::sun::star::io::IOException );
+
+ /** returns the current offset of the stream.
+ @returns
+ the current offset in this stream.
+ */
+ hyper getPosition()
+ raises( com::sun::star::io::IOException );
+
+ /** returns the length of the stream.
+ @returns
+ the length of the storage medium on which the stream works.
+ */
+ hyper getLength()
+ raises( com::sun::star::io::IOException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XSeekableInputStream.idl b/udkapi/com/sun/star/io/XSeekableInputStream.idl
new file mode 100644
index 0000000000..a689f1db10
--- /dev/null
+++ b/udkapi/com/sun/star/io/XSeekableInputStream.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module io {
+
+/** This interface can be used to represent a seekable input stream.
+ */
+published interface XSeekableInputStream
+{
+ interface XInputStream;
+ interface XSeekable;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XSequenceOutputStream.idl b/udkapi/com/sun/star/io/XSequenceOutputStream.idl
new file mode 100644
index 0000000000..64537d812c
--- /dev/null
+++ b/udkapi/com/sun/star/io/XSequenceOutputStream.idl
@@ -0,0 +1,40 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** This interface offers access to the written bytes
+*/
+interface XSequenceOutputStream
+{
+ interface XOutputStream;
+
+ /** allows to get access to the written data
+ */
+ sequence< byte > getWrittenBytes()
+ raises( com::sun::star::io::NotConnectedException,
+ com::sun::star::io::IOException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XStream.idl b/udkapi/com/sun/star/io/XStream.idl
new file mode 100644
index 0000000000..29b4eda85e
--- /dev/null
+++ b/udkapi/com/sun/star/io/XStream.idl
@@ -0,0 +1,45 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module io {
+
+
+/** offers read and write access to the same stream.
+ */
+published interface XStream: com::sun::star::uno::XInterface
+{
+ /** @returns
+ the XInputStream part of the stream. Closing the returned
+ XInputStream also closes any XOutputStream part.
+ */
+ XInputStream getInputStream();
+
+
+ /** @returns
+ the XInputStream part of the stream. Closing the returned
+ XOutputStream also closes the XInputStream part.
+ */
+ XOutputStream getOutputStream();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XStreamListener.idl b/udkapi/com/sun/star/io/XStreamListener.idl
new file mode 100644
index 0000000000..f213abcfb5
--- /dev/null
+++ b/udkapi/com/sun/star/io/XStreamListener.idl
@@ -0,0 +1,56 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** makes it possible to receive events from an active data control.
+ */
+published interface XStreamListener: com::sun::star::lang::XEventListener
+{
+ /** gets called as soon as data transfer has started.
+ */
+ void started();
+
+ /** gets called when data transfer terminates normally or when data
+ transfer is terminated from outside.
+
+ <p>The termination could be done using the method
+ XActiveDataControl::terminate().</p>
+ */
+ void closed();
+
+ /** gets called when XActiveDataControl::terminate() is called.
+ */
+ void terminated();
+
+ /** gets called when an internal error in source or sink has occurred.
+
+ <p>After the method is called, the close is called on the
+ connected streams.</p>
+ */
+ void error( [in] any aException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XTempFile.idl b/udkapi/com/sun/star/io/XTempFile.idl
new file mode 100644
index 0000000000..65a43f991b
--- /dev/null
+++ b/udkapi/com/sun/star/io/XTempFile.idl
@@ -0,0 +1,57 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module io {
+
+/** This interface offers access to temp files.
+ */
+interface XTempFile
+{
+ // INTERFACES
+ /** interface XStream offers read and write access to
+ the same stream.
+ */
+ interface XStream;
+
+ /** interface XSeekable makes it possible to seek to a
+ certain position within a stream.
+ */
+ interface XSeekable;
+
+ // ATTRIBUTES
+ /** This attribute controls whether the file will be automatically
+ removed on object destruction.
+ */
+ [attribute] boolean RemoveFile;
+
+ /** This attribute specifies the URL of the temp file.
+ */
+ [readonly,attribute] string Uri;
+
+ /** This attribute specifies the temp file name.
+ */
+ [readonly,attribute] string ResourceName;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XTextInputStream.idl b/udkapi/com/sun/star/io/XTextInputStream.idl
new file mode 100644
index 0000000000..9e9ab1a627
--- /dev/null
+++ b/udkapi/com/sun/star/io/XTextInputStream.idl
@@ -0,0 +1,96 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** Interface to read strings from a stream.
+
+ <p>This interfaces allows to read strings separated by
+ delimiters and to read lines. The character encoding
+ to be used can be set by setEncoding().
+ Default encoding is "utf8".</p>
+ */
+published interface XTextInputStream: com::sun::star::io::XInputStream
+{
+ /** reads text until a line break (CR, LF, or CR/LF) or
+ EOF is found and returns it as string (without CR, LF).
+
+ <p>The read characters are converted according to the
+ encoding defined by setEncoding(). If
+ EOF is already reached before calling this method
+ an empty string is returned.<p>
+
+ @see setEncoding
+ @see isEOF
+ */
+ string readLine()
+ raises( com::sun::star::io::IOException );
+
+ /** reads text until one of the given delimiter characters
+ or EOF is found and returns it as string (without delimiter).
+
+ <p><strong>Important:</strong> CR/LF is not used as default
+ delimiter! So if no delimiter is defined or none of the
+ delimiters is found, the stream will be read to EOF. The
+ read characters are converted according to the encoding
+ defined by setEncoding(). If EOF is already
+ reached before calling this method an empty string is returned.</p>
+
+ @see setEncoding
+ @see isEOF
+ */
+ string readString( [in] sequence<char> Delimiters, [in] boolean bRemoveDelimiter )
+ raises( com::sun::star::io::IOException );
+
+ /** Returns the EOF status.
+
+ <p>This method has to be used to detect if the end
+ of the stream is reached.</p>
+ <p><strong>Important:</strong>
+ This cannot be detected by asking for an empty string
+ because that can be a valid return value of readLine()
+ (if the line is empty) and
+ readString() (if a delimiter is directly followed
+ by the next one).</p>
+
+ @returns
+ `TRUE`, if the end of file is reached, so that
+ no next string can be read. `FALSE` otherwise
+ */
+ boolean isEOF()
+ raises( com::sun::star::io::IOException );
+
+ /** sets character encoding.
+
+ @param Encoding
+ sets the character encoding that should be used.
+ The character encoding names refer to the document
+ http://www.iana.org/assignments/character-sets.
+ Which character sets are supported depends on
+ the implementation.
+ */
+ void setEncoding( [in] string Encoding );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XTextInputStream2.idl b/udkapi/com/sun/star/io/XTextInputStream2.idl
new file mode 100644
index 0000000000..f64bde5df1
--- /dev/null
+++ b/udkapi/com/sun/star/io/XTextInputStream2.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** Provides a unified interface for the new-style service TextInputStream.
+
+ @since LibreOffice 4.1
+ */
+published interface XTextInputStream2
+{
+ /// Interface to read text data
+ interface com::sun::star::io::XTextInputStream;
+
+ /// Interface to specify the used com::sun::star::io::XInputStream
+ interface com::sun::star::io::XActiveDataSink;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XTextOutputStream.idl b/udkapi/com/sun/star/io/XTextOutputStream.idl
new file mode 100644
index 0000000000..fda0a695af
--- /dev/null
+++ b/udkapi/com/sun/star/io/XTextOutputStream.idl
@@ -0,0 +1,63 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** Interface to write strings to a stream using a special
+ character encoding.
+
+ <p>This interfaces allows to write strings to a stream.
+ The character encoding to be used can be set by
+ setEncoding(). Default encoding is "utf8".</p>
+ */
+published interface XTextOutputStream: com::sun::star::io::XOutputStream
+{
+ /** writes a string to the stream using the encoding
+ defined by setEncoding().
+
+ <p>Line breaks or delimiters that may be necessary
+ to support XTextInputStream::readLine()
+ and XTextInputStream::readString()
+ have to be added manually to the parameter string.</p>
+
+ @see setEncoding
+ @see XTextInputStream::readLine
+ @see XTextInputStream::readString
+ */
+ void writeString( [in] string aString )
+ raises( com::sun::star::io::IOException );
+
+ /** sets character encoding.
+
+ @param Encoding
+ sets the character encoding that should be used.
+ The character encoding names refer to the document
+ http://www.iana.org/assignments/character-sets.
+ Which character sets are supported depends on
+ the implementation.
+ */
+ void setEncoding( [in] string Encoding );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XTextOutputStream2.idl b/udkapi/com/sun/star/io/XTextOutputStream2.idl
new file mode 100644
index 0000000000..f3f2a1f3e5
--- /dev/null
+++ b/udkapi/com/sun/star/io/XTextOutputStream2.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module io {
+
+/** Provides a unified interface for the new-style service TextOutputStream.
+
+ @since LibreOffice 4.1
+ */
+published interface XTextOutputStream2
+{
+ /// Interface to write text data
+ interface com::sun::star::io::XTextOutputStream;
+
+ /// Interface to specify the used com::sun::star::io::XOutputStream
+ interface com::sun::star::io::XActiveDataSource;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XTruncate.idl b/udkapi/com/sun/star/io/XTruncate.idl
new file mode 100644
index 0000000000..2034122620
--- /dev/null
+++ b/udkapi/com/sun/star/io/XTruncate.idl
@@ -0,0 +1,42 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module io {
+
+
+
+/** makes it possible to set the size of the underlying data of a stream
+ to zero.
+ */
+published interface XTruncate: com::sun::star::uno::XInterface
+{
+
+ /** sets the size of the underlying data of the stream to zero.
+ */
+ void truncate()
+ raises( IOException );
+
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/io/XXMLExtractor.idl b/udkapi/com/sun/star/io/XXMLExtractor.idl
new file mode 100644
index 0000000000..032c76a0bd
--- /dev/null
+++ b/udkapi/com/sun/star/io/XXMLExtractor.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module io {
+
+/** offers the capability to extract the XML document stream from a document
+ storage.
+*/
+
+published interface XXMLExtractor : com::sun::star::uno::XInterface
+{
+ /** extracts the XML stream from the document storage.
+
+ @returns
+ the extracted XML stream.
+ */
+ com::sun::star::io::XInputStream extract( [in] com::sun::star::io::XInputStream aStream );
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/java/InvalidJavaSettingsException.idl b/udkapi/com/sun/star/java/InvalidJavaSettingsException.idl
new file mode 100644
index 0000000000..98591e110f
--- /dev/null
+++ b/udkapi/com/sun/star/java/InvalidJavaSettingsException.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module java {
+
+
+/** indicates the Java settings have been modified.
+
+ <p>The Java framework uses a configuration file, which can be used
+ by distributors to determine what versions are supported. If this
+ file is modified, then the current settings are regarded as invalid.</p>
+
+ @since OOo 2.0
+ */
+exception InvalidJavaSettingsException: JavaInitializationException
+{
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/java/JavaDisabledException.idl b/udkapi/com/sun/star/java/JavaDisabledException.idl
new file mode 100644
index 0000000000..7baf5be7ba
--- /dev/null
+++ b/udkapi/com/sun/star/java/JavaDisabledException.idl
@@ -0,0 +1,36 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module java {
+
+
+/** indicates that Java could not be initialized because it has
+ been switched off.<p>
+ The user has switched off Java in the configuration of the office,
+ for example by means of the options dialog.
+
+ @since OOo 1.1.2
+ */
+published exception JavaDisabledException: JavaInitializationException
+{
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/java/JavaInitializationException.idl b/udkapi/com/sun/star/java/JavaInitializationException.idl
new file mode 100644
index 0000000000..eb768494b3
--- /dev/null
+++ b/udkapi/com/sun/star/java/JavaInitializationException.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module java {
+
+
+/** indicates that there is no Java available <p>
+ It is presumed that Java is a vital part of an office installation.
+ That is, if Java does work for some reason, it is not guaranteed that
+ the office is functional. A JavaInitializationException is therefore
+ caused by some misconfiguration of Java which is closer described by
+ other exceptions in this namespace which inherit JavaInitializationException.
+ These are:
+ <p>
+ com::sun::star::java::JavaDisabledException <br>
+ com::sun::star::java::JavaNotConfiguredException <br>
+ com::sun::star::java::MissingJavaRuntimeException <br>
+ com::sun::star::java::JavaVMCreationFailureException <br>
+
+ @since OOo 1.1.2
+ */
+published exception JavaInitializationException: com::sun::star::uno::DeploymentException
+{
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/java/JavaNotConfiguredException.idl b/udkapi/com/sun/star/java/JavaNotConfiguredException.idl
new file mode 100644
index 0000000000..7f85e907dc
--- /dev/null
+++ b/udkapi/com/sun/star/java/JavaNotConfiguredException.idl
@@ -0,0 +1,35 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module java {
+
+
+/** indicates that the user did not configure Java for an Office installation. <p>
+ This exception occurs if there is no java.ini or javarc available. This usually
+ happens if a user cancels the Java configuration which of the office.
+
+ @since OOo 1.1.2
+ */
+published exception JavaNotConfiguredException: JavaInitializationException
+{
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/java/JavaNotFoundException.idl b/udkapi/com/sun/star/java/JavaNotFoundException.idl
new file mode 100644
index 0000000000..19d1dd8c34
--- /dev/null
+++ b/udkapi/com/sun/star/java/JavaNotFoundException.idl
@@ -0,0 +1,33 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module java {
+
+
+/** indicates that no suitable JRE was found.
+
+ @since OOo 2.0
+ */
+exception JavaNotFoundException: JavaInitializationException
+{
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/java/JavaVMCreationFailureException.idl b/udkapi/com/sun/star/java/JavaVMCreationFailureException.idl
new file mode 100644
index 0000000000..3030a857df
--- /dev/null
+++ b/udkapi/com/sun/star/java/JavaVMCreationFailureException.idl
@@ -0,0 +1,46 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module java {
+
+
+/** indicates that the Java Virtual Machine could not be created <p>
+ This exception can be thrown when the creation of the Java Virtual
+ Machine failed, even if the runtime library could be loaded.
+ Possible reasons for a failure are that JNI_CreateJavaVM returns
+ an error code that reflects a failure, JNI_CreateJavaVM does not
+ return because it tries to quit the process ( _exit), the shared
+ library is corrupted, so that the symbols for JNI_GetDefaultVMInitArgs
+ or JNI_CreateJavaVM cannot be found, etc.
+
+ @since OOo 1.1.2
+ */
+published exception JavaVMCreationFailureException: JavaInitializationException
+{
+ /** contains an error code that reflects the returned error code of
+ JNI_CreateJavaVM or other errors. A negative value represents
+ the returned error code of JNI_CreateJavaVM. All other values
+ indicate a different cause.
+ */
+ long ErrorCode;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/java/JavaVirtualMachine.idl b/udkapi/com/sun/star/java/JavaVirtualMachine.idl
new file mode 100644
index 0000000000..96462fa524
--- /dev/null
+++ b/udkapi/com/sun/star/java/JavaVirtualMachine.idl
@@ -0,0 +1,35 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module java {
+
+
+/** Exports interfaces to handle a Java VM.
+
+ @deprecated
+ A UNO service seems to be at the wrong abstraction level for this
+ functionality. This should probably be replaced by an appropriate C/C++
+ API.
+ */
+published service JavaVirtualMachine : XJavaVM;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/java/MissingJavaRuntimeException.idl b/udkapi/com/sun/star/java/MissingJavaRuntimeException.idl
new file mode 100644
index 0000000000..e5d17c7fbc
--- /dev/null
+++ b/udkapi/com/sun/star/java/MissingJavaRuntimeException.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module java {
+
+
+/** indicates that the Java runtime library could not be found. <p>
+ This happens when a user moves or deletes a Java installation after
+ the office has been configured to use that Java installation.
+
+ @since OOo 1.1.2
+ */
+published exception MissingJavaRuntimeException: JavaInitializationException
+{
+ /** contains the path to the runtime lib as file URL.
+ */
+ string URLRuntimeLib;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/java/RestartRequiredException.idl b/udkapi/com/sun/star/java/RestartRequiredException.idl
new file mode 100644
index 0000000000..f748e2603a
--- /dev/null
+++ b/udkapi/com/sun/star/java/RestartRequiredException.idl
@@ -0,0 +1,33 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module java {
+
+
+/** indicates that the office must be restarted before a JRE can be used.
+
+ @since OOo 2.0
+ */
+exception RestartRequiredException: JavaInitializationException
+{
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/java/WrongJavaVersionException.idl b/udkapi/com/sun/star/java/WrongJavaVersionException.idl
new file mode 100644
index 0000000000..efffa54bdb
--- /dev/null
+++ b/udkapi/com/sun/star/java/WrongJavaVersionException.idl
@@ -0,0 +1,45 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module java {
+
+/** indicates that an operation involving Java (probably executing Java code)
+ failed due to a wrong Java version.
+ */
+published exception WrongJavaVersionException: com::sun::star::uno::Exception
+{
+ /** contains the lowest Java version for which the operation would
+ succeed, or is left empty if this is unknown.
+ */
+ string LowestSupportedVersion;
+
+ /** contains the highest Java version for which the operation would
+ succeed, or is left empty if this is unknown.
+ */
+ string HighestSupportedVersion;
+
+ /** contains the Java version that has been detected, or is left empty if
+ this is unknown.
+ */
+ string DetectedVersion;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/java/XJavaThreadRegister_11.idl b/udkapi/com/sun/star/java/XJavaThreadRegister_11.idl
new file mode 100644
index 0000000000..bd3af7bc01
--- /dev/null
+++ b/udkapi/com/sun/star/java/XJavaThreadRegister_11.idl
@@ -0,0 +1,52 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module java {
+
+/** must be implemented by the user of the XJavaThreadRegister_11.
+
+ @note incomplete
+ @deprecated
+ */
+published interface XJavaThreadRegister_11: com::sun::star::uno::XInterface
+{
+ /** returns `TRUE` if the current thread is already attached to the VM otherwise `FALSE`.
+ */
+ boolean isThreadAttached();
+
+ /** registers the current thread.
+
+ <p>This method should be called every time a JNI function is called from Java. </p>
+ */
+ void registerThread();
+
+
+ /** revokes the current thread from the list of registered threads.
+
+ <p>This method should be called at the end of every JNI call from Java. </p>
+ */
+ void revokeThread();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/java/XJavaVM.idl b/udkapi/com/sun/star/java/XJavaVM.idl
new file mode 100644
index 0000000000..b4c9905eaf
--- /dev/null
+++ b/udkapi/com/sun/star/java/XJavaVM.idl
@@ -0,0 +1,110 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module java {
+
+/** must be implemented by the user of the XJavaVM.
+
+ @deprecated
+ A UNO interface seems to be at the wrong abstraction level for this
+ functionality (also, the C++ classes <code>jvmaccess::VirtualMachine</code>
+ and <code>jvmaccess::UnoVirtualMachine</code> used by
+ com::sun::star::java::XJavaVM::getJavaVM() are not
+ part of the public C++ UNO runtime API). This should probably be replaced
+ by an appropriate C/C++ API.
+ */
+published interface XJavaVM: com::sun::star::uno::XInterface
+{
+ /** returns the address of the Java Virtual Machine.
+
+ <p>If the VM is not already instantiated, it will be now.</p>
+
+ <p>If the <code>processID</code> is a normal 16-byte ID, the returned
+ `any` contains a JNI <code>JavaVM</code> pointer as a
+ `long` or `hyper` integer (depending on the
+ platform). If the <code>processID</code> does not match the current
+ process, or if the VM cannot be instantiated for whatever reason, a
+ `VOID` `any` is returned.</p>
+
+ <p>If the <code>processID</code> has an additional 17th byte of
+ value&nbsp;<code>0</code>, the returned `any` contains a
+ non&ndash;reference-counted pointer to a (reference-counted) instance of
+ the C++ <code>jvmaccess::VirtualMachine</code> class, always represented
+ as a `hyper` integer. The pointer is guaranteed to be valid
+ as long as the reference to this
+ com::sun::star::java::XJavaVM is valid (but the
+ pointer should be converted into a reference-counted reference as soon
+ as possible). Again, if the first 16 bytes of the
+ <code>processID</code> do not match the current process, or if the VM
+ cannot be instantiated for whatever reason, a `VOID` `any`
+ is returned.</p>
+
+ <p>If the <code>processID</code> has an additional 17th byte of
+ value&nbsp;<code>1</code>, the returned `any` contains a
+ non&ndash;reference-counted pointer to a (reference-counted) instance of
+ the C++ <code>jvmaccess::UnoVirtualMachine</code> class, always
+ represented as a `hyper` integer. The pointer is guaranteed
+ to be valid as long as the reference to this
+ com::sun::star::java::XJavaVM is valid. Again, if
+ the first 16 bytes of the <code>processID</code> do not match the
+ current process, or if the VM cannot be instantiated for whatever
+ reason, a `VOID` `any` is returned.</p>
+
+ <p>The first form (returning a JNI <code>JavaVM</code> pointer) is
+ mainly for backwards compatibility, new code should use the second form
+ (returning a pointer to a <code>jvmaccess::VirtualMachine</code>) if it
+ does not want to use the Java UNO environment, and it should use the
+ third form (returning a pointer to a
+ <code>jvmaccess::UnoVirtualMachine</code>) if it wants to use the Java
+ UNO environment. For example, one advantage of using
+ <code>jvmaccess::VirtualMachine</code> instead of the raw
+ <code>JavaVM</code> pointer is that whenever you attach a native thread
+ to the Java virtual machine, that thread's context
+ <code>ClassLoader</code> (see
+ <code>java.lang.Thread.getContextClassLoader</code>) will automatically
+ be set to a meaningful value.</p>
+
+ @param processID
+ The process ID of the caller's process, possibly extended by a 17th byte
+ of value <code>0</code> or&nbsp;<code>1</code>.
+
+ @return
+ On success, the `any` contains a pointer represented as
+ `long` or `hyper`, otherwise the `any`
+ is `VOID`.
+ */
+ any getJavaVM( [in] sequence<byte> processID );
+
+ /** returns `TRUE` if the VM is started successfully, otherwise `FALSE`.
+ */
+ boolean isVMStarted();
+
+ /** Returns `TRUE` if the VM is enabled.
+
+ <p>It is only possible to get the VM, if this method return 0. </p>
+ */
+ boolean isVMEnabled();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/ArrayIndexOutOfBoundsException.idl b/udkapi/com/sun/star/lang/ArrayIndexOutOfBoundsException.idl
new file mode 100644
index 0000000000..cfdd0bd924
--- /dev/null
+++ b/udkapi/com/sun/star/lang/ArrayIndexOutOfBoundsException.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+/** This exception is thrown to indicate that an array has been
+ accessed with an illegal index.
+
+ <p>The index is either negative or greater than or equal to
+ the size of the array. </p>
+ */
+published exception ArrayIndexOutOfBoundsException: com::sun::star::lang::IndexOutOfBoundsException
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/ClassNotFoundException.idl b/udkapi/com/sun/star/lang/ClassNotFoundException.idl
new file mode 100644
index 0000000000..2c1eb60a73
--- /dev/null
+++ b/udkapi/com/sun/star/lang/ClassNotFoundException.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+/** This exception is thrown when an application tries to load
+ the information on the type through its string name.
+ */
+published exception ClassNotFoundException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/DisposedException.idl b/udkapi/com/sun/star/lang/DisposedException.idl
new file mode 100644
index 0000000000..8dacc58264
--- /dev/null
+++ b/udkapi/com/sun/star/lang/DisposedException.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module lang {
+
+/** This exception occurs if the object behind this interface has been
+ disposed before and can't uphold its method specification anymore.
+
+ <p>The implementation normally should implement the
+ com::sun::star::lang::XComponent interface
+ to indicate this possibility. </p>
+ */
+published exception DisposedException: com::sun::star::uno::RuntimeException
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/EventObject.idl b/udkapi/com/sun/star/lang/EventObject.idl
new file mode 100644
index 0000000000..72ca61a49a
--- /dev/null
+++ b/udkapi/com/sun/star/lang/EventObject.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module lang {
+
+/** specifies the base for all event objects and identifies the
+ source of the event.
+ */
+published struct EventObject
+{
+ /** refers to the object that fired the event.
+ */
+ com::sun::star::uno::XInterface Source;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/IllegalAccessException.idl b/udkapi/com/sun/star/lang/IllegalAccessException.idl
new file mode 100644
index 0000000000..b6f31d2ad6
--- /dev/null
+++ b/udkapi/com/sun/star/lang/IllegalAccessException.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module lang {
+
+/** This exception is thrown when an application tries to change
+ a constant property.
+ */
+published exception IllegalAccessException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/IllegalArgumentException.idl b/udkapi/com/sun/star/lang/IllegalArgumentException.idl
new file mode 100644
index 0000000000..4aa53fa0e7
--- /dev/null
+++ b/udkapi/com/sun/star/lang/IllegalArgumentException.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module lang {
+
+/** This exception is thrown to indicate that a method has
+ passed an illegal or inappropriate argument.
+ */
+published exception IllegalArgumentException
+ : com::sun::star::uno::RuntimeException
+{
+ /** identifies the position of the illegal argument.
+
+ <p>This field is -1 if the position is not known.</p>
+ */
+ short ArgumentPosition;
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/IndexOutOfBoundsException.idl b/udkapi/com/sun/star/lang/IndexOutOfBoundsException.idl
new file mode 100644
index 0000000000..17cc8860bb
--- /dev/null
+++ b/udkapi/com/sun/star/lang/IndexOutOfBoundsException.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+/** This exception is thrown to indicate that a container has been
+ accessed with an illegal index.
+
+ <p>The index is either negative or greater than or equal to
+ the count of the elements. </p>
+ */
+published exception IndexOutOfBoundsException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/InvalidListenerException.idl b/udkapi/com/sun/star/lang/InvalidListenerException.idl
new file mode 100644
index 0000000000..fe9f0dd979
--- /dev/null
+++ b/udkapi/com/sun/star/lang/InvalidListenerException.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+/** is thrown by the XConnectionPoint::advice() method
+ to indicate that the listener has not supplied the necessary
+ interface.
+
+ @see XConnectionPoint
+ */
+published exception InvalidListenerException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/ListenerExistException.idl b/udkapi/com/sun/star/lang/ListenerExistException.idl
new file mode 100644
index 0000000000..fa05b9f718
--- /dev/null
+++ b/udkapi/com/sun/star/lang/ListenerExistException.idl
@@ -0,0 +1,36 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module lang {
+
+/** is thrown by the XConnectionPoint::advise() method
+ to indicate that there is only one listener allowed.
+
+ @see XConnectionPoint
+ */
+published exception ListenerExistException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/Locale.idl b/udkapi/com/sun/star/lang/Locale.idl
new file mode 100644
index 0000000000..b82e203a69
--- /dev/null
+++ b/udkapi/com/sun/star/lang/Locale.idl
@@ -0,0 +1,97 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+/** object represents a specific geographical, political, or cultural region.
+
+ <p>An operation that requires a <code>Locale</code> to perform
+ its task is called <em>locale-sensitive</em> and uses the
+ <code>Locale</code> to tailor information for the user. For example,
+ displaying a number is a locale-sensitive operation; the number
+ should be formatted according to the customs/conventions of the
+ user's native country, region, or culture. </p>
+ */
+published struct Locale
+{
+ /** specifies an <strong>ISO 639 Language Code</strong>.
+
+ <p>These codes are preferably the lower-case two-letter codes as
+ defined by ISO 639-1, or three-letter codes as defined by ISO
+ 639-3. You can find a full list of these codes at a number of
+ sites, such as: <br/>
+ <a href="https://iso639-3.sil.org/code_tables/639/data">
+ <code>https://iso639-3.sil.org/code_tables/639/data</code></a>.
+ </p>
+
+ <p>If this field contains an empty string, the meaning depends on the
+ context.</p>
+
+ <p>Since LibreOffice 4.2, if the locale can not be represented
+ using only ISO 639 and ISO 3166 codes this field contains the
+ ISO 639-3 reserved for local use code <strong>"qlt"</strong> and
+ a <strong>BCP 47</strong> language tag is present in the Variant
+ field. </p>
+ */
+ string Language;
+
+ /** specifies an <strong>ISO 3166 Country Code</strong>.
+
+ <p>These codes are the upper-case two-letter codes as
+ defined by ISO 3166-1. You can find a full list of these codes
+ at a number of sites, such as: <br/>
+ <a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">
+ <code>https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2</code></a>.
+ </p>
+
+ <p>If this field contains an empty string, the meaning depends on the
+ context.</p>
+ */
+ string Country;
+
+ /** specifies a <strong>BCP 47</strong> Language Tag.
+
+ <p>Since LibreOffice 4.2, <strong>if</strong> the Language field
+ is the code <strong>"qlt"</strong> this field contains the full
+ BCP 47 language tag. If the Language field is not "qlt" this
+ field is empty. </p>
+
+ <p>You can find BCP 47 language tag resources at <br/>
+ <a href="https://en.wikipedia.org/wiki/IETF_language_tag">
+ <code>https://en.wikipedia.org/wiki/IETF_language_tag</code></a> and
+ <a href="https://www.w3.org/International/articles/language-tags/">
+ <code>https://www.w3.org/International/articles/language-tags/</code></a>. </p>
+
+ <p>Earlier versions of the documentation mentioned "vendor and
+ browser-specific" codes but that was never supported. Use of any
+ arbitrary strings in the Variant field that do not form a valid
+ BCP 47 language tag is <strong>strongly deprecated</strong>.
+ </p>
+ */
+ string Variant;
+
+};
+
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/MultiServiceFactory.idl b/udkapi/com/sun/star/lang/MultiServiceFactory.idl
new file mode 100644
index 0000000000..8b4f075172
--- /dev/null
+++ b/udkapi/com/sun/star/lang/MultiServiceFactory.idl
@@ -0,0 +1,55 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+
+/** Provides a collection of implementations of services.
+
+ <p>The factories for instantiating objects of implementations
+ are accessed via a service name.</p>
+
+ <p>The com::sun::star::container::XContentEnumerationAccess
+ interface can be supported optionally.
+ If it is supported, it is possible to enumerate all implementations that
+ support the service specified with the argument of
+ com::sun::star::container::XContentEnumerationAccess::createContentEnumeration().
+ The enumerator returns interfaces. The type of the interface is not specified.
+ Commonly this is XSingleComponentFactory.</p>
+*/
+published service MultiServiceFactory
+{
+ /** This interface uses a service name to instantiate a component
+ which supports the specified service.
+ */
+ interface com::sun::star::lang::XMultiServiceFactory;
+
+ /** This interface uses a service name and a component context to instantiate
+ a component which supports the specified service.
+ */
+ interface com::sun::star::lang::XMultiComponentFactory;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/NoSuchFieldException.idl b/udkapi/com/sun/star/lang/NoSuchFieldException.idl
new file mode 100644
index 0000000000..13de684d43
--- /dev/null
+++ b/udkapi/com/sun/star/lang/NoSuchFieldException.idl
@@ -0,0 +1,33 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+/** signals that the class does not have a field of a specified name.
+ */
+published exception NoSuchFieldException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/NoSuchMethodException.idl b/udkapi/com/sun/star/lang/NoSuchMethodException.idl
new file mode 100644
index 0000000000..7f5ed314f8
--- /dev/null
+++ b/udkapi/com/sun/star/lang/NoSuchMethodException.idl
@@ -0,0 +1,33 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+/** signals that the interface does not have a method of a specified name.
+ */
+published exception NoSuchMethodException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/NoSupportException.idl b/udkapi/com/sun/star/lang/NoSupportException.idl
new file mode 100644
index 0000000000..5f513c6f31
--- /dev/null
+++ b/udkapi/com/sun/star/lang/NoSupportException.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+
+/** This exception is thrown when a feature of an interface is not
+ supported.
+
+ <p>An example is a <code>setParent(...)</code> method and the object
+ does not allow the change. </p>
+
+ @see XEnumeration
+ @see com::sun::star::container::XChild::setParent
+ */
+published exception NoSupportException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/NotInitializedException.idl b/udkapi/com/sun/star/lang/NotInitializedException.idl
new file mode 100644
index 0000000000..7126db6853
--- /dev/null
+++ b/udkapi/com/sun/star/lang/NotInitializedException.idl
@@ -0,0 +1,35 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module lang {
+
+
+/** is thrown when a component is attempted to be used before it was
+ completely constructed.
+*/
+published exception NotInitializedException : com::sun::star::uno::RuntimeException
+{
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/NullPointerException.idl b/udkapi/com/sun/star/lang/NullPointerException.idl
new file mode 100644
index 0000000000..55406cf53f
--- /dev/null
+++ b/udkapi/com/sun/star/lang/NullPointerException.idl
@@ -0,0 +1,39 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module lang {
+
+/** This exception is thrown when an application attempts to use
+ `NULL` in a case where an object is required.
+
+ <p>Applications should throw instances of this class to indicate
+ other illegal uses of the `NULL` object. </p>
+
+ @see com::sun::star::reflection::XIdlReflection::forName
+ */
+published exception NullPointerException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/RegistryServiceManager.idl b/udkapi/com/sun/star/lang/RegistryServiceManager.idl
new file mode 100644
index 0000000000..9de4a54862
--- /dev/null
+++ b/udkapi/com/sun/star/lang/RegistryServiceManager.idl
@@ -0,0 +1,64 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+
+/** Provides a collection of implementations for services reading from a
+ persistent registry storage.
+
+ For usage of the service manager have a look at service description
+ of ServiceManager.
+
+ @see ServiceManager
+*/
+published service RegistryServiceManager
+{
+ /** This is a derived ServiceManager service.
+ */
+ service com::sun::star::lang::ServiceManager;
+
+ /** The first two arguments of the initialization arguments reference:
+ <ol>
+ <li>a simple registry
+ (com::sun::star::registry::XSimpleRegistry),
+ i.e. the registry to be read from</li>
+ <li>a component context
+ (com::sun::star::uno::XComponentContext)
+ to be installed as "DefaultContext" property of the
+ ServiceManager which is the context to be used
+ using the XMultiServiceFactory interface.</li>
+ </ol>
+ */
+ interface com::sun::star::lang::XInitialization;
+
+ /** Property access.
+ */
+ interface com::sun::star::beans::XPropertySet;
+ /** Specifies the current registry to be read from.
+ */
+ [readonly, property] com::sun::star::registry::XSimpleRegistry Registry;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/ServiceManager.idl b/udkapi/com/sun/star/lang/ServiceManager.idl
new file mode 100644
index 0000000000..5b9b7a94c8
--- /dev/null
+++ b/udkapi/com/sun/star/lang/ServiceManager.idl
@@ -0,0 +1,108 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module lang {
+
+
+/** Provides a collection of implementations for services. This is a singleton
+ you commonly find in your component context under key
+ <code>/singletons/com.sun.star.lang.theServiceManager</code>.
+
+ <p>
+ The factories are accessed with a service name. It is possible to
+ access the factories with their implementation names, but you should
+ avoid this.
+ </p>
+
+ <p>Service factories added via com::sun::star::container::XSet
+ should support the following interfaces: </p>
+
+ <dl>
+ <dt>XServiceInfo</dt>
+ <dd>supported interfaces/ implementation name</dd>
+
+ <dt>XSingleComponentFactory(optional)</dt>
+ <dd>is used to create instances of the implementation.</dd>
+
+ <dt>XComponent (optional)</dt>
+ <dd>The service manager calls the method
+ com::sun::star::lang::XComponent::dispose()
+ on the factory when going down (i.e. it is commonly disposed by the component context).</dd>
+ </dl>
+
+ <p>Since LibreOffice 3.6, in addition to instances of
+ XServiceInfo et al, the
+ com::sun::star::container::XSet of at least the default
+ C++ service manager implementation now also supports sequences of
+ com::sun::star::beans::NamedValue in <code>insert</code>
+ and <code>remove</code>. The sequence elements must each have a
+ <code>Name</code> of <code>uri</code> and a string <code>Value</code> that
+ is the URI of a service rdb. It is legal for there to be no such
+ <code>uri</code> elements. For <code>insert</code>, there can additionally
+ be an optional element with a <code>Name</code> of
+ <code>component-context</code> and a value that is a non-null reference of
+ type com::sun::star::uno::XComponentContext that shall
+ be used instead of this service manager's default component context when
+ loading the corresponding implementations.
+
+ @see com::sun::star::uno::XComponentContext
+*/
+published service ServiceManager
+{
+ /** This is a derived MultiServiceFactory service.
+ */
+ service com::sun::star::lang::MultiServiceFactory;
+
+ /** Disposing of service manager.
+ <p>
+ The component context disposes its service manager singleton when going down
+ (i.e. when the component context is disposed).
+ </p>
+ */
+ interface com::sun::star::lang::XComponent;
+
+ /** Management of service factories.
+ */
+ interface com::sun::star::container::XSet;
+
+ /** Enumeration of all service factories.
+ <p>
+ It is possible to enumerate all implementations that support the
+ service specified with the argument of the
+ com::sun::star::container::XContentEnumerationAccess::createContentEnumeration() method.
+ The enumerator commonly returns XSingleComponentFactory
+ interfaces.
+ </p>
+ */
+ interface com::sun::star::container::XContentEnumerationAccess;
+
+ /** Property access.
+ */
+ [optional] interface com::sun::star::beans::XPropertySet;
+ /** specifies the default component context to be used, if instantiating services
+ via XMultiServiceFactory
+ */
+ [optional, property] com::sun::star::uno::XComponentContext DefaultContext;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/ServiceNotRegisteredException.idl b/udkapi/com/sun/star/lang/ServiceNotRegisteredException.idl
new file mode 100644
index 0000000000..c17d127475
--- /dev/null
+++ b/udkapi/com/sun/star/lang/ServiceNotRegisteredException.idl
@@ -0,0 +1,36 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+/** This exception is thrown when a needed service is not found.
+
+ <p>Applications should throw instances of this class to indicate
+ that a needed service is not registered. </p>
+ */
+published exception ServiceNotRegisteredException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/SystemDependent.idl b/udkapi/com/sun/star/lang/SystemDependent.idl
new file mode 100644
index 0000000000..80f5bce568
--- /dev/null
+++ b/udkapi/com/sun/star/lang/SystemDependent.idl
@@ -0,0 +1,92 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+/** These constants are used to specify systems which depend on return values.
+
+ <p> You should avoid system-dependent methods if possible.
+
+ @code{.cpp}
+ #ifdef _WIN32 // Microsoft Windows
+ HWND hWin = (HWND)xInterface->getWindowHandle(SystemDependentWIN32);
+ if( hWin ) ...
+ #elif( ... ) // other systems
+ ...
+ #endif
+ @endcode
+
+ <p>The Symbols are now prepended with SYSTEM_ thus we avoid collisions
+ with system headers. </p>
+
+ @see com::sun::star::awt::XSystemDependentWindowPeer
+ @deprecated
+ */
+published constants SystemDependent
+{
+ /** The called interface method returns a value specified for Windows.
+
+ <p>These are Windows XP or higher. </p>
+ */
+ const short SYSTEM_WIN32 = 1;
+
+ /** The called interface method returns a value specified for 16-bit Windows.
+
+ <p>This is Windows 3.11. </p>
+ */
+ const short SYSTEM_WIN16 = 2;
+
+ /** The called interface method returns a value specified for Java.
+
+ <p>These are <em>JRE 1.1</em>, <em>JRE 1.2</em>, <em>JDK 1.1</em>,
+ <em>JDK 1.2</em> or higher. </p>
+
+ <p>The return should be a handle to a Java object locked with
+ the call <code>JavaEnvironment->NewGlobalRef( ... )</code>
+ by the callee. </p>
+ */
+ const short SYSTEM_JAVA = 3;
+
+ /** The called interface method returns a value specified for <em>OS/2</em>.
+ */
+ const short SYSTEM_OS2 = 4;
+ /** The called interface method returns a value specified for <em>macOS</em>.
+ */
+ const short SYSTEM_MAC = 5;
+
+ /** The called interface method returns a value specified for the <em>X Window System</em>.
+ */
+ const short SYSTEM_XWINDOW = 6;
+
+ /** The called interface method returns a value specified for <em>iOS</em>.
+ */
+ const short SYSTEM_IOS = 7;
+
+ /** The called interface method returns a value specified for <em>Android</em>.
+ */
+ const short SYSTEM_ANDROID = 8;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/WrappedTargetException.idl b/udkapi/com/sun/star/lang/WrappedTargetException.idl
new file mode 100644
index 0000000000..61dd950a4d
--- /dev/null
+++ b/udkapi/com/sun/star/lang/WrappedTargetException.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+/** This is a checked exception that wraps an exception thrown
+ by the original target.
+
+ <p>Normally this exception is declared for generic methods. </p>
+
+ @see com::sun::star::container::XIndexAccess
+ @see com::sun::star::container::XNameAccess
+ @see com::sun::star::beans::XPropertySet
+ */
+published exception WrappedTargetException: com::sun::star::uno::Exception
+{
+ /** The exception is thrown by the target.
+ */
+ any TargetException;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/WrappedTargetRuntimeException.idl b/udkapi/com/sun/star/lang/WrappedTargetRuntimeException.idl
new file mode 100644
index 0000000000..3b3c866992
--- /dev/null
+++ b/udkapi/com/sun/star/lang/WrappedTargetRuntimeException.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module lang {
+
+
+/** This is a runtime exception that wraps any other exception thrown
+ by the original target.
+ <p>
+ This exception should not be declared at interfaces, use
+ WrappedTargetException instead. It was defined
+ to transport an exception via interface-methods, that do not
+ specify the appropriate exceptions (so using this exception
+ should in general be avoided).
+ */
+published exception WrappedTargetRuntimeException: ::com::sun::star::uno::RuntimeException
+{
+ /** The exception is thrown by the target.
+ */
+ any TargetException;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XComponent.idl b/udkapi/com/sun/star/lang/XComponent.idl
new file mode 100644
index 0000000000..1e27eba068
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XComponent.idl
@@ -0,0 +1,111 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module lang {
+
+ published interface XEventListener;
+
+/** allows to explicitly free resources and break cyclic references.
+
+ <p>Actually the real lifetime of a UNO object is controlled by
+ references kept on interfaces of this object. But there are two
+ distinct meanings in keeping a reference to an interface:
+ 1st to own the object and 2nd to know the object.
+
+ <p>You are only allowed to keep references of interfaces
+ to UNO objects if you are by definition the owner of that object or
+ your reference is very temporary or you have registered an
+ EventListener at that object and release the reference when
+ "disposing" is called.</p>
+ */
+published interface XComponent: com::sun::star::uno::XInterface
+{
+ /** The owner of an object calls this method to explicitly free all
+ resources kept by this object and thus break cyclic references.
+
+ <p>Only the owner of this object is allowed to call this method.
+ The object should release all resources and references in the
+ easiest possible manner ( for instance no serialization should
+ take place anymore ).
+ </p>
+ <p>
+ The object must notify all registered listeners using the method
+ XEventListener::disposing(). All notified objects
+ should release their references to this object without
+ calling XComponent::removeEventListener()
+ (the disposed object will release the listeners eitherway).
+ </p>
+
+ <p>After this method has been called, the object should behave as passive
+ as possible, thus it should ignore all calls
+ in case it can comply with its specification (for instance addEventListener()).
+ Often the object can't fulfill its specification anymore,
+ in this case it must throw the DisposedException
+ (which is derived from com::sun::star::uno::RuntimeException)
+ when it gets called.</p>
+
+ <p>For some objects no real owner can be identified, thus it can be
+ disposed from multiple reference holders. In this case
+ the object should be able to cope with multiple dispose()-calls (which
+ are inevitable in a multithreaded environment).
+ */
+ void dispose();
+
+ /** adds an event listener to the object.
+
+ <p>The broadcaster fires the disposing method of this listener
+ if the XComponent::dispose() method is called.</p>
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.</p>
+
+ <p>If this XComponent is already disposed when
+ XComponent::addEventListener() is called, the call will not fail
+ with a DisposedException, but the caller will be notified via the
+ XEventListener::disposing()
+ callback. This callback can occur synchronously within the
+ addEventListener() call.</p>
+
+ @see XComponent::removeEventListener
+ */
+ void addEventListener( [in] XEventListener xListener );
+
+ /** removes an event listener from the listener list.
+
+ <p>It is a "noop" if the specified listener is not registered.</p>
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+
+ <p>If this XComponent is already disposed when
+ XComponent::removeEventListener() is called, the call will not
+ fail with a DisposedException,
+ but will rather be ignored silently.</p>
+
+ @see XComponent::addEventListener
+ */
+ void removeEventListener( [in] XEventListener aListener );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XConnectionPoint.idl b/udkapi/com/sun/star/lang/XConnectionPoint.idl
new file mode 100644
index 0000000000..840408054f
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XConnectionPoint.idl
@@ -0,0 +1,155 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+/** supports connection points for connectable objects.
+
+ <p>Connectable objects support the following features: </p>
+
+ <ul>
+ <li>outgoing interfaces, such as event sets; </li>
+ <li>the ability to enumerate the types of the outgoing interfaces;
+ <li>the ability to connect and disconnect sinks to the object
+ for those outgoing types; </li>
+ <li>the ability to enumerate the connections that exist to a
+ particular outgoing interface. </li>
+ </ul>
+
+ <h4>When to Implement?</h4>
+
+ <p>To create a connectable object, you need to implement objects
+ that provide two related interfaces: </p>
+
+ <ul>
+ <li>XConnectionPointContainer </li>
+ <li>XConnectionPoint </li>
+ </ul>
+
+ <p>The XConnectionPointContainer interface is implemented
+ on the connectable object to indicate the existence of the outgoing
+ interfaces. It provides a sequence of sub-objects. It also provides
+ access to all the connection point sub-objects, each of which
+ implements the XConnectionPoint interface. The
+ XConnectionPoint interface provides a sequence of
+ sub-objects. </p>
+
+ <p>Each connection point is a separate sub-object to avoid circular
+ reference counting problems. A connection point controls how many
+ connections (one or more) it will allow in its implementation of
+ XConnectionPoint::advise(). </p>
+
+ <h4>When to use?</h4>
+
+ <p>A client can use the XConnectionPointContainer interface: </p>
+
+ - to get a sequence of connection points for each outgoing type.
+
+ - to obtain access to connection point sub-objects with the
+ XConnectionPoint interface for each
+ outgoing type. Through the XConnectionPoint interface,
+ a client starts or terminates an advisory loop with the
+ connectable object and the client's own sink. The
+ client can also use the XConnectionPoint
+ interface to get a sequence of the connections that it
+ knows about.
+
+ @see XConnectionPointContainer
+ */
+published interface XConnectionPoint: com::sun::star::uno::XInterface
+{
+ /** @returns
+ the type of the outgoing interface managed by this
+ connection point.
+
+ <p>Using the XConnectionPointContainer::getConnectionPoints()
+ method, a client can obtain an XConnectionPoint
+ interface. Using that interface and this method, the client
+ can determine the type of each connection point enumerated. The
+ type returned from this method must enable the caller to access
+ this same connection point through
+ XConnectionPointContainer::findConnectionPoint().
+
+ @see XConnectionPointContainer::findConnectionPoint
+ */
+ type getConnectionType();
+
+ /** @returns
+ the XConnectionPointContainer interface on
+ the parent connectable object.
+
+ @see XConnectionPointContainer
+ */
+ com::sun::star::lang::XConnectionPointContainer getConnectionPointContainer();
+
+ /** creates a connection between a connection point and a
+ client's sink, where the sink implements the outgoing interface
+ supported by this connection point.
+
+ <p>A few <code>add...Listener</code> methods need additional parameters
+ to add listeners or throw exceptions. One of these methods is
+ com::sun::star::beans::XPropertySet::addPropertyChangeListener().
+ We ignore the problem in this interface. A solution must be provided
+ in an additional XConnectionPoint interface. </p>
+
+ @param xListener
+ specifies the listener interface on the client's advise sink.
+ The client's sink receives outgoing calls from the
+ connection point container.
+
+ @throws ListenerExistException
+ if it is an unicast broadcaster and a listener is already set.
+
+ @throws InvalidListenerException
+ if the listener does not supply the needed interfaces.
+
+ @see com::sun::star::beans::XPropertySet::addPropertyChangeListener
+ */
+ void advise( [in] com::sun::star::uno::XInterface xListener )
+ raises( com::sun::star::lang::ListenerExistException,
+ com::sun::star::lang::InvalidListenerException );
+
+ /** terminates a notification previously set up with advise.
+
+ <p>A few <code>remove...Listener</code> methods need additional
+ parameters to add listeners or throw exceptions. One of these methods
+ is com::sun::star::beans::XPropertySet::removePropertyChangeListener().
+ We ignore the problem in this interface. A solution must be
+ provided in an additional XConnectionPoint interface. </p>
+
+ @param xListener
+ specifies the listener interface on the client's advise sink.
+
+ @see com::sun::star::beans::XPropertySet::removePropertyChangeListener
+ */
+ void unadvise( [in] com::sun::star::uno::XInterface xListener );
+
+ /** @returns
+ a sequence of all currently advised connections.
+ */
+ sequence<com::sun::star::uno::XInterface> getConnections();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XConnectionPointContainer.idl b/udkapi/com/sun/star/lang/XConnectionPointContainer.idl
new file mode 100644
index 0000000000..0b221a718b
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XConnectionPointContainer.idl
@@ -0,0 +1,84 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module lang {
+
+ published interface XConnectionPoint;
+
+/** makes it possible to locate a specific connection point
+ for a specified UIK and manages a sequence of connections points.
+
+ <p>An implementation of this interface <strong>must</strong>
+ support the com::sun::star::uno::XWeak interface.
+ Look at the language binding for a superclass or something else. </p>
+
+ @see XConnectionPoint
+ @see com::sun::star::uno::XWeak
+ */
+published interface XConnectionPointContainer: com::sun::star::uno::XInterface
+{
+ /** @returns
+ a sequence of all outgoing types; specifies which are supported
+ by this connectable object.
+ */
+ sequence<type> getConnectionPointTypes();
+
+ /** @returns
+ an XConnectionPoint interface of a
+ connection point for a specified type if that type
+ describes a supported outgoing interface. It is
+ NULL on failure of the call.
+
+ @param aType
+ specifies the connection point's type.
+ */
+ XConnectionPoint queryConnectionPoint( [in] type aType );
+
+ /** creates a connection between this object and a
+ client's sink, where the sink implements the outgoing
+ interface specified with ID.
+
+ <p>The interface is advised under the connection point you
+ get with <code>queryConnectionPoint( id )</code>. </p>
+
+ <p>Use this method instead of the advise method at the
+ connection point, only if you know that the broadcaster supports
+ the outgoing interface, or if it does not matter that the
+ outgoing interface is not supported. </p>
+
+ @see XConnectionPoint::advise
+ */
+ void advise( [in] type aType,
+ [in] com::sun::star::uno::XInterface xListener );
+
+ /** terminates a notification previously set up with
+ advise at the container or at the suitable connection point.
+
+ @see XConnectionPoint::unadvise
+ */
+ void unadvise( [in] type aType,
+ [in] com::sun::star::uno::XInterface xListener );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XEventListener.idl b/udkapi/com/sun/star/lang/XEventListener.idl
new file mode 100644
index 0000000000..bc23425375
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XEventListener.idl
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+/** base interface for all event listeners interfaces.
+ */
+published interface XEventListener: com::sun::star::uno::XInterface
+{
+ /** gets called when the broadcaster is about to be disposed.
+
+ <p>All listeners and all other objects, which reference the
+ broadcaster should release the reference to the source.
+ No method should be invoked anymore on this object (
+ including XComponent::removeEventListener() ).
+ </p>
+
+ <p>This method is called for every listener registration
+ of derived listener interfaced, not only for registrations
+ at XComponent. </p>
+ */
+ void disposing( [in] com::sun::star::lang::EventObject Source );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XInitialization.idl b/udkapi/com/sun/star/lang/XInitialization.idl
new file mode 100644
index 0000000000..8a674743b1
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XInitialization.idl
@@ -0,0 +1,54 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+/** initializes an object directly after its creation.
+
+ <p>This interface works together with factories. If you want to
+ initialize the object after creation, you should
+ support this interface and you may support other interfaces
+ which offer type-safe initialization methods. </p>
+
+ <p>Instead of calling XSingleComponentFactory::createInstanceWithContext()
+ and later initialize(), you should call
+ XSingleComponentFactory::createInstanceWithArgumentsAndContext()
+ to pass the arguments to the instance. The reason is, that a component may want to
+ return the same instance for the same set of parameters, and it can do so by implementing
+ the factory itself.
+ </p>
+
+ */
+published interface XInitialization: com::sun::star::uno::XInterface
+{
+ /** initializes the object.
+
+ <p>It should be called directly after the object is created.
+ */
+ void initialize( [in] sequence<any> aArguments )
+ raises( com::sun::star::uno::Exception );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XLocalizable.idl b/udkapi/com/sun/star/lang/XLocalizable.idl
new file mode 100644
index 0000000000..045b0d412d
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XLocalizable.idl
@@ -0,0 +1,40 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module lang {
+
+/** makes it possible to set a Locale to be used by the object.
+ */
+published interface XLocalizable: com::sun::star::uno::XInterface
+{
+ /** sets the locale to be used by this object.
+ */
+ void setLocale( [in] Locale eLocale );
+
+ /** @returns
+ the locale, which is used by this object.
+ */
+ Locale getLocale();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XMain.idl b/udkapi/com/sun/star/lang/XMain.idl
new file mode 100644
index 0000000000..38a3f6ea14
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XMain.idl
@@ -0,0 +1,45 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+
+/** Executing interface for executable components run by the uno executable
+ loader. This is an application to run components passing the command
+ line arguments.
+*/
+published interface XMain: com::sun::star::uno::XInterface
+{
+ /** This method is called to run the component.
+
+ @param aArguments
+ arguments passed to the component,
+ i.e. the command line arguments
+ @return
+ return value passed to be returned by main()
+ */
+ long run( [in] sequence< string > aArguments );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XMultiComponentFactory.idl b/udkapi/com/sun/star/lang/XMultiComponentFactory.idl
new file mode 100644
index 0000000000..87554caf99
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XMultiComponentFactory.idl
@@ -0,0 +1,75 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+/** Factory interface for creating component instances giving a context from
+ which to retrieve deployment values.
+
+ @see XInitialization
+*/
+published interface XMultiComponentFactory : com::sun::star::uno::XInterface
+{
+ /** Creates an instance of a component which supports the
+ services specified by the factory.
+
+ @param aServiceSpecifier
+ service name
+ @param Context
+ context the component instance gets its deployment values from
+ @return
+ component instance
+ */
+ com::sun::star::uno::XInterface createInstanceWithContext(
+ [in] string aServiceSpecifier,
+ [in] com::sun::star::uno::XComponentContext Context )
+ raises (com::sun::star::uno::Exception);
+
+ /** Creates an instance of a component which supports the
+ services specified by the factory, and initializes the new instance
+ with the given arguments and context.
+
+ @param ServiceSpecifier
+ service name
+ @param Arguments
+ arguments
+ @param Context
+ context the component instance gets its deployment values from
+ @return
+ component instance
+ */
+ com::sun::star::uno::XInterface createInstanceWithArgumentsAndContext(
+ [in] string ServiceSpecifier,
+ [in] sequence<any> Arguments,
+ [in] com::sun::star::uno::XComponentContext Context )
+ raises (com::sun::star::uno::Exception);
+
+ /** Gets the names of all supported services.
+
+ @returns
+ sequence of all service names
+ */
+ sequence< string > getAvailableServiceNames();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XMultiServiceFactory.idl b/udkapi/com/sun/star/lang/XMultiServiceFactory.idl
new file mode 100644
index 0000000000..22f63dd073
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XMultiServiceFactory.idl
@@ -0,0 +1,71 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+
+/** Allows creating instances specified by a string name.
+
+ @note
+ Although this interface deals with the notion of "services", it is
+ not restricted to services but is more general.
+ This interface can be used for all kinds
+ of factories for all kinds of instances, not only UNO services.
+*/
+published interface XMultiServiceFactory: com::sun::star::uno::XInterface
+{
+ /** Creates an instance classified by the specified name.
+
+ @param aServiceSpecifier
+ classified name of instance
+ @return
+ instance
+ */
+ com::sun::star::uno::XInterface createInstance( [in] string aServiceSpecifier )
+ raises( com::sun::star::uno::Exception );
+
+ /** Creates an instance classified by the specified name and passes the arguments
+ to that instance.
+
+ @param ServiceSpecifier
+ classified name of instance
+ @param Arguments
+ arguments passed to the instance
+ @return
+ instance
+ */
+ com::sun::star::uno::XInterface createInstanceWithArguments(
+ [in] string ServiceSpecifier,
+ [in] sequence<any> Arguments )
+ raises( com::sun::star::uno::Exception );
+
+ /** Provides the available names of the factory to be used to create instances.
+
+ @returns
+ sequence of all names
+ */
+ sequence<string> getAvailableServiceNames();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XServiceDisplayName.idl b/udkapi/com/sun/star/lang/XServiceDisplayName.idl
new file mode 100644
index 0000000000..6492249f55
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XServiceDisplayName.idl
@@ -0,0 +1,53 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module lang {
+
+/** provides a name for the service to be used in displays.
+
+ <p>This name can be used in displays (dialogs, menus, etc.) to provide
+ a more memorable / meaningful name than the service name or its
+ implementation name. It should not be used to identify / select a
+ specific service / implementation.</p>
+ */
+published interface XServiceDisplayName : ::com::sun::star::uno::XInterface
+{
+ /** returns the display name of the service for a given language.
+
+ <p>The caller may specify a
+ com::sun::star::lang::Locale for the preferred
+ language of the resulting string.
+ However, if that locale is not supported the resulting string may
+ be given in a different language. Usually this should be English.</p>
+
+ @param aLocale
+ the preferred language for the resulting display name.
+
+ @returns
+ the string to be used for the service in displays.
+ */
+ string getServiceDisplayName(
+ [in] ::com::sun::star::lang::Locale aLocale );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XServiceInfo.idl b/udkapi/com/sun/star/lang/XServiceInfo.idl
new file mode 100644
index 0000000000..5370348e0d
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XServiceInfo.idl
@@ -0,0 +1,59 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+
+/** Provides information regarding the implementation: which services
+ are implemented and the name of the implementation.
+*/
+published interface XServiceInfo: com::sun::star::uno::XInterface
+{
+ /** Provides the implementation name of the service implementation.
+
+ @returns
+ unique name of the implementation
+ */
+ string getImplementationName();
+
+ /** Tests whether the specified service is supported, i.e. implemented
+ by the implementation.
+
+ @param ServiceName
+ name of service to be tested
+ @return
+ true, if service is supported, false otherwise
+ */
+ boolean supportsService( [in] string ServiceName );
+
+ /** Provides the supported service names of the implementation, including
+ also indirect service names.
+
+ @return
+ sequence of service names that are supported
+ */
+ sequence<string> getSupportedServiceNames();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XServiceName.idl b/udkapi/com/sun/star/lang/XServiceName.idl
new file mode 100644
index 0000000000..41267f6597
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XServiceName.idl
@@ -0,0 +1,42 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module lang {
+
+/** identifies the object with a service name which can be used to create
+ such an object by a factory.
+ */
+published interface XServiceName: com::sun::star::uno::XInterface
+{
+ /** @returns
+ the service name that can be used to create such an object
+ by a factory.
+
+ @see com::sun::star::io::XPersistObject::getServiceName
+ */
+ string getServiceName();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XSingleComponentFactory.idl b/udkapi/com/sun/star/lang/XSingleComponentFactory.idl
new file mode 100644
index 0000000000..22895b7914
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XSingleComponentFactory.idl
@@ -0,0 +1,60 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+/** Factory interface to create instances of an implementation of a service
+ specification.
+
+ @see XInitialization
+*/
+published interface XSingleComponentFactory : com::sun::star::uno::XInterface
+{
+ /** Creates an instance of a service implementation.
+
+ @param Context
+ the instance gets its deployment values from this
+ @return
+ component instance
+ */
+ com::sun::star::uno::XInterface createInstanceWithContext(
+ [in] com::sun::star::uno::XComponentContext Context )
+ raises (com::sun::star::uno::Exception);
+
+ /** Creates an instance of a component and initializes the new instance
+ with the given arguments and context.
+
+ @param Arguments
+ arguments passed to implementation
+ @param Context
+ the instance gets its deployment values from this
+ @return
+ component instance
+ */
+ com::sun::star::uno::XInterface createInstanceWithArgumentsAndContext(
+ [in] sequence<any> Arguments,
+ [in] com::sun::star::uno::XComponentContext Context )
+ raises( com::sun::star::uno::Exception );
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XSingleServiceFactory.idl b/udkapi/com/sun/star/lang/XSingleServiceFactory.idl
new file mode 100644
index 0000000000..6231dfc95f
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XSingleServiceFactory.idl
@@ -0,0 +1,58 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module lang {
+
+
+/** Factory interface to produce instances of an implementation
+ of a service specification.
+
+ This interface is deprecated. Please use XSingleComponentFactory.
+
+ @see XInitialization
+ @deprecated
+*/
+published interface XSingleServiceFactory: com::sun::star::uno::XInterface
+{
+ /** Creates an instance of a service implementation.
+
+ @return
+ service instance
+ */
+ com::sun::star::uno::XInterface createInstance()
+ raises( com::sun::star::uno::Exception );
+
+ /** Creates an instance of a service implementation initialized with
+ some arguments.
+
+ @param aArguments
+ arguments passed to implementation
+ @return
+ service instance
+ */
+ com::sun::star::uno::XInterface createInstanceWithArguments( [in] sequence<any> aArguments )
+ raises( com::sun::star::uno::Exception );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XTypeProvider.idl b/udkapi/com/sun/star/lang/XTypeProvider.idl
new file mode 100644
index 0000000000..f9ceaa099d
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XTypeProvider.idl
@@ -0,0 +1,59 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module lang {
+
+
+/** interface to get information about the types
+ (usually interface types) supported by an object.
+ */
+published interface XTypeProvider: com::sun::star::uno::XInterface
+{
+
+ /** returns
+ a sequence of all types (usually interface types) provided by the object.
+ @attention
+ If the object aggregates other objects the sequence also has
+ to contain all types supported by the aggregated objects.
+ */
+ sequence<type> getTypes();
+
+
+ /** Obsolete unique identifier.
+
+ Originally returned a sequence of bytes which, when non-empty, was used
+ as an ID to distinguish unambiguously between two sets of types, for
+ example to realise hashing functionality when the object is
+ introspected. Two objects that returned the same non-empty ID had to
+ return the same set of types in getTypes(). (If a unique ID could not
+ be provided, this method was always allowed to return an empty sequence,
+ though).
+
+ @deprecated This feature should no longer be used, and implementations
+ are encouraged to always return an empty sequence.
+ */
+ sequence<byte> getImplementationId();
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/lang/XUnoTunnel.idl b/udkapi/com/sun/star/lang/XUnoTunnel.idl
new file mode 100644
index 0000000000..edfeeadf84
--- /dev/null
+++ b/udkapi/com/sun/star/lang/XUnoTunnel.idl
@@ -0,0 +1,60 @@
+/* -*- 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 .
+ */
+
+
+
+
+module com { module sun { module star { module lang {
+
+
+/** An interface to tunnel UNO. This means providing access to data or
+ something else, which is not specified by UNO-IDL.
+
+ @attention
+ Restrictive usage. Use only, if there is no better possibility left.
+ It is definitely a hack.
+
+ <p>
+ Common usage:
+ Getting a C++ object pointer in the same process, thus to use an
+ implementation directly, most often because of a design flaw.
+ </p>
+*/
+published interface XUnoTunnel: com::sun::star::uno::XInterface
+{
+ /** Call this method to get something which is not specified in UNO, e.g.
+ an address to some C++ object.
+
+ @attention
+ The identifier specifies how the return value is to be reinterpreted.
+ The identifier must be globally unique, because it is unknown where
+ the implementation resides.
+
+ @param aIdentifier
+ identifier
+ @return
+ something
+ */
+ hyper getSomething( [in] sequence< byte > aIdentifier );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/loader/CannotActivateFactoryException.idl b/udkapi/com/sun/star/loader/CannotActivateFactoryException.idl
new file mode 100644
index 0000000000..29a72b6658
--- /dev/null
+++ b/udkapi/com/sun/star/loader/CannotActivateFactoryException.idl
@@ -0,0 +1,42 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module loader {
+
+
+/** indicates an error during component activation
+ <p> This exception is thrown when an application tries to
+ activate a component factory using the
+ XImplementationLoader::activate()
+ method, but the component factory can not be activated.
+ <p>
+ Possible reasons for this error is a missing shared library or .jar file,
+ a badly linked library, a wrong LD_LIBRARY_PATH or PATH, an incomplete
+ classpath, or a missing java installation. The Message should
+ contain some more detailed explanations.
+ */
+published exception CannotActivateFactoryException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/loader/Dynamic.idl b/udkapi/com/sun/star/loader/Dynamic.idl
new file mode 100644
index 0000000000..4f9303dd6a
--- /dev/null
+++ b/udkapi/com/sun/star/loader/Dynamic.idl
@@ -0,0 +1,45 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module loader {
+
+ published interface XImplementationLoader;
+
+
+/**
+ Makes it possible to access services accessible via a <code>UnoUrlResolver</code>
+ E.g., instantiation of services in another process. This service is still in an
+ experimental state and should not be used in a production environment.
+
+ Is used to write persistent information into the given registry
+ for accessing a <code>SingleServiceFactory</code> and for activating this
+ implementation.
+
+ Allows registration and activation of described service.
+ The url parameter has to be a comma-separated list of attributes.
+ The following attribute types are understood:
+ servicename = the service name to register this component under
+ link = a parameter given to a resolver to get a <code>SingleServiceFactory</code>
+ resolver = a <code>UnoUrlResolver</code> service, which is used to resolve the link
+*/
+published service Dynamic : XImplementationLoader;
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/loader/Java.idl b/udkapi/com/sun/star/loader/Java.idl
new file mode 100644
index 0000000000..5ad7e2db2b
--- /dev/null
+++ b/udkapi/com/sun/star/loader/Java.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module loader {
+
+published interface XImplementationLoader;
+
+
+/**
+ Allows to access a java component stored with a .jar file.
+
+ Is used for writing persistent information in the registry for
+ external implementation and for activating this implementation. The
+ locationUrls must be absolute file urls.
+*/
+published service Java : XImplementationLoader;
+
+
+}; }; }; };
+
+/*=====================================================================
+
+ Source Code Control System - Update
+
+=====================================================================*/
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/loader/Java2.idl b/udkapi/com/sun/star/loader/Java2.idl
new file mode 100644
index 0000000000..b65a20e47b
--- /dev/null
+++ b/udkapi/com/sun/star/loader/Java2.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module loader {
+/**the same as com::sun::star::loader::Java.
+<p>This service was introduced for UNO 3 components. The then
+com::sun::star::loader::Java service was intended for
+UNO 2 components. Since UNO 2 is not supported anymore, the service
+name is reused again.
+
+ @deprecated
+*/
+published service Java2
+{
+ interface XImplementationLoader;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/loader/SharedLibrary.idl b/udkapi/com/sun/star/loader/SharedLibrary.idl
new file mode 100644
index 0000000000..0c5d2cb498
--- /dev/null
+++ b/udkapi/com/sun/star/loader/SharedLibrary.idl
@@ -0,0 +1,42 @@
+/* -*- 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 .
+ */
+
+ module com { module sun { module star { module loader {
+
+ published interface XImplementationLoader;
+
+
+/**
+ Allows to access a native component stored in a shared library.
+
+ Is used for writing persistent information in the registry for
+ an external implementation and for activating this
+ implementation.
+*/
+published service SharedLibrary : XImplementationLoader;
+
+}; }; }; }; //module com.sun.star.loader
+
+/*=====================================================================
+
+ Source Code Control System - Update
+
+=====================================================================*/
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/loader/XImplementationLoader.idl b/udkapi/com/sun/star/loader/XImplementationLoader.idl
new file mode 100644
index 0000000000..58ed3ea9c8
--- /dev/null
+++ b/udkapi/com/sun/star/loader/XImplementationLoader.idl
@@ -0,0 +1,92 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module loader {
+
+
+/** handles activation (loading) of a UNO component.
+ @see com::sun::star::registry::XImplementationRegistration
+ */
+published interface XImplementationLoader: com::sun::star::uno::XInterface
+{
+
+ /** activates a concrete implementation within a component.
+ @param implementationName The name of the implementation,
+ which shall be instantiated. The method
+ XImplementationLoader::writeRegistryInfo()
+ writes a list of implementation names hosted by this component.
+ @param implementationLoaderUrl specification bug, ignore this parameter, please
+ pass an empty string.
+ @param locationUrl Points to the location of the file containing
+ the component (for instance a .jar-file or a shared library).
+ This parameter
+ should be in a URL format (= protocol:protocol-dependent-part).
+ In case the string contains no
+ leading "protocol:", the implementation in general assumes,
+ that it is a relative file url. <p>Special loaders may define
+ their own protocol (for instance an executable loader may need
+ more than only one file url).
+
+ @param xKey A registry which may be used to read static data previously
+ written via XImplementationLoader::writeRegistryInfo().
+ The use of this parameter is deprecated.
+
+ @return returns a factory interface, which allows to create an instance of
+ the concrete implementation. In general, the object supports a
+ com::sun::star::lang::XSingleComponentFactory
+ and the com::sun::star::lang::XServiceInfo interface. The
+ XServiceInfo interface informs about the capabilities of the
+ service implementation, not the factory itself.
+ */
+ com::sun::star::uno::XInterface activate( [in] string implementationName,
+ [in] string implementationLoaderUrl,
+ [in] string locationUrl,
+ [in] com::sun::star::registry::XRegistryKey xKey )
+ raises( com::sun::star::loader::CannotActivateFactoryException );
+
+ /** writes a list of all implementations hosted by this component into a registry key.
+ <p>This method is called during registering a component.
+ @param xKey The registry key, which shall be used to write for each
+ implementation the implementation name plus a list of supported
+ services.
+ @param implementationLoaderUrl specification bug, ignore this parameter, please
+ pass an empty string.
+ @param locationUrl Points to the location of the file containing
+ the component (for instance a .jar-file or a shared library).
+ This parameter
+ should be in a URL format (= protocol:protocol-dependent-part).
+ In case the string contains no
+ leading &quot;protocol:&quot;, the implementation in general assumes,
+ that it is a relative file url. <p>Special loaders may define
+ their own protocol (for instance an executable loader may need
+ more than only one file url).
+ @see com::sun::star::registry::XImplementationRegistration
+ */
+ boolean writeRegistryInfo( [in] com::sun::star::registry::XRegistryKey xKey,
+ [in] string implementationLoaderUrl,
+ [in] string locationUrl )
+ raises( com::sun::star::registry::CannotRegisterImplementationException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/modules.idl b/udkapi/com/sun/star/modules.idl
new file mode 100644
index 0000000000..eba1621927
--- /dev/null
+++ b/udkapi/com/sun/star/modules.idl
@@ -0,0 +1,79 @@
+/* -*- 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 .
+ */
+
+/* note: this file contains documentation of the modules.
+ sub-modules of modules are documented here too so there aren't
+ lots of tiny documentation only files everywhere.
+*/
+
+module com { module sun {
+
+/// the module com::sun::star is the root module of the UNO API.
+module star {
+
+/// Java beans-like property access and introspection.
+module beans {};
+
+/// Interfaces for building bridges to other component models.
+module bridge {
+
+ /// interfaces for UNO bridge to OLE automation.
+ module oleautomation {};
+
+};
+
+/// Data exchange interfaces for inter-process communication.
+module connection {};
+
+/// Interfaces for collections and containers.
+module container {};
+
+/// General input/output interfaces.
+module io {};
+
+/// Java to UNO connectivity interfaces.
+module java {};
+
+/// General UNO concepts like factories etc.
+module lang {};
+
+/// Component implementation loader interfaces.
+module loader {};
+
+/// Runtime object inspection / core reflection interfaces.
+module reflection {};
+
+/// Interfaces to access registration databases.
+module registry {};
+
+/// Scripting language bindings.
+module script {};
+
+/// Interface for authorisation and authentication.
+module security {};
+
+/// Basic UNO interfaces.
+module uno {};
+
+/// URI processing.
+module uri {};
+
+}; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/CoreReflection.idl b/udkapi/com/sun/star/reflection/CoreReflection.idl
new file mode 100644
index 0000000000..2e7fba70d0
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/CoreReflection.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** This service is the implementation of the reflection API.
+ You can obtain information about types, modify values of reflected types
+ and call on objects.
+
+ @deprecated Rather use the 'theCoreReflection' singleton.
+*/
+published service CoreReflection
+{
+ /** Interface to reflect types.
+ */
+ interface com::sun::star::reflection::XIdlReflection;
+
+ /** CoreReflection has to be disposed if possible
+ */
+ [optional] interface com::sun::star::lang::XComponent;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/Dump.idl b/udkapi/com/sun/star/reflection/Dump.idl
new file mode 100644
index 0000000000..849a788a77
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/Dump.idl
@@ -0,0 +1,22 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * 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/.
+ */
+
+module com { module sun { module star { module reflection {
+
+/** Dump any UNOIDL value as a string.
+
+ Mainly useful for logging and debugging purposes.
+
+ @since LibreOffice 7.6
+*/
+singleton Dump: XDump;
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/udkapi/com/sun/star/reflection/FieldAccessMode.idl b/udkapi/com/sun/star/reflection/FieldAccessMode.idl
new file mode 100644
index 0000000000..0dfb5d3604
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/FieldAccessMode.idl
@@ -0,0 +1,48 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Denotes the access possibilities via XIdlField2 to an
+ interface attribute, enum or compound type (struct/exception).
+*/
+published enum FieldAccessMode
+{
+ /** readable and writeable
+ */
+ READWRITE,
+ /** readable only
+ */
+ READONLY,
+ /** writeable only
+ */
+ WRITEONLY,
+ /** Deprecated. Not used anymore.
+ @deprecated
+ */
+ CONST
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/InvalidTypeNameException.idl b/udkapi/com/sun/star/reflection/InvalidTypeNameException.idl
new file mode 100644
index 0000000000..83511eb9d4
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/InvalidTypeNameException.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** thrown in case that a certain type name does exist, but does not meet
+ some other criteria.
+
+ @since OOo 1.1.2
+ */
+published exception InvalidTypeNameException : com::sun::star::uno::Exception
+{
+};
+
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/InvocationTargetException.idl b/udkapi/com/sun/star/reflection/InvocationTargetException.idl
new file mode 100644
index 0000000000..aa59d77379
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/InvocationTargetException.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** This exception denotes a checked exception (wrapping an originating exception)
+ and may be thrown upon using invocation API.
+
+ @see XIdlMethod
+*/
+published exception InvocationTargetException: com::sun::star::lang::WrappedTargetException
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/MethodMode.idl b/udkapi/com/sun/star/reflection/MethodMode.idl
new file mode 100644
index 0000000000..fffd7ce013
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/MethodMode.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** MethodMode denotes the mode in which method calls are run, i.e. either oneway or
+ twoway. Mode oneway denotes that a call may be run asynchronously
+ (thus having no out parameters or return value)
+*/
+published enum MethodMode
+{
+ /** method may be run asynchronously
+ */
+ ONEWAY,
+
+ /** method is run The
+ */
+ TWOWAY
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl b/udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl
new file mode 100644
index 0000000000..36349949aa
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl
@@ -0,0 +1,36 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** thrown in case that a certain type name does not exist.
+
+ @since OOo 1.1.2
+ */
+published exception NoSuchTypeNameException : com::sun::star::uno::Exception
+{
+};
+
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/ParamInfo.idl b/udkapi/com/sun/star/reflection/ParamInfo.idl
new file mode 100644
index 0000000000..a5b370359e
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/ParamInfo.idl
@@ -0,0 +1,46 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module reflection {
+
+ published interface XIdlClass;
+
+
+/** Provides information about a formal parameter of a method.
+*/
+published struct ParamInfo
+{
+ /** name of the parameter
+ */
+ string aName;
+
+ /** parameter mode: in, out, inout
+ */
+ ParamMode aMode;
+
+ /** formal type of the parameter
+ */
+ XIdlClass aType;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/ParamMode.idl b/udkapi/com/sun/star/reflection/ParamMode.idl
new file mode 100644
index 0000000000..2d3739952b
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/ParamMode.idl
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** The parameter mode denotes the transfer between caller and callee
+ of a method.
+*/
+published enum ParamMode
+{
+ /** parameter serves as pure input for a called method
+ */
+ IN,
+
+ /** parameter serves as pure output for the callee (in addition to the return value)
+ */
+ OUT,
+
+ /** parameter serves as input as well as output; data can transferred in both directions
+ */
+ INOUT
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/ProxyFactory.idl b/udkapi/com/sun/star/reflection/ProxyFactory.idl
new file mode 100644
index 0000000000..b0f1a9b306
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/ProxyFactory.idl
@@ -0,0 +1,48 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Service to create proxy objects acting on behalf of a given
+ target object.<br>
+ A proxy delegates calls to a given target object.
+ In addition, it is aggregatable, thus it is possible to
+ intercept calls on the proxy's interfaces.
+
+ @attention
+ A proxy object is UNO conform, but does NOT provide original target
+ interfaces on queryInterface() calls. This may lead to problems
+ regarding object identity, e.g. when dealing with listener proxies.
+
+ @deprecated
+ Aggregation will no longer be supported as a high-level concept of UNO.
+ You may still have the option to implement a UNO object consisting of
+ several single objects in your specific programming language, though this
+ depends on your programming language.
+ Thus this service is deprecated, too.
+*/
+published service ProxyFactory : XProxyFactory;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/TypeDescriptionManager.idl b/udkapi/com/sun/star/reflection/TypeDescriptionManager.idl
new file mode 100644
index 0000000000..d40894006b
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/TypeDescriptionManager.idl
@@ -0,0 +1,95 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** This service manages type descriptions and acts as a central access point
+ to every type description. It delegates calls for demanded types to
+ subsequent
+ com::sun::star::reflection::TypeDescriptionProviders
+ and may cache type descriptions.<br>
+ Using cppuhelper's bootstrapping routines bootstrapping an initial
+ component context, there is a singleton accessible via key
+ "/singletons/com.sun.star.reflection.theTypeDescriptionManager".
+ This singleton object is hooked into the C UNO runtime typelib and
+ lives until the context is shut down.<br>
+
+ @see com::sun::star::reflection::TypeDescriptionProvider
+ @see com::sun::star::reflection::XTypeDescription
+*/
+published service TypeDescriptionManager
+{
+ /** Interface to retrieve type descriptions.
+
+ In addition to the semantics specified for the corresponding interface
+ of the TypeDescriptionProvider service (which changed
+ slightly for LibreOffice&nbsp;4.1; see there), this interface allows to
+ retrieve the following entities:
+ <ul>
+ <li>The simple types are accessible via <code>"void"</code>,
+ <code>"boolean"</code>, <code>"byte"</code>, <code>"short"</code>,
+ <code>"unsigned short"</code>, <code>"long"</code>, <code>"unsigned
+ long"</code>, <code>"hyper"</code>, <code>"unsigned hyper"</code>,
+ <code>"float"</code>, <code>"double"</code>, <code>"char"</code>,
+ <code>"string"</code>, <code>"type"</code>, and
+ <code>"any"</code>.</li>
+
+ <li>Sequence types are accessible via
+ <code>"[]<var>ComponentType</var>"</code></li>
+
+ <li>Instantiated polymorphic struct types are accessible via
+ <code>"<var>StructType</var>&lt;<!--
+ --><var>Parameter</var><sub>1</sub>,&hellip;,<!--
+ --><var>Parameter</var><sub><var>n</var></sub>&gt;"</code>.</li>
+
+ <li>Members of interface types are accessible via
+ <code>"<var>InterfaceType</var>::<var>Member</var>"</code>.</li>
+ </ul>
+
+ <p>Even though the name of this interface suggests that the used type
+ names are hierarchical, this doesn't need to be the case. (For example, consider
+ the names of instantiated polymorphic struct types, like
+ <code>"Struct&lt;long&gt;"</code>.)</p>
+ */
+ interface com::sun::star::container::XHierarchicalNameAccess;
+
+ /** You can manually add or remove a providers via this interface.
+ */
+ interface com::sun::star::container::XSet;
+
+ /** Interface to signal shutdown to the manager.<br>
+ This signals all providers to shut down, because usually each provider
+ references its manager, listening for disposing events.
+ */
+ [optional] interface com::sun::star::lang::XComponent;
+
+ /** Interface for creating enumerations for type descriptions supported
+ by this TypeDescriptionManager
+
+ @since OOo 1.1.2
+ */
+ [optional] interface XTypeDescriptionEnumerationAccess;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl b/udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl
new file mode 100644
index 0000000000..e36a284f5d
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl
@@ -0,0 +1,71 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** This service provides type descriptions, i.e. concrete
+ service implementations read from source like the persistent registry
+ database format.<br>
+
+ This old-style service definition mostly serves documentation purposes. It
+ is not intended that an implementation of this service can be obtained at
+ the global service manager using this service identifier.
+
+ @see com::sun::star::reflection::TypeDescriptionManager
+ @see com::sun::star::reflection::XTypeDescription
+*/
+published service TypeDescriptionProvider
+{
+ /** Interface to retrieve type descriptions.
+
+ <p>Names are given in dotted notation, for example
+ <code>"com.sun.star.uno.XInterface"</code>.</p>
+
+ </p>The returned values are generally non-null references of type
+ XTypeDescription. However, before LibreOffice&nbsp;4.1,
+ the value returned for a UNO constant was the value of the constant,
+ rather than a reference to an XConstantTypeDescription
+ object. (It also appears that some implementations return values for
+ individual UNO enum members, e.g.
+ <code>"com.sun.star.uno.TypeClass.VOID"</code>, though this is probably
+ best treated as an implementation obscurity.)</p>
+ */
+ interface com::sun::star::container::XHierarchicalNameAccess;
+
+ /** Interface to signal shutdown to the provider.<br>
+ This has to be done manually, because usually each provider references
+ its manager (which may implement type caching) for late resolution of
+ partial types (e.g. parameter types).
+ */
+ interface com::sun::star::lang::XComponent;
+
+ /** Interface for creating enumerations for type descriptions supported
+ by this TypeDescriptionProvider
+
+ @since OOo 1.1.2
+ */
+ [optional] interface XTypeDescriptionEnumerationAccess;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl b/udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl
new file mode 100644
index 0000000000..b9e3d50c8f
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl
@@ -0,0 +1,45 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Defines depths for searching through type description collections.
+
+ @since OOo 1.1.2
+ */
+published enum TypeDescriptionSearchDepth
+{
+ /** Infinite search depth. Search through all children including direct
+ children, grand children, grand children's children, ...
+ */
+ INFINITE = -1,
+
+ /** Search only through direct children.
+ */
+ ONE = 1
+};
+
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XArrayTypeDescription.idl b/udkapi/com/sun/star/reflection/XArrayTypeDescription.idl
new file mode 100644
index 0000000000..e89bddeb49
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XArrayTypeDescription.idl
@@ -0,0 +1,56 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Deprecated, UNOIDL does not have an array concept.
+
+ @deprecated
+*/
+published interface XArrayTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the element type of the array.
+
+ @return
+ element type of the array
+ */
+ com::sun::star::reflection::XTypeDescription getType();
+
+ /** Returns the number of dimensions of the array.
+
+ @return
+ dimension of the array
+ */
+ long getNumberOfDimensions();
+
+ /** Returns dimensions of array (same length as getNumberOfDimensions()).
+
+ @return
+ dimensions of array
+ */
+ sequence< long > getDimensions();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl b/udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl
new file mode 100644
index 0000000000..ebb6ed5a76
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl
@@ -0,0 +1,65 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a compound type, i.e. a struct or exception.
+
+ <p>For struct types, this type is superseded by
+ XStructTypeDescription, which supports polymorphic struct
+ types.</p>
+*/
+published interface XCompoundTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the type of the base type of the compound type.
+ If the compound does not have a base type, the method returns a null interface.
+
+ @return
+ base interface or null
+ */
+ com::sun::star::reflection::XTypeDescription getBaseType();
+
+ /** Returns the member types of the struct/exception in IDL declaration order.
+
+ <p>For a polymorphic struct type template, a member of parameterized
+ type is represented by an instance of
+ com::sun::star::reflection::XTypeDescription whose
+ type class is <code>UNKNOWN</code> and whose name is the name of the
+ type parameter.</p>
+
+ @return
+ members of struct/exception
+ */
+ sequence<com::sun::star::reflection::XTypeDescription> getMemberTypes();
+
+ /** Returns the member names of the struct/exception in IDL declaration order.
+
+ @return
+ members names of struct/exception
+ */
+ sequence<string> getMemberNames();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XConstantTypeDescription.idl b/udkapi/com/sun/star/reflection/XConstantTypeDescription.idl
new file mode 100644
index 0000000000..4f329b4796
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XConstantTypeDescription.idl
@@ -0,0 +1,62 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a constant.
+
+ <p>The type class of this type is
+ com::sun::star::uno::TypeClass::CONSTANT.
+
+ <p>Constants may be contained in constants groups and modules.
+
+ @see XModuleTypeDescription
+ @see XConstantsTypeDescription
+
+ @since OOo 1.1.2
+
+ */
+published interface XConstantTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** @return the value of the constant.
+
+ <p>Following types are allowed for constants:
+ <ul>
+ <li>boolean
+ <li>byte
+ <li>short
+ <li>unsigned short
+ <li>long
+ <li>unsigned long
+ <li>hyper
+ <li>unsigned hyper
+ <li>float
+ <li>double
+ </ul>
+ */
+ any getConstantValue();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl b/udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl
new file mode 100644
index 0000000000..b6fc1d09b5
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a constants group.
+
+ <p>The type class of this type is
+ com::sun::star::uno::TypeClass::CONSTANTS.
+
+ @since OOo 1.1.2
+ */
+published interface XConstantsTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the constants defined for this constants group.
+
+ @return a sequence containing constants descriptions.
+ */
+ sequence< XConstantTypeDescription > getConstants();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XDump.idl b/udkapi/com/sun/star/reflection/XDump.idl
new file mode 100644
index 0000000000..fac2a48eaf
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XDump.idl
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * 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/.
+ */
+
+module com { module sun { module star { module reflection {
+
+/** Dump any UNOIDL value as a string.
+
+ Mainly useful for logging and debugging purposes.
+
+ @since LibreOffice 7.6
+*/
+interface XDump {
+ /** Dump a UNOIDL value as a string.
+
+ This just dumps the value itself, without any further decoration.
+
+ @param value any UNOIDL value
+
+ @returns a string representation of the given value
+ */
+ string dumpValue([in] any value);
+
+ /** Dump the value of a UNOIDL ANY as a string.
+
+ This dumps the type and value of the given ANY.
+
+ @param value any UNOIDL ANY
+
+ @returns a string representation of the given ANY
+ */
+ string dumpAny([in] any value);
+
+ /** Dump a numeric UNOIDL value, interpreted relative to a UNOIDL constants group, as a string.
+
+ @param constantsGroup the name (in dotted notation, as supported by
+ /singletons/theTypeDescriptionManager) of a UNOIDL constants group
+
+ @param value a UNOIDL value of type BOOLEAN, BYTE, SHORT, UNSIGNED SHORT, LONG, UNSIGNED
+ LONG, HYPER, UNSIGNED HYPER, FLOAT, or DOUBLE
+
+ @returns a string representation of the given numeric value
+
+ @throws com::sun::star::lang::IllegalArgumentException if the constantsGroup argument does
+ not represent a UNOIDL constants group or the value argument is of wrong type
+ */
+ string dumpConstant([in] string constantsGroup, [in] any value)
+ raises (com::sun::star::lang::IllegalArgumentException);
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl b/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl
new file mode 100644
index 0000000000..c5603b6be2
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl
@@ -0,0 +1,54 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects an enum type.
+*/
+published interface XEnumTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the default enum value.
+
+ @return
+ default enum value
+ */
+ long getDefaultEnumValue();
+
+ /** Returns the enum member values.
+
+ @return
+ enum member values
+ */
+ sequence<string> getEnumNames();
+
+ /** Returns the enum member names.
+
+ @return
+ enum member names
+ */
+ sequence<long> getEnumValues();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlArray.idl b/udkapi/com/sun/star/reflection/XIdlArray.idl
new file mode 100644
index 0000000000..aadf8f206f
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlArray.idl
@@ -0,0 +1,106 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects an IDL sequence and provides dynamic access to instances of
+ that sequence.
+ This interface supports widening conversion when getting or setting elements.
+
+ @attention
+ Although the name of this interface denotes arrays,
+ sequences are meant. Don't be obfuscated, arrays are not supported by UNO!
+*/
+published interface XIdlArray: com::sun::star::uno::XInterface
+{
+ /** Reallocates the length of the sequence instance.
+
+ @param array
+ sequence instance
+ @param length
+ new length of sequence
+ */
+ void realloc(
+ [inout] any array,
+ [in] long length )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Returns the length of the given sequence.
+
+ @param array
+ sequence instance
+ @return
+ length of sequence
+ */
+ long getLen( [in] any array )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Returns element at given index.
+
+ @param aArray
+ sequence instance
+ @param nIndex
+ index
+ @return
+ value
+
+ @throws IllegalArgumentException
+ if the specified object is not a sequence or if the specified object is null
+
+ @throws ArrayIndexOutOfBoundsException
+ if the specified index argument is negative, or if it is greater than or equal to the
+ length of the specified sequence.
+ */
+ any get(
+ [in] any aArray,
+ [in] long nIndex )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::ArrayIndexOutOfBoundsException );
+
+ /** Sets a new value at given index.
+
+ @param aArray
+ sequence instance
+ @param nIndex
+ index
+ @param aNewValue
+ new value to be set
+
+ @throws IllegalArgumentException
+ if the specified object is not a sequence or if the specified object is null
+
+ @throws ArrayIndexOutOfBoundsException
+ if the specified index argument is negative, or if it is greater than or equal to the
+ length of the specified sequence.
+ */
+ void set(
+ [inout] any aArray,
+ [in] long nIndex,
+ [in] any aNewValue )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::ArrayIndexOutOfBoundsException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlClass.idl b/udkapi/com/sun/star/reflection/XIdlClass.idl
new file mode 100644
index 0000000000..e984dfa74c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlClass.idl
@@ -0,0 +1,187 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module reflection {
+
+ published interface XIdlField;
+ published interface XIdlMethod;
+ published interface XIdlArray;
+
+
+/** Provides information reflecting a UNO type.
+*/
+published interface XIdlClass: com::sun::star::uno::XInterface
+{
+ /** Deprecated. Do not call.
+ @deprecated
+ */
+ sequence<XIdlClass> getClasses();
+ /** Deprecated. Do not call.
+ @deprecated
+ */
+ XIdlClass getClass( [in] string aName );
+
+ /** Tests whether two reflecting objects reflect the same type.
+
+ @returns
+ true, if the objects reflect the same type, false otherwise.
+ */
+ boolean equals( [in] XIdlClass Type );
+
+ /** Tests whether values of this reflected type are assignable from values
+ of a second one (<code>xType</code>).
+
+ @param xType
+ another reflected type
+ @return
+ true, if values of this reflected type are assignable
+ from values of <code>xType</code>.
+ */
+ boolean isAssignableFrom( [in] XIdlClass xType );
+
+ /** Returns the com::sun::star::uno::TypeClass
+ of the reflected type.
+
+ @returns
+ type class of the reflected type.
+ */
+ com::sun::star::uno::TypeClass getTypeClass();
+
+ /** Returns the fully-qualified name of the reflected type.
+
+ @returns
+ the fully-qualified name of the type
+ */
+ string getName();
+
+ /** Deprecated. Do not call.
+
+ @deprecated
+ */
+ com::sun::star::uno::Uik getUik();
+
+ /** If the reflected type is an interface, then the returned
+ sequence of XIdlClass reflect the base interfaces.
+ <br>
+ If the reflected type is not an interface or an interface that is
+ not derived from another, then an empty sequence is returned.
+
+ @return
+ all base interfaces of an interface type or an empty sequence.
+ */
+ sequence<XIdlClass> getSuperclasses();
+
+ /** Deprecated. Do not call.
+ @deprecated
+ */
+ sequence<XIdlClass> getInterfaces();
+
+ /** If the reflected type is an array or sequence, then this method
+ returns a XIdlClass interface reflecting
+ the element.
+
+ @return
+ reflection interface of the element type of an array or
+ sequence type (null-reference otherwise).
+ */
+ XIdlClass getComponentType();
+
+ /** If the reflected type is an interface, struct or union, then you
+ get a XIdlField interface reflecting the demanded
+ field (/interface attribute) by name.
+ <br>
+ If the reflected type is not an interface, struct or union or the
+ interface, struct or union does not have a field (/interface attribute)
+ with the demanded name, then a null-reference is returned.
+
+ @param aName
+ name of the demanded field reflection
+ @return
+ demanded field (/interface attribute) reflection (or null-reference)
+ */
+ XIdlField getField( [in] string aName );
+
+ /** If the reflected type is an interface, struct or union, then you
+ get a sequence of XIdlField interfaces reflecting all fields
+ (/interface attributes). This also includes all inherited
+ fields (/interface attributes) of the interface, struct of union.
+ <br>
+ If the reflected type is not an interface, struct or union or the
+ interface, struct or union does not have any field (/interface attribute),
+ then an empty sequence is returned.
+
+ @return
+ all field (/interface attribute) reflections (or empty sequence)
+ */
+ sequence<XIdlField> getFields();
+
+ /** If the reflected type is an interface, then you get
+ a XIdlMethod interface reflecting the demanded method by name.
+ <br>
+ If the reflected type is not an interface or the interface does not have
+ a method with the demanded name (including inherited methods),
+ then a null-reference is returned.
+
+ @param aName
+ name of demanded method reflection
+ @return
+ demanded method reflection (or null-reference)
+ */
+ XIdlMethod getMethod( [in] string aName );
+
+ /** If the reflected type is an interface, then you get
+ a sequence of XIdlMethod interfaces reflecting all methods
+ of the interface. This also includes the inherited methods of the interface.
+ <br>
+ If the reflected type is not an interface or the interface
+ does not have any methods, then a null-reference is returned.
+
+ @return
+ all method reflections (or empty sequence)
+ */
+ sequence<XIdlMethod> getMethods();
+
+ /** If the reflected type is an array, then you get
+ a XIdlArray interface to modify instances of the array type.
+ <br>
+ If the reflected type is not an array, then a null-reference is returned.
+
+ @return
+ interface to modify array instances (or null-reference)
+ */
+ XIdlArray getArray();
+
+ /** This method creates instances of the reflected type.
+
+ @attention
+ Instances of type <code>any</code> can not be passed using an <code>any</code>, because
+ anys cannot be nested. So if the reflected type is an <code>any</code>, then the
+ returned value is empty.
+
+ @param obj
+ pure out parameter to pass the created instance
+ */
+ void createObject( [out] any obj );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlClassProvider.idl b/udkapi/com/sun/star/reflection/XIdlClassProvider.idl
new file mode 100644
index 0000000000..a8d7be0c5c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlClassProvider.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Deprecated interface. Do not use anymore.
+
+ @deprecated
+*/
+published interface XIdlClassProvider: com::sun::star::uno::XInterface
+{
+ sequence<com::sun::star::reflection::XIdlClass> getIdlClasses();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlField.idl b/udkapi/com/sun/star/reflection/XIdlField.idl
new file mode 100644
index 0000000000..d113825ddb
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlField.idl
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Deprecated. Use com::sun::star::reflection::XIdlField2
+ instead.
+
+ @deprecated
+*/
+published interface XIdlField: com::sun::star::reflection::XIdlMember
+{
+ com::sun::star::reflection::XIdlClass getType();
+ com::sun::star::reflection::FieldAccessMode getAccessMode();
+ any get(
+ [in] any obj )
+ raises( com::sun::star::lang::IllegalArgumentException );
+ void set(
+ [in] any obj,
+ [in] any value )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::IllegalAccessException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlField2.idl b/udkapi/com/sun/star/reflection/XIdlField2.idl
new file mode 100644
index 0000000000..22052e7938
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlField2.idl
@@ -0,0 +1,95 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects an IDL interface attribute, enum or compound type
+ (i.e. struct/exception) member.
+*/
+published interface XIdlField2: com::sun::star::reflection::XIdlMember
+{
+ /** Returns the type of the field.
+
+ @return
+ type of the field
+ */
+ com::sun::star::reflection::XIdlClass getType();
+
+ /** Returns the access mode of the field, i.e. read-write, read-only or
+ write-only (access mode "const" is deprecated).
+
+ @return
+ access mode of the field
+ */
+ com::sun::star::reflection::FieldAccessMode getAccessMode();
+
+ /** Gets the value of the reflected field from the given object,
+ i.e. an interface, enum or compound type (struct/exception).
+ For enums, the given object is ignored; the returned value
+ reflects the constant enum 32-bit value.
+
+ <p>When setting an interface attribute raises a
+ non com::sun::star::uno::RuntimeException, it is
+ wrapped in a com::sun::star::lang::WrappedTargetRuntimeException.</p>
+
+ @param obj
+ object instance having member of reflected type
+ @return
+ value of field
+
+ @throws IllegalAccessException
+ A com::sun::star::lang::IllegalAccessException
+ is thrown if the given object is no interface, enum or compound type;
+ or the given object does not have the reflected field.
+ */
+ any get(
+ [in] any obj )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Sets the value of the reflected field of the given object,
+ i.e. an interface or compound type (struct/exception).
+
+ <p>When setting an interface attribute raises a
+ non com::sun::star::uno::RuntimeException, it is
+ wrapped in a com::sun::star::lang::WrappedTargetRuntimeException.</p>
+
+ @param obj
+ object instance having member of reflected type
+ @param value
+ value to be set
+
+ @throws IllegalAccessException
+ A com::sun::star::lang::IllegalAccessException
+ is thrown if the given object is no interface or compound type;
+ or the given object does not have the reflected field.
+ */
+ void set(
+ [inout] any obj,
+ [in] any value )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::IllegalAccessException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlMember.idl b/udkapi/com/sun/star/reflection/XIdlMember.idl
new file mode 100644
index 0000000000..81bdeff2c2
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlMember.idl
@@ -0,0 +1,48 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+ published interface XIdlClass;
+
+/** Base interface for XIdlField2s and XIdlMethods.
+*/
+published interface XIdlMember: com::sun::star::uno::XInterface
+{
+ /** Returns the declaring type of this field, i.e. the type having
+ the member declared (interface, enum, struct, exception).
+
+ @returns
+ declaring type
+ */
+ XIdlClass getDeclaringClass();
+
+ /** Returns the fully-qualified name of the member.
+
+ @return fully-qualified name of the member
+ */
+ string getName();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlMethod.idl b/udkapi/com/sun/star/reflection/XIdlMethod.idl
new file mode 100644
index 0000000000..0d814796d1
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlMethod.idl
@@ -0,0 +1,105 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+ published interface XIdlClass;
+
+
+/** Reflects an IDL interface method.
+*/
+published interface XIdlMethod: com::sun::star::reflection::XIdlMember
+{
+ /** Returns the return type of the reflected method.
+
+ @return
+ return type of reflected method
+ */
+ XIdlClass getReturnType();
+
+ /** Returns the formal parameter types of the reflected method in order of IDL
+ declaration.
+
+ @return
+ formal parameter types of reflected method
+ */
+ sequence<XIdlClass> getParameterTypes();
+
+ /** Returns formal parameter information of the reflected method
+ in order of IDL declaration.
+ Parameter information reflects the parameter's access mode (in, out, inout),
+ the parameter's name and formal type.
+
+ @return
+ parameter information of reflected method
+ */
+ sequence<ParamInfo> getParameterInfos();
+
+ /** Returns the declared exceptions types of the reflected method.
+
+ @return
+ declared exception types of reflected method
+ */
+ sequence<com::sun::star::reflection::XIdlClass> getExceptionTypes();
+
+ /** Returns the method mode in which calls are run, i.e. either oneway or
+ twoway. Method mode oneway denotes that a call may be run asynchronously
+ (thus having no out parameters or return value)
+
+ @return
+ method mode of reflected method
+ */
+ com::sun::star::reflection::MethodMode getMode();
+
+ /** Invokes the reflected method on a given object with the given parameters.
+ The parameters may be widening converted to fit their exact IDL type,
+ meaning no loss of information.
+
+ @param obj
+ object to call on
+ @param args
+ arguments passed to the method
+ @return
+ return value of the method call (may be empty for methods returning void)
+
+ @throws IllegalArgumentException
+ if the given object is a nuull reference or does not support the reflected
+ method's interface
+ @throws IllegalArgumentException
+ if the given number of arguments differ from the expected number
+ or the given arguments' types differ from the expected ones (even a
+ widening conversion was not possible)
+ @throws InvocationTargetException
+ if the reflected method that has been invoked has thrown an exception.
+ The original exception will be wrapped up and signalled by the
+ InvocationTargetException
+ */
+ any invoke(
+ [in] any obj,
+ [inout] sequence<any> args )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::reflection::InvocationTargetException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIdlReflection.idl b/udkapi/com/sun/star/reflection/XIdlReflection.idl
new file mode 100644
index 0000000000..871287363d
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIdlReflection.idl
@@ -0,0 +1,59 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Interface to reflect types.
+
+ @see CoreReflection
+ @see XIdlClass
+*/
+published interface XIdlReflection: com::sun::star::uno::XInterface
+{
+ /** Obtaining a reflection interface for a type. You specify the type by
+ its name.
+ If the given type name can not be reflected, then a null-reference
+ is returned.
+
+ @param aTypeName
+ the type's name
+ @return
+ reflection interface for the demanded type (or null)
+ */
+ com::sun::star::reflection::XIdlClass forName( [in] string aTypeName );
+
+ /** Obtaining a reflection interface for an object. This method takes
+ the type of the object the any contains into account. If the any
+ contains no object, then a null-reference is returned.
+
+ @param aObj
+ an object
+ @return
+ reflection interface of the type of the demanded object (or null)
+ */
+ com::sun::star::reflection::XIdlClass getType( [in] any aObj );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl b/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl
new file mode 100644
index 0000000000..be4755b6a1
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a typedef or sequence type.
+ The type class of this description is TypeClass_TYPEDEF or
+ TypeClass_SEQUENCE.
+*/
+published interface XIndirectTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the typedefed type, if the type is a typedef,
+ or the element type, if the type is a sequence.
+
+ @return
+ referenced type
+ */
+ com::sun::star::reflection::XTypeDescription getReferencedType();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl
new file mode 100644
index 0000000000..c44dad68b1
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl
@@ -0,0 +1,53 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects an interface attribute type.
+
+ <p>This type is superseded by
+ XInterfaceAttributeTypeDescription2, which supports extended
+ attributes.</p>
+
+ The type class of this type is TypeClass_INTERFACE_ATTRIBUTE.
+*/
+published interface XInterfaceAttributeTypeDescription: com::sun::star::reflection::XInterfaceMemberTypeDescription
+{
+ /** Returns true, if this attribute is read-only.
+
+ @return
+ true, if attribute is read-only
+ */
+ boolean isReadOnly();
+
+ /** Returns the type of the attribute.
+
+ @return
+ type of attribute
+ */
+ com::sun::star::reflection::XTypeDescription getType();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl
new file mode 100644
index 0000000000..7cc2a323a1
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl
@@ -0,0 +1,66 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module reflection {
+
+interface XCompoundTypeDescription;
+
+/**
+ Reflects an interface attribute, supporting extended attributes that are
+ bound or raise exceptions.
+
+ <p>This type supersedes XInterfaceAttributeTypeDescription,
+ which does not support extended attributes.</p>
+
+ @since OOo 2.0
+ */
+interface XInterfaceAttributeTypeDescription2:
+ XInterfaceAttributeTypeDescription
+{
+ /**
+ Returns whether this object reflects a bound attribute.
+
+ @return `TRUE` iff this object reflects a bound attribute
+ */
+ boolean isBound();
+
+ /**
+ Returns the exceptions that can be raised by the attribute's getter.
+
+ @return the reflections of all the exceptions that are listed in the
+ <code>raises</code> specification of the attribute's getter (if any), in
+ no particular order; all elements of the returned sequence will be
+ reflections of exception types
+ */
+ sequence<XCompoundTypeDescription> getGetExceptions();
+
+ /**
+ Returns the exceptions that can be raised by the attribute's setter.
+
+ @return the reflections of all the exceptions that are listed in the
+ <code>raises</code> specification of the attribute's setter (if any), in
+ no particular order; all elements of the returned sequence will be
+ reflections of exception types
+ */
+ sequence<XCompoundTypeDescription> getSetExceptions();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl
new file mode 100644
index 0000000000..8694a48d71
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl
@@ -0,0 +1,51 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Base interface for reflected interface members.
+
+ @see XInterfaceAttributeTypeDescription
+ @see XInterfaceMethodTypeDescription
+*/
+published interface XInterfaceMemberTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns name of member
+
+ @return
+ member name
+ */
+ string getMemberName();
+
+ /** Returns the position the member including all inherited members of base
+ interfaces.
+
+ @return
+ position of member
+ */
+ long getPosition();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl
new file mode 100644
index 0000000000..abc0e1550c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl
@@ -0,0 +1,62 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects an interface method type.
+ The type class of this type is TypeClass_INTERFACE_METHOD.
+*/
+published interface XInterfaceMethodTypeDescription: com::sun::star::reflection::XInterfaceMemberTypeDescription
+{
+ /** Returns the method's return type.
+
+ @return
+ method's return type
+ */
+ com::sun::star::reflection::XTypeDescription getReturnType();
+
+ /** Returns true, if this method is declared oneway.
+
+ @return
+ true, if this method is declared oneway
+ */
+ boolean isOneway();
+
+ /** Returns all parameters of the method in order of IDL declaration.
+
+ @return
+ method parameters
+ */
+ sequence<com::sun::star::reflection::XMethodParameter> getParameters();
+
+ /** Returns declared exceptions that may occur upon invocations of the method.
+
+ @return
+ declared exceptions of method
+ */
+ sequence<com::sun::star::reflection::XTypeDescription> getExceptions();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl
new file mode 100644
index 0000000000..74f080b361
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl
@@ -0,0 +1,68 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects an interface type.
+
+ <p>This type is superseded by XInterfaceTypeDescription2, which
+ supports multiple inheritance.</p>
+
+ @see XInterfaceMemberTypeDescription
+*/
+published interface XInterfaceTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the base interface or null, if the reflected interface is not
+ inherited from another.
+
+ <p>This method is deprecated, as it only supports single inheritance.
+ See XInterfaceTypeDescription2 for a replacement that
+ supports multiple inheritance.</p>
+
+ @return
+ base interface or null
+ @deprecated
+ */
+ com::sun::star::reflection::XTypeDescription getBaseType();
+
+ /** Deprecated. UIK are not used anymore, a type is uniquely identified by
+ its name.<br>
+ Returns the UIK, i.e. the unique identifier of the interface.
+
+ @return
+ uik of the interface
+ @deprecated
+ */
+ com::sun::star::uno::Uik getUik();
+
+ /** Returns the members of the interfaces, i.e. attributes and methods.
+
+ @returns
+ interface members
+ */
+ sequence<com::sun::star::reflection::XInterfaceMemberTypeDescription> getMembers();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl
new file mode 100644
index 0000000000..c7041ae6ff
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl
@@ -0,0 +1,61 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module reflection {
+
+interface XTypeDescription;
+
+/** Reflects an interface type, supporting multiple inheritance.
+
+ <p>This type supersedes XInterfaceTypeDescription, which only
+ supported single inheritance.</p>
+
+ @since OOo 2.0
+ */
+interface XInterfaceTypeDescription2: XInterfaceTypeDescription {
+ /** Returns a sequence of all directly inherited (mandatory) base interface
+ types.
+
+ @returns
+ a sequence of all directly inherited (mandatory) base interface types,
+ in the correct order; each element of the returned sequence will be the
+ reflection of either an interface type (of
+ type com::sun::star::reflection::XInterfaceTypeDescription) or
+ a typedef (of type com::sun::star::reflection::XIndirectTypeDescription)
+ that&mdash;directly or indirectly&mdash;denotes an interface type
+ */
+ sequence<XTypeDescription> getBaseTypes();
+
+ /** Returns a sequence of all directly inherited optional base interface
+ types.
+
+ @returns
+ a sequence of all directly inherited optional base interface types, in
+ the correct order; each element of the returned sequence will be the
+ reflection of either an interface type (of type
+ com::sun::star::reflection::XInterfaceTypeDescription) or
+ a typedef (of type com::sun::star::reflection::XIndirectTypeDescription)
+ that&mdash;directly or indirectly&mdash;denotes an interface type
+ */
+ sequence<XTypeDescription> getOptionalBaseTypes();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XMethodParameter.idl b/udkapi/com/sun/star/reflection/XMethodParameter.idl
new file mode 100644
index 0000000000..91770cf154
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XMethodParameter.idl
@@ -0,0 +1,74 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a method parameter.
+
+ <p>This type is superseded by XParameter, which supports
+ parameters of service constructors as well as parameters of interface
+ methods.</p>
+
+ @see XInterfaceMethodTypeDescription
+*/
+published interface XMethodParameter: com::sun::star::uno::XInterface
+{
+ /** Returns the name of the parameter
+
+ @return
+ name of parameter
+ */
+ string getName();
+
+ /** Returns the type of the parameter.
+
+ @return
+ type of parameter
+ */
+ com::sun::star::reflection::XTypeDescription getType();
+
+ /** Returns true, if the parameter is declared as [in] or [inout] in IDL.
+
+ @return
+ true, if declared [in] or [inout] parameter
+ */
+ boolean isIn();
+
+ /** Returns true, if the parameter is declared as [out] or [inout] in IDL.
+
+ @return
+ true, if declared [out] or [inout] parameter
+ */
+ boolean isOut();
+
+ /** Returns the position of the parameter regarding the IDL method declaration.
+
+ @return
+ position of the parameter
+ */
+ long getPosition();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl b/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl
new file mode 100644
index 0000000000..0f3463aac4
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a module.
+
+ <p>The type class of this type is
+ com::sun::star::uno::TypeClass::MODULE.
+
+ @since OOo 1.1.2
+ */
+published interface XModuleTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the type descriptions for the members of this module.
+
+ @return a sequence containing type descriptions.
+ */
+ sequence< XTypeDescription > getMembers();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XParameter.idl b/udkapi/com/sun/star/reflection/XParameter.idl
new file mode 100644
index 0000000000..3e41992c5e
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XParameter.idl
@@ -0,0 +1,46 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module reflection {
+
+/**
+ Reflects a parameter of an interface method or a service constructor.
+
+ <p>This type supersedes XMethodParameter, which only supports
+ parameters of interface methods (which cannot have rest parameters).</p>
+
+ @since OOo 2.0
+ */
+interface XParameter: XMethodParameter {
+ /**
+ Returns whether this is a rest parameter.
+
+ <p>A rest parameter must always come last in a parameter list.</p>
+
+ <p>Currently, only service constructors can have rest parameters, and
+ those rest parameters must be in parameters of type `any`.</p>
+
+ @return `TRUE` if and only if this parameter is a rest parameter
+ */
+ boolean isRestParameter();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl b/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl
new file mode 100644
index 0000000000..e7043124e5
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl
@@ -0,0 +1,49 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a property.
+
+ <p>The type class of this type is
+ com::sun::star::uno::TypeClass::PROPERTY.
+
+ @since OOo 1.1.2
+ */
+published interface XPropertyTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** @return the flags defined for this property.
+
+ <p>The possible values are defined in
+ com::sun::star::beans::PropertyAttribute
+ */
+ short getPropertyFlags();
+
+ /** @return the type description for this property.
+ */
+ XTypeDescription getPropertyTypeDescription();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XProxyFactory.idl b/udkapi/com/sun/star/reflection/XProxyFactory.idl
new file mode 100644
index 0000000000..7cb1ed38f6
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XProxyFactory.idl
@@ -0,0 +1,58 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Factory interface to produce proxy objects.
+
+ @deprecated
+ Aggregation will no longer be supported as a high-level concept of UNO.
+ You may still have the option to implement a UNO object consisting of
+ several single objects in your specific programming language, though this
+ depends on your programming language.
+ Thus this interface is deprecated, too.
+*/
+published interface XProxyFactory: com::sun::star::uno::XInterface
+{
+ /** This method creates a new proxy object that acts on behalf of the given
+ target object.<br>
+ The proxy delegates calls to the given target object.
+ In addition, it is aggregatable, thus it is possible to
+ intercept calls on the proxy's interfaces.
+
+ @attention
+ The proxy object is UNO conform, but does NOT provide original target
+ interfaces on queryInterface() calls. This may lead to problems
+ regarding object identity, e.g. when dealing with listener proxies.
+
+ @param xTarget
+ target object
+ @return
+ proxy object
+ */
+ com::sun::star::uno::XAggregation createProxy(
+ [in] com::sun::star::uno::XInterface xTarget );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XPublished.idl b/udkapi/com/sun/star/reflection/XPublished.idl
new file mode 100644
index 0000000000..16964603a2
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XPublished.idl
@@ -0,0 +1,96 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module reflection {
+
+/**
+ Reflects the “published” status of a UNOIDL entity.
+
+ <p>This interface is intended to be supported by objects that also support
+ com::sun::star::reflection::XTypeDescription.
+ (This interface could have been made an optional sub-interface of
+ com::sun::star::reflection::XTypeDescription, but is
+ instead kept independent for reasons of backwards compatibility.)</p>
+
+ <p>For the various kinds of UNOIDL entities that are represented by objects
+ supporting com::sun::star::reflection::XTypeDescription
+ and its subtypes, this optional interface should be supported as follows:</p>
+ <ul>
+ <li>Enum types
+ (com::sun::star::reflection::XEnumTypeDescription),
+ plain struct types
+ (com::sun::star::reflection::XStructTypeDescription),
+ polymorphic struct type templates
+ (com::sun::star::reflection::XStructTypeDescription),
+ exception types (com::sun::star::reflection::XCompoundTypeDescription),
+ interface types (com::sun::star::reflection::XInterfaceTypeDescription2),
+ typedefs (com::sun::star::reflection::XIndirectTypeDescription),
+ individual constants
+ (com::sun::star::reflection::XConstantTypeDescription),
+ constant groups (com::sun::star::reflection::XConstantsTypeDescription),
+ single-interface&ndash;based services
+ (com::sun::star::reflection::XServiceTypeDescription2),
+ accumulation-based services
+ (com::sun::star::reflection::XServiceTypeDescription2),
+ interface-based singletons
+ (com::sun::star::reflection::XSingletonTypeDescription2),
+ and service-based singletons
+ (com::sun::star::reflection::XSingletonTypeDescription2)
+ support the notion of being published. Therefore, for an object that
+ represents any such entity,
+ com::sun::star::reflection::XPublished should be
+ supported.</li>
+
+ <li>Sequence types
+ (com::sun::star::reflection::XIndirectTypeDescription),
+ type parameters of polymorphic struct type templates
+ (com::sun::star::reflection::XTypeDescription),
+ instantiated polymorphic struct types
+ (com::sun::star::reflection::XStructTypeDescription),
+ attributes of interface types
+ (com::sun::star::reflection::XInterfaceAttributeTypeDescription2),
+ methods of interface types
+ (com::sun::star::reflection::XInterfaceMethodTypeDescription),
+ properties of accumulation-based services
+ (com::sun::star::reflection::XPropertyTypeDescription),
+ deprecated
+ com::sun::star::reflection::XArrayTypeDescriptions,
+ and deprecated
+ com::sun::star::reflection::XUnionTypeDescriptions do
+ not support the notion of being published.
+ Therefore, for an object that represents any such entity,
+ com::sun::star::reflection::XPublished should not be
+ supported.</li>
+ </ul>
+
+ @since OOo 2.0
+*/
+interface XPublished {
+ /**
+ Returns the “published” status of a UNOIDL entity.
+
+ @return `TRUE` if the UNOIDL entity represented by this object is
+ published
+ */
+ boolean isPublished();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl b/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl
new file mode 100644
index 0000000000..09768620e4
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl
@@ -0,0 +1,70 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module reflection {
+
+interface XCompoundTypeDescription;
+interface XParameter;
+
+/**
+ Reflects a service constructor.
+
+ @since OOo 2.0
+ */
+interface XServiceConstructorDescription {
+ /**
+ Returns whether the constructor is a default constructor.
+
+ @return `TRUE` if the constructor is a default constructor
+ */
+ boolean isDefaultConstructor();
+
+ /**
+ Returns the constructor's name.
+
+ @return the constructor's name; for a default constructor, an empty
+ `string` is returned
+ */
+ string getName();
+
+ /**
+ Returns the constructor's parameters.
+
+ @return the reflections of all the constructor's parameters, in their
+ lexical order; for a default constructor, an empty sequence is
+ returned
+ */
+ sequence<XParameter> getParameters();
+
+ /**
+ Returns the exceptions that can be raised by the constructor.
+
+ @return the reflections of all the exceptions that are listed in the
+ constructor's <code>raises</code> specification, in no particular order;
+ all elements of the returned sequence will be reflections of exception
+ types; for a default constructor, an empty sequence is returned (even
+ though the mapping of a default constructor in a particular language
+ binding may well raise certain UNO exceptions)
+ */
+ sequence<XCompoundTypeDescription> getExceptions();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl b/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl
new file mode 100644
index 0000000000..09e9f231db
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl
@@ -0,0 +1,85 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a service.
+
+ <p>This type is superseded by XServiceTypeDescription2, which
+ supports single-interface&ndash;based services, in addition to the obsolete,
+ accumulation-based services.</p>
+
+ <p>The type class of this type is
+ com::sun::star::uno::TypeClass::SERVICE.
+
+ @since OOo 1.1.2
+ */
+published interface XServiceTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the type descriptions of the mandatory services
+ defined for this service.
+
+ @return a sequence containing service type descriptions, for an
+ obsolete, accumulation-based service; for a
+ single-interface&ndash;based service, an empty sequence is returned
+ */
+ sequence< XServiceTypeDescription > getMandatoryServices();
+
+ /** Returns the type descriptions of the optional services
+ defined for this service.
+
+ @return a sequence containing service type descriptions, for an
+ obsolete, accumulation-based service; for a
+ single-interface&ndash;based service, an empty sequence is returned
+ */
+ sequence< XServiceTypeDescription > getOptionalServices();
+
+ /** Returns the type descriptions of the mandatory interfaces
+ defined for this service.
+
+ @return a sequence containing interface type descriptions, for an
+ obsolete, accumulation-based service; for a
+ single-interface&ndash;based service, an empty sequence is returned
+ */
+ sequence< XInterfaceTypeDescription > getMandatoryInterfaces();
+
+ /** Returns the type descriptions of the optional interface
+ defined for this service.
+
+ @return a sequence containing interface type descriptions, for an
+ obsolete, accumulation-based service; for a
+ single-interface&ndash;based service, an empty sequence is returned
+ */
+ sequence< XInterfaceTypeDescription > getOptionalInterfaces();
+
+ /** Returns the properties defined for this service.
+
+ @return a sequence containing property descriptions, for an obsolete,
+ accumulation-based service; for a single-interface&ndash;based
+ service, an empty sequence is returned
+ */
+ sequence< XPropertyTypeDescription > getProperties();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl b/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl
new file mode 100644
index 0000000000..9d3b51b956
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl
@@ -0,0 +1,67 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module reflection {
+
+interface XServiceConstructorDescription;
+interface XTypeDescription;
+
+/**
+ Reflects a service, supporting single-interface&ndash;based services.
+
+ <p>This type supersedes XServiceTypeDescription, which only
+ supports obsolete, accumulation-based services.</p>
+
+ @since OOo 2.0
+ */
+interface XServiceTypeDescription2: XServiceTypeDescription {
+ /**
+ Returns whether this object reflects a single-interface&ndash;based
+ service.
+
+ @return `TRUE` if this object reflects a single-interface&ndash;based
+ service, and `FALSE` if this object reflects an obsolete,
+ accumulation-based service
+ */
+ boolean isSingleInterfaceBased();
+
+ /**
+ Returns the interface type associated with the service.
+
+ @return the reflection of the interface type associated with the service
+ (of type com::sun::star::reflection::XInterfaceTypeDescription
+ or, in case of a typedef,
+ com::sun::star::reflection::XIndirectTypeDescription),
+ for a single-interface&ndash;based service; for an obsolete,
+ accumulation-based service, `NULL` is returned
+ */
+ XTypeDescription getInterface();
+
+ /**
+ Returns the constructors of the service.
+
+ @return the reflections of all constructors of the service, in no
+ particular order
+ */
+ sequence<XServiceConstructorDescription> getConstructors();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl b/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl
new file mode 100644
index 0000000000..1b184fe519
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl
@@ -0,0 +1,50 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a singleton.
+
+ <p>This type is superseded by XSingletonTypeDescription2, which
+ supports interface-based singletons, in addition to the obsolete,
+ service-based singletons.</p>
+
+ <p>The type class of this type is
+ com::sun::star::uno::TypeClass::SINGLETON.
+
+ @since OOo 1.1.2
+ */
+published interface XSingletonTypeDescription : com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the service associated with the singleton.
+
+ @return the reflection of the service associated with the singleton, for
+ an obsolete, service-based singleton; for an interface-based
+ singleton, `NULL` is returned
+ */
+ XServiceTypeDescription getService();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl b/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl
new file mode 100644
index 0000000000..dad10090da
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl
@@ -0,0 +1,57 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module reflection {
+
+interface XTypeDescription;
+
+/**
+ Reflects a singleton, supporting interface-based singletons.
+
+ <p>This type supersedes XSingletonTypeDescription, which only
+ supports obsolete, service-based singletons.</p>
+
+ @since OOo 2.0
+ */
+interface XSingletonTypeDescription2: XSingletonTypeDescription {
+ /**
+ Returns whether this object reflects an interface-based singleton.
+
+ @return `TRUE` if this object reflects an interface-based singleton, and
+ `FALSE` if this object reflects an obsolete, service-based singleton
+ */
+ boolean isInterfaceBased();
+
+ /**
+ Returns the interface type associated with the singleton.
+
+ @return the reflection of the interface type associated with the
+ singleton (of type
+ com::sun::star::reflection::XInterfaceTypeDescription
+ or, in case of a typedef,
+ com::sun::star::reflection::XIndirectTypeDescription),
+ for an interface-based singleton; for an obsolete, service-based
+ singleton, `NULL` is returned
+ */
+ XTypeDescription getInterface();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XStructTypeDescription.idl b/udkapi/com/sun/star/reflection/XStructTypeDescription.idl
new file mode 100644
index 0000000000..4470cb79ea
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XStructTypeDescription.idl
@@ -0,0 +1,77 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module reflection {
+
+interface XTypeDescription;
+
+/**
+ Reflects a struct type, supporting polymorphic struct types.
+
+ <p>This type supersedes XCompoundTypeDescription, which only
+ supports plain struct types.</p>
+
+ <p>This type is used to reflect all of the following:</p>
+ <ul>
+ <li>Polymorphic struct type templates, like
+ <code>Struct&lt;T, U&gt;</code>. For these,
+ com::sun::star::reflection::XStructTypeDescription::getTypeParameters()
+ returns a non-empty sequence, while
+ com::sun::star::reflection::XStructTypeDescription::getTypeArguments()
+ returns an empty sequence.</li>
+
+ <li>Instantiated polymorphic struct types, like <code>Struct&lt;long,
+ hyper&gt;</code>. For these,
+ com::sun::star::reflection::XStructTypeDescription::getTypeParameters()
+ returns an empty sequence, while
+ com::sun::star::reflection::XStructTypeDescription::getTypeArguments()
+ returns a non-empty sequence.</li>
+
+ <li>Plain struct types. For these, both
+ com::sun::star::reflection::XStructTypeDescription::getTypeParameters()
+ and
+ com::sun::star::reflection::XStructTypeDescription::getTypeArguments()
+ return an empty sequence.</li>
+ </ul>
+
+ @since OOo 2.0
+ */
+interface XStructTypeDescription: XCompoundTypeDescription {
+ /**
+ Returns the type parameters of a polymorphic struct type template.
+
+ @return a sequence of the names of all type parameters, in the correct
+ order; for a plain struct type, or an instantiated polymorphic struct
+ type, an empty sequence is returned
+ */
+ sequence<string> getTypeParameters();
+
+ /**
+ Returns the type arguments of an instantiated polymorphic struct type.
+
+ @return a sequence of all type arguments, in the correct order; for a
+ plain struct type, or a polymorphic struct type template, an empty
+ sequence is returned
+ */
+ sequence<XTypeDescription> getTypeArguments();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XTypeDescription.idl b/udkapi/com/sun/star/reflection/XTypeDescription.idl
new file mode 100644
index 0000000000..bd39aea8d4
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XTypeDescription.idl
@@ -0,0 +1,61 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Reflects a UNOIDL entity.
+
+ @see XPublished
+ @see XIndirectTypeDescription
+ @see XEnumTypeDescription
+ @see XStructTypeDescription
+ @see XCompoundTypeDescription
+ @see XInterfaceTypeDescription2
+ @see XInterfaceAttributeTypeDescription2
+ @see XInterfaceMethodTypeDescription
+ @see XConstantTypeDescription
+ @see XConstantsTypeDescription
+ @see XServiceTypeDescription2
+ @see XPropertyTypeDescription2
+ @see XSingletonTypeDescription2
+*/
+published interface XTypeDescription : com::sun::star::uno::XInterface
+{
+ /** Returns the type class of the reflected UNOIDL entity.
+
+ @return
+ type class of the entity
+ */
+ com::sun::star::uno::TypeClass getTypeClass();
+
+ /** Returns the fully qualified name of the UNOIDL entity.
+
+ @return
+ fully qualified name of the entity
+ */
+ string getName();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl
new file mode 100644
index 0000000000..05961f6348
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl
@@ -0,0 +1,45 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Defines an enumeration for type descriptions.
+
+ @since OOo 1.1.2
+ */
+published interface XTypeDescriptionEnumeration : com::sun::star::container::XEnumeration
+{
+ /** Returns the next element of the enumeration.
+
+ @returns
+ the next element of this enumeration.
+
+ @throws com::sun::star::container::NoSuchElementException
+ if no more elements exist.
+ */
+ XTypeDescription nextTypeDescription()
+ raises( com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl
new file mode 100644
index 0000000000..c17a313291
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl
@@ -0,0 +1,152 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Defines an interface for creating enumerations for type descriptions.
+
+ @since OOo 1.1.2
+
+ */
+published interface XTypeDescriptionEnumerationAccess : com::sun::star::uno::XInterface
+{
+ /** Creates an enumeration for type descriptions.
+
+ <p>An enumeration is always created for a UNOIDL module. The
+ enumeration contents can be restricted by specifying type classes.
+ Only types that match one of the supplied type classes will be part of
+ the collection. Additionally, it is possible to specify the depth
+ for the search within the underlying type description tree.
+
+ @param moduleName
+ contains the name of a UNOIDL module. Modules are separated by a
+ single '.' (i.e., "com.sun.star.reflection"). The root of the module
+ hierarchy is specified with an empty string. Module names are always
+ absolute, never relative.
+
+ @param types
+ restricts the contents of the enumeration. It will only contain
+ type descriptions that match one of the supplied type classes. An
+ empty sequence specifies that the enumeration shall contain all
+ type descriptions.
+
+ <p>Valid types classes are:
+ <ul>
+ <li>com::sun::star::uno::TypeClass::MODULE
+ <li>com::sun::star::uno::TypeClass::INTERFACE
+ <li>com::sun::star::uno::TypeClass::SERVICE
+ <li>com::sun::star::uno::TypeClass::STRUCT
+ <li>com::sun::star::uno::TypeClass::ENUM
+ <li>com::sun::star::uno::TypeClass::EXCEPTION
+ <li>com::sun::star::uno::TypeClass::TYPEDEF
+ <li>com::sun::star::uno::TypeClass::CONSTANT
+ <li>com::sun::star::uno::TypeClass::CONSTANTS
+ <li>com::sun::star::uno::TypeClass::SINGLETON
+ </ul>
+
+ @param depth
+ specifies the depth of search in the underlying tree of type
+ descriptions. Clients should be aware of the fact that specifying
+ TypeDescriptionSearchDepth::INFINITE can lead to
+ larger delays when constructing or using the
+ XTypeDescriptionEnumeration instance.
+
+ @returns
+ an enumeration of type descriptions.
+
+ <p>The enumeration returns implementations of
+ XTypeDescription. Following concrete UNOIDL parts
+ represented by specialized interfaces derived from
+ XTypeDescription can be returned by the enumerator:
+
+ <table border="1">
+ <tr><th>IDL</th><th>interface</th></tr>
+ <tr>
+ <td>enum</td>
+ <td>XEnumTypeDescription</td>
+ </tr>
+ <tr>
+ <td>struct</td>
+ <td>XCompoundTypeDescription (the returned
+ object should actually implement
+ XStructTypeDescription)</td>
+ </tr>
+ <tr>
+ <td>exception</td>
+ <td>XCompoundTypeDescription</td>
+ </tr>
+ <tr>
+ <td>interface</td>
+ <td>XInterfaceTypeDescription (the returned
+ object should actually implement
+ XInterfaceTypeDescription2)</td>
+ </tr>
+ <tr>
+ <td>service</td>
+ <td>XServiceTypeDescription (the returned
+ object should actually implement
+ XServiceTypeDescription2)</td>
+ </tr>
+ <tr>
+ <td>singleton</td>
+ <td>XSingletonTypeDescription (the returned
+ object should actually implement
+ XSingletonTypeDescription2)</td>
+ </tr>
+ <tr>
+ <td>module</td>
+ <td>XModuleTypeDescription</td>
+ </tr>
+ <tr>
+ <td>typedef</td>
+ <td>XIndirectTypeDescription</td>
+ </tr>
+ <tr>
+ <td>constant</td>
+ <td>XConstantTypeDescription</td>
+ </tr>
+ <tr>
+ <td>constants</td>
+ <td>XConstantsTypeDescription</td>
+ </tr>
+ </table>
+
+ @throws NoSuchTypeNameException
+ in case that the given module name does not exist. This exception
+ will never be thrown in case moduleName is the empty string.
+
+ @throws InvalidTypeNameException
+ in case that the given module name does exist, but does not specify
+ a UNOIDL module. This exception will never be thrown in case
+ moduleName is the empty string.
+ */
+ XTypeDescriptionEnumeration
+ createTypeDescriptionEnumeration(
+ [in] string moduleName,
+ [in] sequence< com::sun::star::uno::TypeClass > types,
+ [in] TypeDescriptionSearchDepth depth )
+ raises( NoSuchTypeNameException, InvalidTypeNameException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl b/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl
new file mode 100644
index 0000000000..fdb7ac0a0c
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl
@@ -0,0 +1,77 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module reflection {
+
+
+/** Deprecated, UNOIDL does not have a union concept.
+
+ @deprecated
+*/
+published interface XUnionTypeDescription: com::sun::star::reflection::XTypeDescription
+{
+ /** Returns the (ordinal) discriminant type.
+
+ @return
+ type of the discriminant
+ */
+ com::sun::star::reflection::XTypeDescription getDiscriminantType();
+
+ /** Returns the default discriminant value.
+
+ @return
+ default discriminant value
+ */
+ any getDefaultDiscriminant();
+
+ /** Returns the type of the default value.
+
+ @return
+ type of the default value
+ */
+ com::sun::star::reflection::XTypeDescription getDefaultMemberType();
+
+ /** Returns discriminants of all members in order of IDL declaration.
+
+ @return
+ discriminants of all members
+ */
+ sequence< any > getDiscriminants();
+
+ /** Returns types of all members in order of IDL declaration.
+
+ @return
+ types of all members
+ */
+ sequence< com::sun::star::reflection::XTypeDescription > getMemberTypes();
+
+ /** Returns names of all members in order of IDL declaration.
+
+ @return
+ names of all members
+ */
+ sequence< string > getMemberNames();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/reflection/theCoreReflection.idl b/udkapi/com/sun/star/reflection/theCoreReflection.idl
new file mode 100644
index 0000000000..2bee5e98e8
--- /dev/null
+++ b/udkapi/com/sun/star/reflection/theCoreReflection.idl
@@ -0,0 +1,31 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module reflection {
+
+/**
+ @since LibreOffice 4.0
+ */
+singleton theCoreReflection : com::sun::star::reflection::XIdlReflection;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/registry/CannotRegisterImplementationException.idl b/udkapi/com/sun/star/registry/CannotRegisterImplementationException.idl
new file mode 100644
index 0000000000..8db91ba8b3
--- /dev/null
+++ b/udkapi/com/sun/star/registry/CannotRegisterImplementationException.idl
@@ -0,0 +1,42 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module registry {
+
+/** is thrown when an application tries to register a new component (implementation) using the
+ XImplementationRegistration::registerImplementation()
+ method, but the component cannot be registered. The reason for this exception could be:<br>
+ <br><ul>
+ <li>the component cannot be found or cannot be loaded (missing path or classpath)
+ <li>the component doesn't provide the necessary specifications (exported registration functions for a
+ C++ component (shared library) or a named registration class with the appropriate methods for
+ a Java component (normally a jar file)).
+ </ul><br>
+
+ */
+published exception CannotRegisterImplementationException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/registry/DefaultRegistry.idl b/udkapi/com/sun/star/registry/DefaultRegistry.idl
new file mode 100644
index 0000000000..e73fc9c777
--- /dev/null
+++ b/udkapi/com/sun/star/registry/DefaultRegistry.idl
@@ -0,0 +1,131 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module registry {
+
+/** implicitly supports a local registry and a read-only
+ system registry for global information.
+ In the context of this service,
+ the functions <code>open</code>, <code>close</code>, and <code>destroy</code>
+ from XSimpleRegistry are not supported and throw an exception
+ if they are used.
+
+ Functions of XSimpleRegistry:
+ <dl>
+ <dt> <b>getURL</b>
+ </dt>
+ <dd> returns the name of the local registry.
+ </dd>
+ <dt> <b>isValid</b>
+ </dt>
+ <dd> checks if the local registry is valid. If the interface is not `NULL`
+ the local registry should always be valid.
+ </dd>
+ <dt> <b>isReadOnly</b> </dt>
+ <dd> checks if the local registry has write protection.
+ </dd>
+ <dt> <b>mergeKey</b>
+ </dt>
+ <dd> merges all information from the specified registry in the local registry.
+ </dd>
+ <dt> <b>getRootKey</b>
+ </dt>
+ <dd> returns a virtual rootkey of both registries.
+ </dd>
+ </dl>
+
+ Functions of XRegistryKey:
+ <dl>
+ <dt> <b>openKey</b>
+ </dt>
+ <dd> returns a virtual key which is specified in the local or the system
+ registry.
+ </dd>
+ <dt> <b>deleteKey</b>
+ </dt>
+ <dd> deletes the key only if it is present in the local registry.
+ </dd>
+ <dt> <b>setLongValue, setAsciiValue, setStringValue, setBinaryValue</b>
+ </dt>
+ <dd> sets the value at the specified key in the local registry.
+ </dd>
+ <dt> <b>getLongValue, getAsciiValue, getStringValue, getBinaryValue</b>
+ </dt>
+ <dd> returns the value at the specified key in the local registry, or if
+ the value is not present in the local registry, it will return the value of the
+ system registry.
+ </dd>
+ <dt> <b>openKeys</b>
+ </dt>
+ <dd> returns a sequence of all subkeys in both registries.
+ </dd>
+ <dt> <b>getKeyNames</b>
+ </dt>
+ <dd> returns a sequence with the names of all subkeys in both registries.
+ </dd>
+ <dt>
+ <b>Note: all write functions only work on the local registry.</b>
+ </dt>
+ </dl>
+
+ How to find the registries:
+ <dl>
+ <dt> search for the system registry:
+ </dt>
+ <dd> The system registry will always be searched in the same directory as the
+ executable. The name of the system registry is "applicat.rdb". If the system
+ registry was not found, then the environment variable STAR_REGISTRY will be checked.
+ If this variable was set, it must contain a full path to a valid system registry.
+ </dd>
+ <dt> Search for the user registry using the following rules:
+ </dt>
+ <dd>
+ <ol>
+ <li> 1. (for further use) search in sversion.ini (.sversionrc) for an entry
+ REGISTRY_VERSION_STRING (example: UserRegistry 5.0/505=test.rdb) in the section
+ [Registry]. If found, then take this value instead of "user.rdb" as "REGISTRY NAME".
+ </li>
+ <li> 2. Search in the config directory of the user for a file "REGISTRY NAME". If
+ found, return the full path and name of the file. If not found, retry this
+ step with a dot before "REGISTRY NAME".
+ </li>
+ <li> 3. If not found, a new user registry with name user.rdb will be created in the user
+ config directory.
+ </li>
+ </ol>
+ </dd>
+ </dl>
+ <h4>Guarantees:</h4>
+
+ <ul>
+ <li>-thread safe</li>
+ </ul>
+ */
+published service DefaultRegistry
+{
+ interface com::sun::star::registry::XSimpleRegistry;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/registry/ImplementationRegistration.idl b/udkapi/com/sun/star/registry/ImplementationRegistration.idl
new file mode 100644
index 0000000000..9f46d1a481
--- /dev/null
+++ b/udkapi/com/sun/star/registry/ImplementationRegistration.idl
@@ -0,0 +1,40 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module registry {
+
+/** is the implementation of the interface XImplementationRegistration.
+ This service can be used to install or uninstall components (implementations).
+ Further, it is possible to check if all runtime dependencies (needed services) are
+ available to use a specified component.
+
+ Guarantees:
+ <ul>
+ <li>-thread safe</li>
+ </ul>
+ */
+published service ImplementationRegistration
+ : com::sun::star::registry::XImplementationRegistration;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/registry/InvalidRegistryException.idl b/udkapi/com/sun/star/registry/InvalidRegistryException.idl
new file mode 100644
index 0000000000..b9ac4237fc
--- /dev/null
+++ b/udkapi/com/sun/star/registry/InvalidRegistryException.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module registry {
+
+/** signals that the registry is invalid or an operation on the registry
+ failed.
+ */
+published exception InvalidRegistryException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/registry/InvalidValueException.idl b/udkapi/com/sun/star/registry/InvalidValueException.idl
new file mode 100644
index 0000000000..b511d11c60
--- /dev/null
+++ b/udkapi/com/sun/star/registry/InvalidValueException.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module registry {
+
+/** signals that the value of the key is invalid or does not have the
+ appropriate key type.
+ */
+published exception InvalidValueException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/registry/MergeConflictException.idl b/udkapi/com/sun/star/registry/MergeConflictException.idl
new file mode 100644
index 0000000000..5ec5af8466
--- /dev/null
+++ b/udkapi/com/sun/star/registry/MergeConflictException.idl
@@ -0,0 +1,36 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module registry {
+
+/** is thrown if entries of two registries are contradictory in the context of
+ XSimpleRegistry::mergeKey()e() method.
+
+ @deprecated as XSimpleRegistry::mergeKey is deprecated as well
+ */
+published exception MergeConflictException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/registry/NestedRegistry.idl b/udkapi/com/sun/star/registry/NestedRegistry.idl
new file mode 100644
index 0000000000..282169a5a5
--- /dev/null
+++ b/udkapi/com/sun/star/registry/NestedRegistry.idl
@@ -0,0 +1,127 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module registry {
+
+/** supports a shared view on two different registries. The registry
+ files will be opened in two different modes, registry1 will be opened with read/write
+ rights and registry2 will be opened read-only.
+ In the context of this service, the functions <code>open</code>, <code>close</code>,
+ and <code>destroy</code> from XSimpleRegistry are not supported and
+ throw an exception if they are used.
+
+ Functions of XSimpleRegistry:
+ <dl>
+ <dt> <b>getURL</b>
+ </dt>
+ <dd> returns the name of registry1.
+
+ </dd>
+ <dt> <b>isValid</b>
+ </dt>
+ <dd> checks if registry1 is valid. If the interface is not `NULL`
+ then registry1 should always be valid.
+
+ </dd>
+ <dt> <b>isReadOnly</b>
+ </dt>
+ <dd> checks if registry1 has write protection.
+ </dd>
+ <dt> <b>mergeKey</b>
+ </dt>
+ <dd> merges all information from the specified registry in registry1.
+
+ </dd>
+ <dt> <b>getRootKey</b>
+ </dt>
+ <dd> returns a virtual rootkey of both registries.
+ </dd>
+ </dl>
+
+ Functions of XRegistryKey:
+ <dl>
+ <dt> <b>openKey</b>
+ </dt>
+ <dd> returns a virtual key which is specified in registry1 or registry2.
+
+ </dd>
+ <dt> <b>deleteKey</b>
+ </dt>
+ <dd> deletes the key only if it is present in registry1.
+
+ </dd>
+ <dt> <b>setLongValue, setAsciiValue, setStringValue, setBinaryValue</b>
+ </dt>
+ <dd> sets the value at the specified key in registry1.
+
+ </dd>
+ <dt> <b>getLongValue, getAsciiValue, getStringValue, getBinaryValue</b>
+ </dt>
+ <dd> returns the value at the specified key in registry1, or if
+ the value is not present in registry1, it will return the value of registry2.
+
+ </dd>
+ <dt> <b>openKeys</b>
+ </dt>
+ <dd> returns a sequence of all subkeys in both registries.
+
+ </dd>
+ <dt> <b>getKeyNames</b>
+ </dt>
+ <dd> returns a sequence with the names of all subkeys in both
+ registries.
+
+ </dd>
+ <dt>
+ <b>Note: all write functions only work on registry1.</b>
+ </dt>
+ </dl>
+
+ How to initialize the registries:<br>
+ Use a sequence of XSimpleRegistry with two elements. The first element must be
+ the registry which is opened with read/write rights and the second element must be
+ the read-only one.<br>
+ Two different ways are possible:<br>
+ <ul>
+ <li> use com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() to
+ create an instance of this service where the value of the any parameter must be the sequence with
+ the two open registries.
+ <li> use the initialize function of the com::sun::star::lang::XInitialization interface where the value of the
+ any parameter must be the sequence with the two open registries.
+ </ul>
+ <br>
+
+
+ Guarantees:
+ <ul>
+ <li>-thread safe</li>
+ </ul>
+ */
+published service NestedRegistry
+{
+ interface com::sun::star::registry::XSimpleRegistry;
+ interface com::sun::star::lang::XInitialization;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/registry/RegistryKeyType.idl b/udkapi/com/sun/star/registry/RegistryKeyType.idl
new file mode 100644
index 0000000000..0b2ae505cd
--- /dev/null
+++ b/udkapi/com/sun/star/registry/RegistryKeyType.idl
@@ -0,0 +1,39 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module registry {
+
+/** represents all possible types of a key.
+
+ <p>A key can be a normal key with a value and subkeys, or it can be a
+ link which references another key.</p>
+ */
+published enum RegistryKeyType
+{
+ KEY,
+ LINK
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/registry/RegistryValueType.idl b/udkapi/com/sun/star/registry/RegistryValueType.idl
new file mode 100644
index 0000000000..6c24048409
--- /dev/null
+++ b/udkapi/com/sun/star/registry/RegistryValueType.idl
@@ -0,0 +1,62 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module registry {
+
+/** represents all possible types of a key value.
+
+ <p>An ASCII value and a string value will both be handled with type
+ string. But interns will be handled differently. Normally the idl
+ string represents a unicode string. </p>
+ */
+published enum RegistryValueType
+{
+ /** the type of the key is not defined.
+ */
+ NOT_DEFINED,
+ /** the type of the key is long.
+ */
+ LONG,
+ /** the type of the key is ASCII.
+ */
+ ASCII,
+ /** the type of the key is a string.
+ */
+ STRING,
+ /** the type of the key is binary.
+ */
+ BINARY,
+ /** the type of the key is LONGLIST.
+ */
+ LONGLIST,
+ /** the type of the key is an ASCIILIST.
+ */
+ ASCIILIST,
+ /** the type of the key is a STRINGLIST.
+ */
+ STRINGLIST
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/registry/SimpleRegistry.idl b/udkapi/com/sun/star/registry/SimpleRegistry.idl
new file mode 100644
index 0000000000..ccd605f45b
--- /dev/null
+++ b/udkapi/com/sun/star/registry/SimpleRegistry.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module registry {
+
+/** makes it possible to create, open, or close a registry. Further, it is
+ possible to merge a registry under a specified key in the open registry.
+
+ Guarantees:
+ <ul>
+ <li>-thread safe</li>
+ </ul>
+ */
+published service SimpleRegistry : com::sun::star::registry::XSimpleRegistry;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/registry/XImplementationRegistration.idl b/udkapi/com/sun/star/registry/XImplementationRegistration.idl
new file mode 100644
index 0000000000..b4117ee9a4
--- /dev/null
+++ b/udkapi/com/sun/star/registry/XImplementationRegistration.idl
@@ -0,0 +1,89 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module registry {
+
+/** offers a registry for implementation objects and provides information
+ about the registered implementations.
+ */
+published interface XImplementationRegistration: com::sun::star::uno::XInterface
+{
+ /** registers a component which provides one or more implementations.
+
+ @param aImplementationLoader
+ the URL of the implementation loader.
+
+ @param aLocation
+ specifies the location of the component with the URL.
+
+ @param xReg
+ specifies the registry where the component should be installed.
+ If it is a NULL interface, then the component will be installed
+ in the system registry (if this feature is supported).
+ */
+ void registerImplementation( [in] string aImplementationLoader,
+ [in] string aLocation,
+ [in] com::sun::star::registry::XSimpleRegistry xReg )
+ raises( com::sun::star::registry::CannotRegisterImplementationException );
+
+ /** revokes a component and all their provided implementations from the registry.
+
+ @param aLocation
+ specifies the location of the component with the URL.
+
+ @param xReg
+ specifies the registry where the component should be installed.
+ If it is a NULL interface, then the component will be revoked
+ from the system registry (if this feature is supported).
+ */
+ boolean revokeImplementation( [in] string aLocation,
+ [in] com::sun::star::registry::XSimpleRegistry xReg );
+
+ // DOCUMENTATION CHANGED FOR XImplementationRegistration::getImplementations
+ /** @returns
+ the names of the implementations registered by the url location.
+
+ @param aImplementationLoader
+ specifies the name of the needed loader for this type of implementation. For
+ example, the loader "com.sun.star.loader.SharedLibrary" for implementations
+ that are realized as an SharedLibrary.
+
+ @param aLocation
+ specifies the location of the component with the URL.
+ */
+ sequence<string> getImplementations( [in] string aImplementationLoader,
+ [in] string aLocation );
+
+ // DOCUMENTATION CHANGED FOR XImplementationRegistration::checkInstantiation
+ /** @returns
+ a sequence with names of the missing services to create an instance of this implementation.
+
+ @param implementationName
+ specifies the name of the checked implementation.
+ */
+ sequence<string> checkInstantiation( [in] string implementationName );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/registry/XImplementationRegistration2.idl b/udkapi/com/sun/star/registry/XImplementationRegistration2.idl
new file mode 100644
index 0000000000..58dbabcbcf
--- /dev/null
+++ b/udkapi/com/sun/star/registry/XImplementationRegistration2.idl
@@ -0,0 +1,56 @@
+/* -*- 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 .
+ */
+
+ module com { module sun { module star { module registry {
+
+
+/** extends the functionality of com::sun::star::registry::XImplementationRegistration. It can be useful to specify a complete Url to a component but register the components name only (library or jar name).
+
+ @since OOo 2.4
+ */
+interface XImplementationRegistration2: com::sun::star::registry::XImplementationRegistration
+{
+
+ /** registers a component which provides one or more implementations.
+
+ @param aImplementationLoader
+ the URL of the implementation loader.
+
+ @param aLocation
+ specifies the location of the component with the URL.
+
+ @param aRegisteredLocation
+ the URL with which the component is actually registered.
+
+ @param xReg
+ specifies the registry where the component should be installed.
+ If it is a NULL interface, then the component will be installed
+ in the system registry (if this feature is supported).
+ */
+ void registerImplementationWithLocation( [in] string aImplementationLoader,
+ [in] string aLocation, [in] string aRegisteredLocation,
+ [in] com::sun::star::registry::XSimpleRegistry xReg )
+ raises( com::sun::star::registry::CannotRegisterImplementationException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/registry/XRegistryKey.idl b/udkapi/com/sun/star/registry/XRegistryKey.idl
new file mode 100644
index 0000000000..e426e812b6
--- /dev/null
+++ b/udkapi/com/sun/star/registry/XRegistryKey.idl
@@ -0,0 +1,404 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module registry {
+
+/** makes structural information (except regarding tree structures)
+ of a single registry key accessible.
+
+ <p>This is the main interface for registry keys.<p>
+
+ @see XSimpleRegistry
+*/
+published interface XRegistryKey: com::sun::star::uno::XInterface
+{
+ /** This is the key of the entry relative to its parent.<p>
+
+ <p>The access path starts with the root "/" and all parent
+ entry names are delimited with slashes "/" too, like in a
+ UNIX (R) file system. Slashes which are part of single names
+ are represented as hexadecimals preceded with a "%" like in
+ URL syntax.
+ */
+ [readonly, attribute] string KeyName;
+
+ /** checks if the key can be overwritten.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ boolean isReadOnly()
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ /** checks if the key points to an open valid key in the data-source.
+ */
+ boolean isValid();
+
+ /** @returns
+ the type of the specified key.
+
+ @param rKeyName
+ specifies the relative path from the current key to
+ the key of the type which will be returned.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ com::sun::star::registry::RegistryKeyType getKeyType( [in] string rKeyName )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ /** @returns
+ the type of the key value or NOT_DEFINED if the key has no value.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ com::sun::star::registry::RegistryValueType getValueType()
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ /** @returns
+ a long value if the key contains one.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+
+ @throws InvalidValueException
+ if the value is not of type long.
+ */
+ long getLongValue()
+ raises( com::sun::star::registry::InvalidRegistryException,
+ com::sun::star::registry::InvalidValueException );
+
+ /** sets a long value to the key.
+
+ <p>If the key already has a value, the value will be
+ overridden.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void setLongValue( [in] long value )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ // DOCUMENTATION CHANGED FOR XRegistryKey::getLongListValue
+ /** @returns
+ a sequence of longs if the key contains a long list value.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+
+ @throws InvalidValueException
+ if the actual value is not of type long list.
+ */
+ sequence<long> getLongListValue()
+ raises( com::sun::star::registry::InvalidRegistryException,
+ com::sun::star::registry::InvalidValueException );
+
+ /** sets a long list value to the key.
+
+ <p>If the key already has a value, the value will be
+ overridden.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void setLongListValue( [in] sequence<long> seqValue )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ // DOCUMENTATION CHANGED FOR XRegistryKey::getAsciiValue
+ /** @returns
+ an ascii string value if the key contains one.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+
+ @throws InvalidValueException
+ if the actual value is not of type ascii.
+ */
+ string getAsciiValue()
+ raises( com::sun::star::registry::InvalidRegistryException,
+ com::sun::star::registry::InvalidValueException );
+
+ /** sets an ASCII string value to the key.
+
+ <p>The high byte of the string should be NULL. If not, there
+ is no guarantee that the string will be correctly transported.
+ If the key already has a value, the value will be overridden.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void setAsciiValue( [in] string value )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ // DOCUMENTATION CHANGED FOR XRegistryKey::getAsciiListValue
+ /** @returns
+ a sequence of ascii strings if the key contains an ascii list value.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+
+ @throws InvalidValueException
+ if the actual value is not of type ascii list.
+ */
+ sequence<string> getAsciiListValue()
+ raises( com::sun::star::registry::InvalidRegistryException,
+ com::sun::star::registry::InvalidValueException );
+
+ /** sets an ASCII string list value to the key.
+
+ <p>The high byte of the string should be NULL. If not, there
+ is no guarantee that the string will be correctly transported.
+ If the key already has a value, the value will be overridden.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void setAsciiListValue( [in] sequence<string> seqValue )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ // DOCUMENTATION CHANGED FOR XRegistryKey::getStringValue
+ /** @returns
+ a unicode string value if the key contains one.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+
+ @throws InvalidValueException
+ if the actual value is not of type string.
+ */
+ string getStringValue()
+ raises( com::sun::star::registry::InvalidRegistryException,
+ com::sun::star::registry::InvalidValueException );
+
+ /** sets a unicode string value to the key.
+
+ <p> If the key already has a value, the value will be
+ overridden.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void setStringValue( [in] string value )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ // DOCUMENTATION CHANGED FOR XRegistryKey::getStringListValue
+ /** @returns
+ a sequence of unicode strings if the key contains a unicode string list value.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+
+ @throws InvalidValueException
+ if the actual value is not of type string list.
+ */
+ sequence<string> getStringListValue()
+ raises( com::sun::star::registry::InvalidRegistryException,
+ com::sun::star::registry::InvalidValueException );
+
+ /** sets a unicode string value to the key.
+
+ <p>If the key already has a value, the value will be overridden.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void setStringListValue( [in] sequence<string> seqValue )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ // DOCUMENTATION CHANGED FOR XRegistryKey::getBinaryValue
+ /** @returns
+ a binary value if the key contains one.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+
+ @throws InvalidValueException
+ if the actual value is not of type binary.
+ */
+ sequence<byte> getBinaryValue()
+ raises( com::sun::star::registry::InvalidRegistryException,
+ com::sun::star::registry::InvalidValueException );
+
+ /** sets a binary value to the key.
+
+ <p>If the key already has a value, the value will be
+ overridden.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void setBinaryValue( [in] sequence<byte> value )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ /** opens a sub key of the key.
+
+ <p>If the sub key does not exist, the function returns a
+ NULL-interface.
+
+ @param aKeyName
+ the relative path from the current key to the key
+ which will be created.
+
+ @returns
+ a NULL interface if the key does not exist.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ com::sun::star::registry::XRegistryKey openKey( [in] string aKeyName )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ /** creates a new key in the registry.<p>
+
+ <p>If the key already exists, the function will open the key.
+
+ @param aKeyName
+ specifies the relative path from the current key to
+ the key which will be created.
+
+ @returns
+ a NULL interface if the key could not be created.
+
+ @throws InvalidRegistryException
+ if the registry is not open, the registry is readonly
+ or if the key exists and is of type LINK.
+ */
+ com::sun::star::registry::XRegistryKey createKey( [in] string aKeyName )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ /** closes a key in the registry.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void closeKey()
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ /** deletes a key from the registry.
+
+ @param rKeyName
+ specifies the relative path from the current key to
+ the key which will be deleted.
+
+ @throws InvalidRegistryException
+ if the registry is not open, the registry is readonly,
+ the key does not exists or if the key is of type LINK.
+ */
+ void deleteKey( [in] string rKeyName )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ // DOCUMENTATION CHANGED FOR XRegistryKey::openKeys
+ /** opens all subkeys of the key. If a subkey is a link, the link will be
+ resolved and the appropriate key will be opened.
+
+ @returns
+ an empty sequence if the key has no subkeys.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ sequence<com::sun::star::registry::XRegistryKey> openKeys()
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ // DOCUMENTATION CHANGED FOR XRegistryKey::getKeyNames
+ /** @returns a sequence with the names of all subkeys of the key.
+ If the key has no subkeys, the function returns an empty sequence. If a subkey is
+ a link, the name of the link will be returned.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ sequence<string> getKeyNames()
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ /** creates a new link in the registry.
+
+ @returns
+ `TRUE` if the link was created. If the link already
+ exists or the link target does not exist, the
+ function returns `FALSE`.
+
+ @param aLinkName
+ specifies the relative path from the current key to
+ the link which will be created.
+
+ @param aLinkTarget
+ specifies the full path of the key which will be
+ referenced by the link.
+
+ @throws InvalidRegistryException
+ if the registry is not open or the registry is
+ readonly.
+
+ */
+ boolean createLink( [in] string aLinkName,
+ [in] string aLinkTarget )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ /** deletes a link from the registry.
+
+ @param rLinkName
+ specifies the relative path from the current key to
+ the link which will be deleted.
+
+ @throws InvalidRegistryException
+ if the registry is not open, the registry is readonly,
+ or if the link does not exist.
+ */
+ void deleteLink( [in] string rLinkName )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ // DOCUMENTATION CHANGED FOR XRegistryKey::getLinkTarget
+ /** @returns
+ the target (complete path of a key) of the link specified by rLinkName.
+
+ @param rLinkName
+ specifies the relative path from the current key to
+ the link which target will be returned.
+
+ @throws InvalidRegistryException
+ if the registry is not open or the link does not exists.
+ */
+ string getLinkTarget( [in] string rLinkName )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ // DOCUMENTATION CHANGED FOR XRegistryKey::getResolvedName
+ /** @returns
+ the resolved name of a key. The function resolve the complete name of the key.
+ If a link could not be resolved, the linktarget concatenated with the unresolved rest
+ of the name, will be returned.
+
+ @param aKeyName
+ specifies a relative path from the current key which will be resolved from all links.
+
+ @throws InvalidRegistryException
+ if the registry is not open or a recursion was detected.
+ */
+ string getResolvedName( [in] string aKeyName )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/registry/XSimpleRegistry.idl b/udkapi/com/sun/star/registry/XSimpleRegistry.idl
new file mode 100644
index 0000000000..a79c7a8ec4
--- /dev/null
+++ b/udkapi/com/sun/star/registry/XSimpleRegistry.idl
@@ -0,0 +1,113 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module registry {
+
+/** allows access to a registry (a persistent data source).
+ The data is stored in a hierarchical key structure beginning with a root key.
+ Each key can store a value and can have multiple subkeys.
+
+ @see XRegistryKey
+*/
+published interface XSimpleRegistry: com::sun::star::uno::XInterface
+{
+ /** returns the URL of the current data source of the registry.
+ */
+ string getURL();
+
+ /** connects the registry to a persistent data source represented by
+ a URL.
+
+ <p>If a local registry is already open, this function
+ will close the currently open registry.
+
+ @param rURL
+ specifies the complete URL to access the data source.
+
+ @param bReadOnly
+ specifies if the data source should be opened for
+ read only.
+
+ @param bCreate
+ specifies if the data source should be created if it
+ does not already exist.
+
+ @throws InvalidRegistryException
+ if the registry does not exist.
+ */
+ void open( [in] string rURL,
+ [in] boolean bReadOnly,
+ [in] boolean bCreate )
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ /** checks if the registry points to a valid data-source.
+ */
+ boolean isValid();
+
+ /** disconnects the registry from the data-source.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void close()
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ /** destroys the registry and the data source.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void destroy()
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ /** @returns
+ the root key of the registry.
+
+ @throws InvalidRegistryException
+ if no registry is open
+ */
+ com::sun::star::registry::XRegistryKey getRootKey()
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ /** checks if the registry is readonly.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ boolean isReadOnly()
+ raises( com::sun::star::registry::InvalidRegistryException );
+
+ /** merges a registry under the specified key.
+
+ @deprecated The merge functionality is deprecated and not implemented. Implementations will
+ throw a com::sun::star::RuntimeException.
+ */
+ void mergeKey( [in] string aKeyName,
+ [in] string aUrl )
+ raises( com::sun::star::registry::InvalidRegistryException,
+ com::sun::star::registry::MergeConflictException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/AllEventObject.idl b/udkapi/com/sun/star/script/AllEventObject.idl
new file mode 100644
index 0000000000..2d4887744f
--- /dev/null
+++ b/udkapi/com/sun/star/script/AllEventObject.idl
@@ -0,0 +1,55 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** This event is a wrapper for an original event in a forwarding event.
+
+ <p> Usually the original event is the first argument in the
+ array of arguments. </p>
+ */
+published struct AllEventObject: com::sun::star::lang::EventObject
+{
+ /** A helper value for the implementation that can be used arbitrarily.
+
+ <p>This field reflects the third parameter of the method
+ XAllListenerAdapterService::createAllListerAdapter().
+ </p>
+ */
+ any Helper;
+
+ /** contains the type of the original listener.
+ */
+ type ListenerType;
+
+ /** The original method name on which the event was fired.
+ */
+ string MethodName;
+
+ /** The arguments of the original method.
+ */
+ sequence<any> Arguments;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/AllListenerAdapter.idl b/udkapi/com/sun/star/script/AllListenerAdapter.idl
new file mode 100644
index 0000000000..48ad6af9ed
--- /dev/null
+++ b/udkapi/com/sun/star/script/AllListenerAdapter.idl
@@ -0,0 +1,33 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** makes it possible to generate the adapters from specific
+ interfaces to the interface XAllListener.
+ */
+published service AllListenerAdapter
+ : com::sun::star::script::XAllListenerAdapterService;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/ArrayWrapper.idl b/udkapi/com/sun/star/script/ArrayWrapper.idl
new file mode 100644
index 0000000000..94aa60e317
--- /dev/null
+++ b/udkapi/com/sun/star/script/ArrayWrapper.idl
@@ -0,0 +1,49 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module script {
+
+/** Allows a UNO sequence that is passed between different language
+ boundaries to indicate it prefers to be represented as a multidimensional
+ array with 0 or 1 based indices. UNO does not natively represent
+ Multi-Dimensional arrays, instead a sequence can have elements that are
+ themselves sequences (an array of arrays ). <p>Some languages ( example
+ BASIC ) can natively represent both Multi-Dimensional arrays and array of
+ arrays.
+ Those languages could represent a sequence of sequences as either a
+ Multi-Dimensional array or array of arrays. This structure allows a
+ preference for a Multi-Dimensional array representation to be specified.</p>
+*/
+
+struct ArrayWrapper
+{
+ /** Indicates whether the Array should be have 1 or 0 based indexing.
+ */
+ boolean IsZeroIndex;
+ /** Contains the Array to be passed.
+ <p> Multi-dimensional arrays can only be represented as a sequence where the elements of the sequence are themselves sequences. N-Levels of indirection are possible, where N is the number of dimensions. Note: its perfectly legal to use this structure with a single dimensioned array just to indicate the array indexing.</p>
+ */
+ any Array;
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/BasicErrorException.idl b/udkapi/com/sun/star/script/BasicErrorException.idl
new file mode 100644
index 0000000000..4a00e34526
--- /dev/null
+++ b/udkapi/com/sun/star/script/BasicErrorException.idl
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module script {
+
+
+/** is thrown in order to transport an error to Basic.
+
+ @since OOo 2.0
+ */
+published exception BasicErrorException: com::sun::star::uno::Exception
+{
+
+ /** The error code.
+ */
+ long ErrorCode;
+
+
+ /** Specifies the argument which is used in the localized error message for
+ the placeholder.
+ */
+ string ErrorMessageArgument;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/CannotConvertException.idl b/udkapi/com/sun/star/script/CannotConvertException.idl
new file mode 100644
index 0000000000..3d0ec19558
--- /dev/null
+++ b/udkapi/com/sun/star/script/CannotConvertException.idl
@@ -0,0 +1,48 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+
+/** This exception is thrown to indicate that a type conversion can not be performed.
+*/
+published exception CannotConvertException: com::sun::star::uno::Exception
+{
+ /** This member contains the class of the type to which the value should be
+ converted.
+ */
+ com::sun::star::uno::TypeClass DestinationTypeClass;
+
+ /** This member contains the reason that the conversion failed.
+ Have a look at FailReason.
+ */
+ long Reason;
+
+ /** If the conversion of a method argument fails, this is the index
+ of the value in the "IN" argument list. [optional]
+ */
+ long ArgumentIndex;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/CannotCreateAdapterException.idl b/udkapi/com/sun/star/script/CannotCreateAdapterException.idl
new file mode 100644
index 0000000000..88065928a9
--- /dev/null
+++ b/udkapi/com/sun/star/script/CannotCreateAdapterException.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** is thrown by an attacher if an adapter service cannot create the
+ appropriate adapter.
+
+ @see com::sun::star::script::XAllListenerAdapterService
+ @see com::sun::star::script::XEventAttacher
+ @see com::sun::star::script::XEventAttacherManager
+ */
+published exception CannotCreateAdapterException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/ContextInformation.idl b/udkapi/com/sun/star/script/ContextInformation.idl
new file mode 100644
index 0000000000..48d2fac2e6
--- /dev/null
+++ b/udkapi/com/sun/star/script/ContextInformation.idl
@@ -0,0 +1,80 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** provides information about a certain stack frame.
+
+ @deprecated
+ */
+published struct ContextInformation
+{
+ /** Full qualified name to address the module or function associated with the context.
+ If the module or function can't be addressed by name, e.g., in case that a runtime
+ generated eval-module is executed, this string is empty
+ */
+ string Name;
+
+ /** Source code of the Module, that is associated with the context. If the source can
+ be accessed using the ModuleName or if the source is unknown (executing compiled
+ code) this string can be empty.
+ */
+ string SourceCode;
+
+ /** contains the first line in the module's source code associated with
+ the context.
+
+ <p>If "name" addresses a function, all line and column values
+ are nevertheless given relative to the module's source. If
+ source code is not available, this value addresses a binary
+ position in the compiled code. </p>
+
+ @see XLibraryAccess::getModuleCode
+ @see XLibraryAccess::getFunctionCode
+ */
+ long StartLine;
+
+ /** contains the first column in the <var>StartLine</var> associated with
+ the context.
+ */
+ long StartColumn;
+
+
+ /** contains the last line in the module's source code associated with
+ the context.
+ */
+ long EndLine;
+
+ /** contains the first column in the <var>EndLine</var> that is NOT
+ associated with the context.
+ */
+ long EndColumn;
+
+ /** Get all names of the local variable in this context.
+ */
+ sequence<string> LocalVariableNames;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/Converter.idl b/udkapi/com/sun/star/script/Converter.idl
new file mode 100644
index 0000000000..3839204d4f
--- /dev/null
+++ b/udkapi/com/sun/star/script/Converter.idl
@@ -0,0 +1,78 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+
+/** This service provides a widening converter converting from one type to another,
+ if possible.
+
+ <p>What is possible?
+ <ul>
+ <li>byte: byte, (short *1), (long *1), (hyper *1), (float *1), (double *1), (enum *2), (any *3), boolean, (char *4), (string *5)</li>
+ <li>short: byte, short, (long *1), (hyper *1), (float *7), (double *7), (enum *2), (any *3), boolean, char, (string *5)</li>
+ <li>long: byte, short, long, (hyper *1), (float *7), (double *7), enum, (any *3), boolean, char, (string *5)</li>
+ <li>hyper: byte, short, long, hyper, (float *7), (double *7), enum, (any *3), boolean, char, (string *5)</li>
+ <li>float: byte, short, long, hyper, float, (double *7), (enum *8), (any *3), boolean, char, (string *5)</li>
+ <li>double: byte, short, long, hyper, float, double, enum, (any *3), boolean, char, (string *5)</li>
+ <li>enum: (byte *9), (short *9), (long *9), (hyper *9), (float *9), (double *9), (enum *10), (any *3), (string *11)</li>
+ <li>void: ok for all types</li>
+ <li>any: ok for all types</li>
+ <li>boolean: byte, short, long, hyper, float, double, (any *3), boolean, char, (string *12). 0 => false, != 0 => true</li>
+ <li>char: byte, short, (long *1), (hyper *1), (float *7), (double *7), enum, (any *3), boolean, char, (string *13)</li>
+ <li>string: byte, short, long, hyper, float, double, enum, (any *3), boolean, char, string</li>
+ <li>struct: (any *3), (struct *14)</li>
+ <li>interface: (any *3), (struct *14)</li>
+ <li>exception: (any *3), (exception *14)</li>
+ <li>union: (any *3), (union *14)</li>
+ <li>sequence: (any *3), (sequence *15)</li>
+ </ul>
+ rules:
+ <ul>
+ <li>1: only converts if the value is in the range of the target type.</li>
+ <li>2: only converts if the value, not the position, of the enum is in the range of the target type.</li>
+ <li>3: get value until it is not an any. Then convert it with the other rules.</li>
+ <li>4: only converts if the value of the character is between 0 - 255.</li>
+ <li>5: only converts if the value represents a decimal, hexadecimal (0x...) or a floating point number.
+ Examples: 10, 0x10, 10.045, 10,555, +10, +10.6e10, -10.6e-10, .16.</li>
+ <li>7: only converts if the value is in the range of the target type.
+ The value is rounded to an integer.</li>
+ <li>8: only converts if the float can be converted back to the same enum value.</li>
+ <li>9: only converts if the number is one of the enumeration type values. Normally you need
+ reflection information of the enum type.</li>
+ <li>10: only converts if it is the same enumeration type.</li>
+ <li>11: only converts if the string contains the name of an enumeration type value. Normally you need
+ core reflection information of the enum type.</li>
+ <li>12: only converts if the value of the string is "1", "true" or "0", "false". The comparison
+ is case insensitive.</li>
+ <li>13: only converts if the length of the string is 1 or 0.</li>
+ <li>14: only converts if the types are equal or the source type is derived from the destination
+ type.</li>
+ <li>15: only converts if each element of the source sequence can be converted to an element
+ of the destination sequence.</li>
+ </ul>
+*/
+published service Converter: XTypeConverter;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/Engine.idl b/udkapi/com/sun/star/script/Engine.idl
new file mode 100644
index 0000000000..38059a3871
--- /dev/null
+++ b/udkapi/com/sun/star/script/Engine.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** service that any scripting engine must implement.
+
+ <p>The implementation of this
+ interface should supply the interfaces com.sun.star.script.XDebugging2 and
+ interface com.sun.star.script.XInvocation.</p>
+ @deprecated
+ */
+published service Engine
+{
+ /// The only interface of this service
+ interface com::sun::star::script::XEngine;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/EventListener.idl b/udkapi/com/sun/star/script/EventListener.idl
new file mode 100644
index 0000000000..c2f0e7c096
--- /dev/null
+++ b/udkapi/com/sun/star/script/EventListener.idl
@@ -0,0 +1,23 @@
+/* -*- 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/.
+ */
+
+module com { module sun { module star { module script {
+
+struct EventListener
+{
+ com::sun::star::script::XAllListener AllListener;
+ any Helper;
+ string ListenerType;
+ string AddListenerParam;
+ string EventMethod;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/FailReason.idl b/udkapi/com/sun/star/script/FailReason.idl
new file mode 100644
index 0000000000..27d96fa18a
--- /dev/null
+++ b/udkapi/com/sun/star/script/FailReason.idl
@@ -0,0 +1,75 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+
+/** These values specify the reason why a type conversion failed.
+*/
+published constants FailReason
+{
+ /** The given value does not fit in the range of the destination type.
+ */
+ const long OUT_OF_RANGE = 1;
+
+ /** The given value cannot be converted to a number.
+ */
+ const long IS_NOT_NUMBER = 2;
+
+ /** The given value cannot be converted to an enumeration.
+ */
+ const long IS_NOT_ENUM = 3;
+
+ /** The given value cannot be converted to a boolean.
+ */
+ const long IS_NOT_BOOL = 4;
+
+ /** The given value is not an interface or cannot queried to the right interface.
+ */
+ const long NO_SUCH_INTERFACE = 5;
+
+ /** The given value cannot be converted to right structure or exception type.
+ */
+ const long SOURCE_IS_NO_DERIVED_TYPE = 6;
+
+ /** The type class of the given value is not supported.
+ */
+ const long TYPE_NOT_SUPPORTED = 7;
+
+ /** The given value cannot be converted and none of the other reasons match.
+ */
+ const long INVALID = 8;
+
+ /** This value is deprecated. Do not use.
+ @deprecated
+ */
+ const long NO_DEFAULT_AVAILABLE = 9;
+
+ /** This value is deprecated. Do not use.
+ @deprecated
+ */
+ const long UNKNOWN = 10;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/FinishEngineEvent.idl b/udkapi/com/sun/star/script/FinishEngineEvent.idl
new file mode 100644
index 0000000000..f5fc710429
--- /dev/null
+++ b/udkapi/com/sun/star/script/FinishEngineEvent.idl
@@ -0,0 +1,52 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** event contains the reasons and the data for the
+ XEngineListener::finished() method.
+ @deprecated
+ */
+published struct FinishEngineEvent: com::sun::star::lang::EventObject
+{
+ /** specifies why the script terminates.
+ */
+ com::sun::star::script::FinishReason Finish;
+
+ /** error message.
+
+ <p>Only valid if Reason is RuntimeError or CompileError.</p>
+ */
+ string ErrorMessage;
+
+ /** contains the return value.
+
+ <p>This field is only valid if FinishEngineEvent::Finish is
+ FinishReason::OK.</p>
+ */
+ any Return;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/FinishReason.idl b/udkapi/com/sun/star/script/FinishReason.idl
new file mode 100644
index 0000000000..27241f1a02
--- /dev/null
+++ b/udkapi/com/sun/star/script/FinishReason.idl
@@ -0,0 +1,46 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** contains the response for a scripting engine termination.
+ @deprecated
+ */
+published enum FinishReason
+{
+ /** script in the engine terminated normally.
+ */
+ OK,
+
+ /** script in the engine was cancelled.
+ */
+ Cancel,
+
+ /** error occurred during script execution or compiling.
+ */
+ Error
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/InterruptEngineEvent.idl b/udkapi/com/sun/star/script/InterruptEngineEvent.idl
new file mode 100644
index 0000000000..1f583ebea1
--- /dev/null
+++ b/udkapi/com/sun/star/script/InterruptEngineEvent.idl
@@ -0,0 +1,89 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** describes an interrupt which occurs in the scripting engine.
+ @deprecated
+ */
+published struct InterruptEngineEvent: com::sun::star::lang::EventObject
+{
+ /** fully qualified name to address the module or function affected by the event that
+ took place.
+
+ <p>If the module or function can't be addressed by name (for example, in case
+ that a runtime-generated eval-module is executed), this string is empty.</p>
+ */
+ string Name;
+
+ /** source code of the Module affected by the event that took place.
+
+ <p>If the source can
+ be accessed using the ModuleName, or if the source is unknown (executing compiled
+ code), this string can be empty.</p>
+ */
+ string SourceCode;
+
+ /** contains the first line in the module's source code that is affected
+ by the event that took place.
+
+
+
+ <p>If "name" addresses a function, all line and column values
+ are nevertheless given relative to the module's source. If
+ source code is not available, this value addresses a binary
+ position in the compiled code. </p>
+
+ @see XLibraryAccess::getModuleCode
+ @see XLibraryAccess::getFunctionCode
+ */
+ long StartLine;
+
+ /** contains the first column in the "StartLine" that is affected by the
+ event that took place.
+ */
+ long StartColumn;
+
+ /** contains the last line in the module's source code that is affected
+ by the event that took place.
+ */
+ long EndLine;
+
+ /** contains the first column in the "EndLine" which is NOT affected by
+ the event that took place.
+ */
+ long EndColumn;
+
+ /** error message.
+ <p>Only valid if Reason is RuntimeError or CompileError.</p>
+ */
+ string ErrorMessage;
+
+ /** contains the interrupt reason.
+ */
+ com::sun::star::script::InterruptReason Reason;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/InterruptReason.idl b/udkapi/com/sun/star/script/InterruptReason.idl
new file mode 100644
index 0000000000..41b3f1b650
--- /dev/null
+++ b/udkapi/com/sun/star/script/InterruptReason.idl
@@ -0,0 +1,67 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** values used to specify the response for a scripting engine
+ interrupt.
+ @deprecated
+ */
+published enum InterruptReason
+{
+ /** script execution was cancelled.
+ */
+ Cancel,
+
+ /** runtime error occurred during script execution.
+ */
+ RuntimeError,
+
+ /** script has invalid syntax.
+ */
+ CompileError,
+
+ /** script stopped at a breakpoint.
+ */
+ BreakPoint,
+
+ /** script stops because only one scripting engine command was executed.
+ */
+ Step,
+
+ /** script stops because one step was executed.
+ */
+ StepOver,
+
+ /** script stops because it leaves a function.
+ */
+ StepOut,
+
+ /** script stop because one step was executed.
+ */
+ StepStatement
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/Invocation.idl b/udkapi/com/sun/star/script/Invocation.idl
new file mode 100644
index 0000000000..7262ce192f
--- /dev/null
+++ b/udkapi/com/sun/star/script/Invocation.idl
@@ -0,0 +1,39 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** factory service that allows construction of Invocation objects.
+
+ <p>Invoke createInstanceWithArguments() of XSingleServiceFactory
+ to create an Invocation adapter for the passed object (Invoking
+ createInstance() will fail).</p>
+ <p>
+ The adapter has to support com::sun::star::script::XInvocation.
+ The adapter may also support com::sun::star::script::XInvocation2.
+ </p>
+ */
+published service Invocation : com::sun::star::lang::XSingleServiceFactory;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/InvocationAdapterFactory.idl b/udkapi/com/sun/star/script/InvocationAdapterFactory.idl
new file mode 100644
index 0000000000..ffdcd857bc
--- /dev/null
+++ b/udkapi/com/sun/star/script/InvocationAdapterFactory.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module script {
+
+/** Provides functionality to create an adapter that supports (a)
+ special interface type(s) and maps calls to the interface's
+ methods to an invocation interface.
+
+ <p>
+ An adapter like this allows generic dispatch interfaces to
+ meet interface requirements, e.g. if a specific listener
+ interface has to be passed to an add...Listener method.
+ </p>
+
+ <p>
+ The adapter has to support
+ com::sun::star::script::XInvocationAdapterFactory.
+ The adapter may also support
+ com::sun::star::script::XInvocationAdapterFactory2.
+ </p>
+ */
+published service InvocationAdapterFactory : XInvocationAdapterFactory2;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/InvocationInfo.idl b/udkapi/com/sun/star/script/InvocationInfo.idl
new file mode 100644
index 0000000000..ca7c5a4392
--- /dev/null
+++ b/udkapi/com/sun/star/script/InvocationInfo.idl
@@ -0,0 +1,72 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module script {
+
+
+/**
+ This struct is used to specify information about object members
+ (methods or properties) accessed via XInvocation, such as names,
+ types, or parameters.
+ </p>
+ */
+published struct InvocationInfo
+{
+
+ /** Name of the method or property.
+ */
+ string aName;
+
+ /** Kind of the member (method or property).
+ */
+ MemberType eMemberType;
+
+ /** Only for property members:
+ This field may contain zero or more constants of the
+ com::sun::star::beans::PropertyAttribute
+ constants group. It is not guaranteed that all necessary
+ constants are set to describe the property completely,
+ but a flag will only be set, if the corresponding charac-
+ teristic really exists. Example: If the READONLY flag
+ is set, the property is readonly. If it isn't set, the
+ property nevertheless can be readonly.
+
+ For methods this field is irrelevant and is set to 0.
+ */
+ short PropertyAttribute;
+
+ /** Type of the member, for methods the return type
+ */
+ type aType;
+
+ /** Types method parameters, for properties this sequence is empty
+ */
+ sequence< type > aParamTypes;
+
+ /** Mode of method parameters (IN, OUT, INOUT),
+ for properties this sequence is empty.
+ */
+ sequence< com::sun::star::reflection::ParamMode > aParamModes;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/JavaScript.idl b/udkapi/com/sun/star/script/JavaScript.idl
new file mode 100644
index 0000000000..f9ab25b95f
--- /dev/null
+++ b/udkapi/com/sun/star/script/JavaScript.idl
@@ -0,0 +1,39 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** service is implementation of a JavaScript interpreter.
+
+ <p>The interpreter should be similar to JavaScript 1.1. The exact
+ behavior will be specified in future.</p>
+ @deprecated
+ */
+published service JavaScript
+{
+ /// Parent service
+ service com::sun::star::script::Engine;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/MemberType.idl b/udkapi/com/sun/star/script/MemberType.idl
new file mode 100644
index 0000000000..45bb597178
--- /dev/null
+++ b/udkapi/com/sun/star/script/MemberType.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module script {
+
+/** These values are used to specify a member accessible by
+ XInvocation.
+*/
+published enum MemberType
+{
+ METHOD,
+ PROPERTY,
+ UNKNOWN
+};
+
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/ScriptEvent.idl b/udkapi/com/sun/star/script/ScriptEvent.idl
new file mode 100644
index 0000000000..e987b76989
--- /dev/null
+++ b/udkapi/com/sun/star/script/ScriptEvent.idl
@@ -0,0 +1,46 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** script event that gets delivered whenever a script event takes place.
+ <p>For that to happen, a "ScriptEventDescriptor" must be registered at
+ and attached to an object by an XEventAttacherManager.</p>
+ */
+published struct ScriptEvent: com::sun::star::script::AllEventObject
+{
+ /** type of the script language as string; for example, "Basic" or "StarScript".
+ */
+ string ScriptType;
+
+ /** script code as string.
+
+ <p>The code has to correspond with the language
+ defined by ScriptType.</p>
+ */
+ string ScriptCode;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/ScriptEventDescriptor.idl b/udkapi/com/sun/star/script/ScriptEventDescriptor.idl
new file mode 100644
index 0000000000..2315d9b99e
--- /dev/null
+++ b/udkapi/com/sun/star/script/ScriptEventDescriptor.idl
@@ -0,0 +1,59 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** describes an effect, especially a script to be executed,
+ for a certain event given by the listener type and the name of the
+ event method.
+ */
+published struct ScriptEventDescriptor
+{
+ /** listener type as string, same as listener-XIdlClass.getName().
+ */
+ string ListenerType;
+
+ /** event method as string.
+ */
+ string EventMethod;
+
+ /** data to be used if the addListener method needs an additional
+ parameter.
+ <p>If the type of this parameter is different from string,
+ it will be converted, when added.</p>
+ */
+ string AddListenerParam;
+
+ /** type of the script language as string; for example, "Basic" or "StarScript".
+ */
+ string ScriptType;
+
+ /** script code as string (the code has to correspond with the language
+ defined by ScriptType).
+ */
+ string ScriptCode;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XAllListener.idl b/udkapi/com/sun/star/script/XAllListener.idl
new file mode 100644
index 0000000000..4fb2d88dd9
--- /dev/null
+++ b/udkapi/com/sun/star/script/XAllListener.idl
@@ -0,0 +1,48 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** specifies a listener combining all methods
+ of a listener interface in a single generic call.
+
+ <p>Without any output parameters, it is possible to adapt any interface
+ if the XAllListenerAdapterService can generate an adapter.</p>
+ */
+published interface XAllListener: com::sun::star::lang::XEventListener
+{
+ /** gets called when an event occurs at the object.
+ */
+ void firing( [in] com::sun::star::script::AllEventObject iaEvent );
+
+ /** gets called when a "vetoable event" occurs at the object.
+
+ <p>That happens when the listener method raises an exception,
+ or has a return value declared.</p>
+ */
+ any approveFiring( [in] com::sun::star::script::AllEventObject aEvent )
+ raises( com::sun::star::reflection::InvocationTargetException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XAllListenerAdapterService.idl b/udkapi/com/sun/star/script/XAllListenerAdapterService.idl
new file mode 100644
index 0000000000..671af3e676
--- /dev/null
+++ b/udkapi/com/sun/star/script/XAllListenerAdapterService.idl
@@ -0,0 +1,46 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** allows the generation of adapters from specific
+ interfaces to the XAllListener interface.
+ */
+published interface XAllListenerAdapterService: com::sun::star::uno::XInterface
+{
+ /** creates a wrapper from the listener of type
+ <var>xListenerType</var> to the XAllListener
+ listener.
+
+ To get the correct listener interface the returned
+ com::sun::star::uno::XInterface has to
+ be queried for it.
+ */
+ com::sun::star::uno::XInterface createAllListerAdapter( [in] type xListenerType,
+ [in] com::sun::star::script::XAllListener xListener,
+ [in] any aHelper );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XAutomationInvocation.idl b/udkapi/com/sun/star/script/XAutomationInvocation.idl
new file mode 100644
index 0000000000..8115c5b0e3
--- /dev/null
+++ b/udkapi/com/sun/star/script/XAutomationInvocation.idl
@@ -0,0 +1,31 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module script {
+
+interface XAutomationInvocation: com::sun::star::script::XInvocation
+{
+ any invokeGetProperty( [in] string aFunctionName, [in] sequence<any> aParams, [out] sequence<short> aOutParamIndex, [out] sequence<any> aOutParam ) raises( com::sun::star::lang::IllegalArgumentException, com::sun::star::script::CannotConvertException, com::sun::star::reflection::InvocationTargetException );
+ any invokePutProperty( [in] string aFunctionName, [in] sequence<any> aParams, [out] sequence<short> aOutParamIndex, [out] sequence<any> aOutParam ) raises( com::sun::star::lang::IllegalArgumentException, com::sun::star::script::CannotConvertException, com::sun::star::reflection::InvocationTargetException );
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XDebugging.idl b/udkapi/com/sun/star/script/XDebugging.idl
new file mode 100644
index 0000000000..d76b1b7849
--- /dev/null
+++ b/udkapi/com/sun/star/script/XDebugging.idl
@@ -0,0 +1,119 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** makes it possible to set breakpoints in an interpreter.
+ @deprecated
+ */
+published interface XDebugging: com::sun::star::uno::XInterface
+{
+ /** returns the source code line where the breakpoint was set.
+
+ <p>The value can differ from the parameter
+ <var>nSourceCodeLine</var> when this is not a valid line to
+ place it. -1 indicates that the breakpoint cannot be set at
+ this position.
+ */
+ long setBreakPoint( [in] string aModuleName,
+ [in] long nSourceCodeLine,
+ [in] boolean bOn );
+
+ /** clears all breakpoints in the module set by "setBreakPoint".
+ */
+ void clearAllBreakPoints( [in] string aModuleName );
+
+ /** Evaluates an expression.
+
+ @param aSourceCode the expression to be evaluated.
+
+ @param nCallStackPos Position in the call stack for which the expression
+ should be evaluated. 0 is the top/actual position in the call
+ in the call stack, 1 the next and so on.
+
+ @returns the value of the expression as string.
+ */
+ string eval( [in] string aSourceCode,
+ [in] short nCallStackPos );
+
+ /** Returns the engine's stack trace of the current execute position. Line break is the delimiter.
+ */
+ sequence<string> getStackTrace();
+
+ /** returns more detailed information about a specified stack frame.
+
+ @param nCallStackPos
+ specifies the position in the call stack for the
+ variables that should be delivered.
+ */
+ com::sun::star::script::ContextInformation getContextInformation( [in] short nCallStackPos );
+
+ /** returns the value of the variable at the given stack position.
+ */
+ string dumpVariable( [in] string aVariableName,
+ [in] short nCallStackPos );
+
+ /** sets the value of the specified variable within the specified
+ stack frame.
+ */
+ void setVariable( [in] string aVariableName,
+ [in] string aValue,
+ [in] short nCallStackPos );
+
+ /** returns whether the given variable exists within the specified stack frame.
+ */
+ boolean isVariable( [in] string aVariableName,
+ [in] short nCallStackPos );
+
+ /** stops the execution of the interpreter.
+
+ <p>To continue with the execution, call XDebugging::doContinue().
+ */
+ void stop();
+
+ /** executes the next and only the next statement.
+
+ <p>If the next statement is a function call, the function is
+ executed completely.</p>
+ */
+ void stepOver();
+
+ /** executes the next and only the next statement.
+
+ <p>If the next statement is a function call, only the function
+ entered.</p>
+ */
+ void stepIn();
+
+ /** executes the program until the next return from this stack frame.
+ */
+ void stepOut();
+
+ /** continues the program execution.
+ */
+ void doContinue();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XDefaultMethod.idl b/udkapi/com/sun/star/script/XDefaultMethod.idl
new file mode 100644
index 0000000000..8c8acb9660
--- /dev/null
+++ b/udkapi/com/sun/star/script/XDefaultMethod.idl
@@ -0,0 +1,46 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module script {
+/**
+ An object supporting this interface indicates to interested
+ parties or clients the name of the default method for
+ this object.
+ <p>For example where ExampleObject is an instance of an Object that
+ supports this interface which returns the default method name
+ "defaultMethod".A scripting engine could use this information to support
+ syntax like <p>"ExampleObject( Param1 ... ParamN )"</p>
+ which would be equivalent to writing
+ <p>"ExampleObject.defaultMethod( Param1 ... ParamN )"</p>
+*/
+interface XDefaultMethod : ::com::sun::star::uno::XInterface
+{
+ /**
+ Returns the name of the default method
+
+ @return
+ The `string` name of default method
+ */
+ string getDefaultMethodName();
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XDefaultProperty.idl b/udkapi/com/sun/star/script/XDefaultProperty.idl
new file mode 100644
index 0000000000..cca881c6c9
--- /dev/null
+++ b/udkapi/com/sun/star/script/XDefaultProperty.idl
@@ -0,0 +1,50 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module script {
+/**
+ An object supporting this interface indicates to interested
+ parties or clients the name of the default property for
+ this object.
+ <p>For example where ExampleObject is an instance of an Object that
+ supports this interface which returns the default property name
+ "Value".A scripting engine could use this information to support
+ syntax like <p>ExampleObject = "foo"</p>
+ which would be equivalent to writing
+ <p>ExampleObject.Value = "foo"</p>
+ or
+ <p>bar = ExampleObject</p>
+ which would be equivalent to writing
+ <p>bar = ExampleObject.Value</p>
+*/
+interface XDefaultProperty : ::com::sun::star::uno::XInterface
+{
+ /**
+ Returns the name of the default property
+
+ @return
+ The `string` name of default property
+ */
+ string getDefaultPropertyName();
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XDirectInvocation.idl b/udkapi/com/sun/star/script/XDirectInvocation.idl
new file mode 100644
index 0000000000..a5965e057f
--- /dev/null
+++ b/udkapi/com/sun/star/script/XDirectInvocation.idl
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** provides access to an object's methods and properties.
+ */
+published interface XDirectInvocation: com::sun::star::uno::XInterface
+{
+ /** provides access to methods and properties exposed by an object.
+
+ @param aName the method to invoke
+ @param aParams all parameters, out parameters are not supported
+ */
+ any directInvoke( [in] string aName,
+ [in] sequence<any> aParams )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::script::CannotConvertException,
+ com::sun::star::reflection::InvocationTargetException );
+
+ /** returns `TRUE` if the method or property with the specified name exists, else `FALSE`.
+ */
+ boolean hasMember( [in] string aName );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XEngine.idl b/udkapi/com/sun/star/script/XEngine.idl
new file mode 100644
index 0000000000..7ac748ae11
--- /dev/null
+++ b/udkapi/com/sun/star/script/XEngine.idl
@@ -0,0 +1,98 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module script {
+
+/** makes it possible to control a scripting engine.
+ @deprecated
+ */
+published interface XEngine: com::sun::star::uno::XInterface
+{
+ /** sets an interface to an object as a scripting root.
+
+ <p>If the root object implements the XInvocation interface,
+ then the engine uses this interface to set/get properties and
+ call methods.
+ </p>
+ */
+ void setRoot( [in] com::sun::star::uno::XInterface xRoot );
+
+ /** gets an interface to the object which is the scripting root.
+ */
+ com::sun::star::uno::XInterface getRoot();
+
+ /** sets an access object to get external functions.
+ */
+ void setLibraryAccess( [in] com::sun::star::script::XLibraryAccess Library );
+
+ /** compiles a script module in the scope of the root object.
+ */
+ boolean compile( [in] string ModuleName,
+ [in] string Script,
+ [in] boolean CreateDebugInfo );
+
+ /** runs a script specified by a string.
+
+ <p>The arguments given in <var>aArgs</var> can be ignored by
+ the engine. The Script is executed synchronously.</p>
+ */
+ any run( [in] string aScript,
+ [in] com::sun::star::uno::XInterface xThis,
+ [in] sequence<any> aArgs );
+
+ /** runs the script specified by a string and makes callbacks.
+
+ <p>The arguments given in <var>aArgs</var> can be ignored by
+ the engine. The script is executed asynchronously.
+
+ </p>
+ */
+ void runAsync( [in] string acript,
+ [in] com::sun::star::uno::XInterface xThis,
+ [in] sequence<any> args,
+ [in] com::sun::star::script::XEngineListener xCallback );
+
+ /** terminates the execution of the running script.
+
+ <p>The waiting queue is cleared too.</p>
+ */
+ void cancel();
+
+ /** adds an engine listener.
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+ */
+ void addEngineListener( [in] com::sun::star::script::XEngineListener Listener );
+
+ /** removes an engine listener.
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+ */
+ void removeEngineListener( [in] com::sun::star::script::XEngineListener Listener );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XEngineListener.idl b/udkapi/com/sun/star/script/XEngineListener.idl
new file mode 100644
index 0000000000..0a2ecb0e6e
--- /dev/null
+++ b/udkapi/com/sun/star/script/XEngineListener.idl
@@ -0,0 +1,51 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** makes it possible to receive events from a scripting engine.
+ @deprecated
+ */
+published interface XEngineListener: com::sun::star::lang::XEventListener
+{
+ /** gets fired when an interrupt occurs during the script execution.
+
+ <p>If you call the method, the execution stops. So in this situation,
+ the stack and variable values are still available by using the
+ appropriate XDebugging methods.
+ </p>
+ */
+ void interrupt( [in] com::sun::star::script::InterruptEngineEvent Evt );
+
+ /** gets fired when the script gets into execution state.
+ */
+ void running( [in] com::sun::star::lang::EventObject Evt );
+
+ /** gets fired when the script execution has finished.
+ */
+ void finished( [in] com::sun::star::script::FinishEngineEvent Evt );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XErrorQuery.idl b/udkapi/com/sun/star/script/XErrorQuery.idl
new file mode 100644
index 0000000000..f68c6882f5
--- /dev/null
+++ b/udkapi/com/sun/star/script/XErrorQuery.idl
@@ -0,0 +1,36 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module script {
+
+interface XErrorQuery : ::com::sun::star::uno::XInterface
+{
+ /**
+ Returns whether this object has an error
+
+ @return
+ `boolean` indicating an error or not
+ */
+ boolean hasError();
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XEventAttacher.idl b/udkapi/com/sun/star/script/XEventAttacher.idl
new file mode 100644
index 0000000000..e97950729a
--- /dev/null
+++ b/udkapi/com/sun/star/script/XEventAttacher.idl
@@ -0,0 +1,79 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** makes it possible to attach script events given by a sequence of
+ ScriptEventDescriptor structures to a given interface.
+ */
+published interface XEventAttacher: com::sun::star::uno::XInterface
+{
+ /** registers the given "AllListener" object as a listener at the
+ given interface by creating a suitable listener adapter and
+ calling the "addListener" method corresponding to the
+ "ListenerType".
+ */
+ com::sun::star::lang::XEventListener attachListener( [in] com::sun::star::uno::XInterface xTarget,
+ [in] com::sun::star::script::XAllListener xAllListener,
+ [in] any aHelper,
+ [in] string aListenerType,
+ [in] string aAddListenerParam )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::beans::IntrospectionException,
+ com::sun::star::script::CannotCreateAdapterException,
+ com::sun::star::lang::ServiceNotRegisteredException );
+
+ /** registers an object as a listener at the given interface by
+ creating a suitable listener adapter and calling the method
+ which corresponds to the listener type.
+
+ <p>Only the event corresponding to the given event method
+ will be delegated to <var>xAllListener</var>.</p>
+ */
+ com::sun::star::lang::XEventListener attachSingleEventListener( [in] com::sun::star::uno::XInterface xTarget,
+ [in] com::sun::star::script::XAllListener xAllListener,
+ [in] any aHelper,
+ [in] string aListenerType,
+ [in] string aAddListenerParam,
+ [in] string aEventMethod )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::beans::IntrospectionException,
+ com::sun::star::script::CannotCreateAdapterException,
+ com::sun::star::lang::ServiceNotRegisteredException );
+
+ /** removes a listener object as a listener from the given interface.
+
+ <p> This method can and should be used as a contrary method
+ to the two attach methods.</p>
+ */
+ void removeListener( [in] com::sun::star::uno::XInterface xTarget,
+ [in] string aListenerType,
+ [in] string aRemoveListenerParam,
+ [in] com::sun::star::lang::XEventListener xToRemoveListener )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::beans::IntrospectionException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XEventAttacher2.idl b/udkapi/com/sun/star/script/XEventAttacher2.idl
new file mode 100644
index 0000000000..60da78ee7f
--- /dev/null
+++ b/udkapi/com/sun/star/script/XEventAttacher2.idl
@@ -0,0 +1,33 @@
+/* -*- 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/.
+ */
+
+module com { module sun { module star { module script {
+
+interface XEventAttacher2: com::sun::star::script::XEventAttacher
+{
+ /** Register a multiple set of listeners listening for the same
+ target. Besides passing multiple listeners, the behavior of
+ this method is identical to that of
+ attachSingleEventListener().
+
+ @see com::sun::star::script::XEventAttacher::attachSingleEventListener
+ */
+ sequence<com::sun::star::lang::XEventListener>
+ attachMultipleEventListeners(
+ [in] com::sun::star::uno::XInterface xTarget,
+ [in] sequence<com::sun::star::script::EventListener> aListeners )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::beans::IntrospectionException,
+ com::sun::star::script::CannotCreateAdapterException,
+ com::sun::star::lang::ServiceNotRegisteredException );
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XEventAttacherManager.idl b/udkapi/com/sun/star/script/XEventAttacherManager.idl
new file mode 100644
index 0000000000..9ee5052abe
--- /dev/null
+++ b/udkapi/com/sun/star/script/XEventAttacherManager.idl
@@ -0,0 +1,188 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** registers listeners for specified events.
+ */
+published interface XEventAttacherManager: com::sun::star::uno::XInterface
+{
+ /** registers one event for an object identified by its index.
+
+ <p>If any object is attached under this index, then this
+ event is attached automatically.</p>
+ <p>Exceptions of type
+ com::sun::star::beans::IntrospectionException and
+ com::sun::star::script::CannotCreateAdapterException
+ that can be thrown by methods of XEventAttacher are caught
+ and ignored.</p>
+ */
+ void registerScriptEvent( [in] long nIndex,
+ [in] com::sun::star::script::ScriptEventDescriptor aScriptEvent )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** registers several events for an object identified by its index.
+
+ <p>The result is the same as if the method registerScriptEvent()
+ was called once for each ScriptEventDescriptor
+ in the sequence.</p>
+
+ <p>If any object is attached under this index, then this
+ event is attached automatically (see attach())</p>
+
+ <p>Exceptions of type
+ com::sun::star::beans::IntrospectionException and
+ com::sun::star::script::CannotCreateAdapterException
+ that can be thrown by methods of XEventAttacher are caught
+ and ignored.</p>
+
+ @see registerScriptEvent
+ @see attach
+ */
+ void registerScriptEvents( [in] long nIndex,
+ [in] sequence<com::sun::star::script::ScriptEventDescriptor> aScriptEvents )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** revokes the registration of an event.
+
+ <p>The parameters <var>ListenerType</var> and
+ <var>EventMethod</var> are equivalent to the first two
+ members of the ScriptEventDescriptor
+ used to register events. If this event at this index has
+ been attached to any object, it is detached automatically
+ (see attach()).</p>
+
+ <p>Exceptions of type
+ com::sun::star::beans::IntrospectionException and
+ com::sun::star::script::CannotCreateAdapterException
+ that can be thrown by methods of XEventAttacher are caught
+ and ignored.</p>
+
+ @see attach
+ */
+ void revokeScriptEvent( [in] long nIndex,
+ [in] string aListenerType,
+ [in] string aEventMethod,
+ [in] string aRemoveListenerParam )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** revokes all events which are registered for the given index.
+
+ <p>If the events at this index have been attached to any
+ object, they are detached automatically.
+ (see attach()).</p>
+
+ @see attach
+ */
+ void revokeScriptEvents( [in] long nIndex )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** creates an empty entry at the given position.
+
+ <p>The index <var>n</var> of all entries with <code>n &amp;gt;=
+ nIndex</code> will be increased by one.</p>
+ */
+ void insertEntry( [in] long nIndex )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** removes the entry at the given position.
+
+ <p>If any events are registered at this index, they will
+ be revoked, too. So if the events at this index have been
+ attached to any object they are detached automatically.
+ (see attach()).</p>
+
+ @see attach
+ */
+ void removeEntry( [in] long nIndex )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** @return
+ all events registered for the given object index.
+
+ @param Index
+ an index previously inserted with the method insertEntry.
+
+ @throws IllegalArgumentException
+ if Index is not valid.
+ */
+ sequence<com::sun::star::script::ScriptEventDescriptor> getScriptEvents( [in] long Index )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** attaches all the ScriptEvents which are registered
+ for the given index to the given object.
+
+ <p>Exceptions of type
+ com::sun::star::beans::IntrospectionException and
+ com::sun::star::script::CannotCreateAdapterException
+ that can be thrown by methods of XEventAttacher are caught
+ and ignored.</p>
+ */
+ void attach( [in] long nIndex,
+ [in] com::sun::star::uno::XInterface xObject,
+ [in] any aHelper )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::ServiceNotRegisteredException );
+
+ /** detaches all the ScriptEvents from the given object
+ which are registered at this object for the given index.
+
+ <p>Exceptions of type
+ com::sun::star::beans::IntrospectionException and
+ com::sun::star::script::CannotCreateAdapterException
+ that can be thrown by methods of XEventAttacher are caught
+ and ignored.</p>
+ */
+ void detach( [in] long nIndex,
+ [in] com::sun::star::uno::XInterface xObject )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** adds an XScriptListener that will be notified when an
+ event takes place. For that a
+ ScriptEventDescriptor is registered at and
+ attached to an object by an XEventAttacherManager.
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+
+ @see removeScriptListener
+ */
+ void addScriptListener( [in] com::sun::star::script::XScriptListener xListener )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** removes a XScriptListener from the listener list.
+
+ <p>Nothing happens if the listener is not registered.
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+
+ @see addScriptListener
+ */
+ void removeScriptListener( [in] com::sun::star::script::XScriptListener Listener )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XInvocation.idl b/udkapi/com/sun/star/script/XInvocation.idl
new file mode 100644
index 0000000000..081d57c113
--- /dev/null
+++ b/udkapi/com/sun/star/script/XInvocation.idl
@@ -0,0 +1,115 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** gives access to an object's methods and properties.
+ Container access is available through
+ com::sun::star::container::XIndexContainer,
+ com::sun::star::container::XNameContainer and
+ com::sun::star::container::XEnumerationAccess.
+ </p>
+ */
+published interface XInvocation: com::sun::star::uno::XInterface
+{
+ /** returns the introspection from this object or `NULL`
+ if the object does not provide this information.
+ */
+ com::sun::star::beans::XIntrospectionAccess getIntrospection();
+
+ /** provides access to methods exposed by an object.
+
+ @param aFunctionName the method to invoke
+ @param aParams all parameters; pure out params are undefined in sequence,
+ the value has to be ignored by the callee
+ @param aOutParamIndex This sequence contains the indices of all parameters
+ that are specified as out or inout.
+ @param aOutParam This sequence contains the values of all parameters that
+ are specified as out or inout and corresponds with the
+ indices provided by the aOutParamIndex sequence.
+
+ Example: aOutParamIndex == { 1, 4 } means that
+ aOutParam[0] contains the out value of the aParams[1]
+ parameter and aOutParam[1] contains the out value of
+ the aParams[4] parameter.
+ */
+ any invoke( [in] string aFunctionName,
+ [in] sequence<any> aParams,
+ [out] sequence<short> aOutParamIndex,
+ [out] sequence<any> aOutParam )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::script::CannotConvertException,
+ com::sun::star::reflection::InvocationTargetException );
+
+ /** sets a value to the property with the specified name.
+
+ <p> If the underlying object implements an
+ com::sun::star::container::XNameContainer,
+ then this method will insert the value if there is no such
+ <var>aPropertyName</var>.
+
+ </p>
+ */
+ void setValue( [in] string aPropertyName,
+ [in] any aValue )
+ raises( com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::script::CannotConvertException,
+ com::sun::star::reflection::InvocationTargetException );
+
+ /** returns the value of the property with the specified name.
+
+ @param aPropertyName
+ specifies the name of the property.
+ */
+ any getValue( [in] string aPropertyName )
+ raises( com::sun::star::beans::UnknownPropertyException );
+
+ /** returns `TRUE` if the method with the specified name exists, else `FALSE`.
+
+ <p>This optimizes the calling sequence
+ ( XInvocation::hasMethod(),
+ XInvocation::invoke() )!</p>
+
+ @param aName
+ specifies the name of the method.
+ */
+ boolean hasMethod( [in] string aName );
+
+ /** returns `TRUE` if the property with the specified name exists, else `FALSE`.
+
+ <p>This optimizes the calling sequence
+ ( XInvocation::hasProperty(),
+ XInvocation::getValue() ) or
+
+ ( XInvocation::hasProperty(),
+ XInvocation::setValue() )!
+
+ @param aName
+ specifies the name of the property.
+ */
+ boolean hasProperty( [in] string aName );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XInvocation2.idl b/udkapi/com/sun/star/script/XInvocation2.idl
new file mode 100644
index 0000000000..472439b976
--- /dev/null
+++ b/udkapi/com/sun/star/script/XInvocation2.idl
@@ -0,0 +1,63 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module script {
+
+
+/**
+ Extension of XInvocation to provide additional information
+ about the methods and properties that are accessible via
+ XInvocation.
+ </p>
+ */
+published interface XInvocation2: com::sun::star::script::XInvocation
+{
+ /** returns the names of all methods and properties accessible via XInvocation.
+ */
+ sequence< string > getMemberNames();
+
+ /** returns information items for all methods and properties accessible via XInvocation.
+
+ @see com::sun::star::script::Invocation
+ */
+ sequence< InvocationInfo > getInfo();
+
+ /** returns information item for the method or property defined by aName
+
+ @param aName
+ specifies the name of the method or property
+
+ @param bExact
+ specifies the name of the method or property
+
+ @throws IllegalArgumentException
+ if aName is not the name of a supported method or property
+
+ @see com::sun::star::script::Invocation
+ */
+ InvocationInfo getInfoForName( [in] string aName, [in] boolean bExact )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XInvocationAdapterFactory.idl b/udkapi/com/sun/star/script/XInvocationAdapterFactory.idl
new file mode 100644
index 0000000000..801f93f7a7
--- /dev/null
+++ b/udkapi/com/sun/star/script/XInvocationAdapterFactory.idl
@@ -0,0 +1,50 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+
+/** Interface to create adapter objects giving a type to be supported and a
+ an invocation interface incoming calls are delegated to.
+
+ This interface is deprecated. Use XInvocationAdapterFactory2.
+ @deprecated
+*/
+published interface XInvocationAdapterFactory: com::sun::star::uno::XInterface
+{
+ /** Creates an adapter interface of given type for calling the given
+ XInvocation interface.
+
+ @param Invocation
+ invocation interface being called on incoming adapter calls
+ @param aType
+ supported type of adapter
+
+ @returns
+ adapter interface; this interface can be queried for
+ XInterface and given type
+ */
+ com::sun::star::uno::XInterface createAdapter( [in]XInvocation Invocation, [in]type aType );
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XInvocationAdapterFactory2.idl b/udkapi/com/sun/star/script/XInvocationAdapterFactory2.idl
new file mode 100644
index 0000000000..3bd861b96f
--- /dev/null
+++ b/udkapi/com/sun/star/script/XInvocationAdapterFactory2.idl
@@ -0,0 +1,48 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module script {
+
+/** Interface to create adapter objects giving types to be supported and a
+ an invocation interface incoming calls are delegated to.
+*/
+published interface XInvocationAdapterFactory2 : com::sun::star::uno::XInterface
+{
+ /** Creates an adapter interface of given types for calling the given
+ XInvocation interface.
+
+ @param Invocation
+ invocation interface being called on incoming adapter calls
+ @param aTypes
+ supported types of adapter
+
+ @returns
+ adapter interface; this interface can be queried for
+ XInterface and given types
+ */
+ com::sun::star::uno::XInterface createAdapter(
+ [in] XInvocation Invocation,
+ [in] sequence< type > aTypes );
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XLibraryAccess.idl b/udkapi/com/sun/star/script/XLibraryAccess.idl
new file mode 100644
index 0000000000..4448ad0bca
--- /dev/null
+++ b/udkapi/com/sun/star/script/XLibraryAccess.idl
@@ -0,0 +1,84 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** provides access to additional scripting code.
+
+ <p>This code is organized in modules and these modules contain
+ the functions. It is possible to get just the code from a function,
+ but you can also get the whole code of a module with all functions in it.</p>
+ @deprecated
+ */
+published interface XLibraryAccess: com::sun::star::uno::XInterface
+{
+ /** returns `TRUE`, if the function is accessible through this library;
+ otherwise it returns `FALSE`.
+
+ @param aFunctionName
+ the fully qualified name of a function.
+ (e.g., "UtilLibrary.ModuleDate.FunctionCurrentDate")
+ */
+ boolean isFunction( [in] string aFunctionName );
+
+ /** returns `TRUE` if a fully qualified function name begins with this name.
+
+ @param aPathName
+ a part of a function name (e.g., "UtilLibrary").
+ */
+ boolean isValidPath( [in] string aPathName );
+
+ /** Return all module names which contain code.
+ e.g., { "UtilLibrary.ModuleDate", "UtilLibrary.Output", ... }
+ */
+ sequence<string> getModuleNames();
+
+ /** get the source code of a module.
+ */
+ string getModuleSource( [in] string aModulName );
+
+ /** Get the whole compiled code of a module.
+
+ @param aModuleName the full qualified name of a module.
+ (e.g., "UtilLibrary.ModuleDate")
+ @return an empty sequence, if this module is not found or the
+ code is not compiled.
+ */
+ sequence<byte> getModuleCode( [in] string aModuleName );
+
+ /** get the source code of a function.
+ */
+ string getFunctionSource( [in] string aFunctionName );
+
+ /** Get the compiled code of a function.
+
+ @param FunctionName the full qualified name of a function.
+ (e.g., "UtilLibrary.ModuleDate.Function.CurrentDate")
+ @return an empty sequence, if this function is not found.
+ */
+ sequence<byte> getFunctionCode( [in] string FunctionName );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XScriptEventsAttacher.idl b/udkapi/com/sun/star/script/XScriptEventsAttacher.idl
new file mode 100644
index 0000000000..2bc96d30ce
--- /dev/null
+++ b/udkapi/com/sun/star/script/XScriptEventsAttacher.idl
@@ -0,0 +1,64 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+
+/**
+ This interface can be used to attach script events to a number of
+ objects that give access to the definition of events that should
+ be attached to them, e.g., by supporting XEventsSupplier
+*/
+published interface XScriptEventsAttacher: com::sun::star::uno::XInterface
+{
+ /**
+ Attaches the events defined by XScriptEventsSupplier to the
+ corresponding object implementing XScriptEventsSupplier.
+
+ @param Objects
+ Sequence of all objects. Usually the objects should directly
+ support XScriptEventsAttacher to define the events
+ but this is not strictly required. It's also possible that
+ the object implementing XScriptEventsAttacher
+ knows how to get the necessary information for the objects.
+ @param xListener
+ All events (if defined by XScriptEventsSupplier) that are fired
+ by one of the objects are mapped into a ScriptEvent
+ and passed to the methods of this XScriptListener.
+ @param Helper
+ Helper object for the implementation. This value will be
+ passed to the XScriptListener as Helper property in the
+ ScriptEvent.
+ */
+ void attachEvents( [in] sequence< com::sun::star::uno::XInterface > Objects,
+ [in] com::sun::star::script::XScriptListener xListener,
+ [in] any Helper )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::beans::IntrospectionException,
+ com::sun::star::script::CannotCreateAdapterException,
+ com::sun::star::lang::ServiceNotRegisteredException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XScriptEventsSupplier.idl b/udkapi/com/sun/star/script/XScriptEventsSupplier.idl
new file mode 100644
index 0000000000..2b7ff5bba5
--- /dev/null
+++ b/udkapi/com/sun/star/script/XScriptEventsSupplier.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+
+/**
+ Gives access to an event container represented by an
+ XNameContainer containing ScriptEventDescriptor instances.
+ */
+published interface XScriptEventsSupplier: com::sun::star::uno::XInterface
+{
+ /**
+ Returns an XNameContainer containing instances
+ of ScriptEventDescriptor
+ */
+ com::sun::star::container::XNameContainer getEvents();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XScriptListener.idl b/udkapi/com/sun/star/script/XScriptListener.idl
new file mode 100644
index 0000000000..e8b29fcee0
--- /dev/null
+++ b/udkapi/com/sun/star/script/XScriptListener.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+/** makes it possible to receive ScriptEvents.
+ */
+published interface XScriptListener: com::sun::star::lang::XEventListener
+{
+ /** gets called when an event takes place. For that a
+ ScriptEventDescriptor is registered at and
+ attached to an object by an XEventAttacherManager.
+ */
+ void firing( [in] com::sun::star::script::ScriptEvent aEvent );
+
+ /** gets called when a "vetoable event" occurs at the object.
+ */
+ any approveFiring( [in] com::sun::star::script::ScriptEvent aEvent )
+ raises( com::sun::star::reflection::InvocationTargetException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XStarBasicAccess.idl b/udkapi/com/sun/star/script/XStarBasicAccess.idl
new file mode 100644
index 0000000000..7f9581dc89
--- /dev/null
+++ b/udkapi/com/sun/star/script/XStarBasicAccess.idl
@@ -0,0 +1,77 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module script {
+
+
+/** Interface representing a library and provides access to its modules
+
+ @deprecated
+ */
+published interface XStarBasicAccess: com::sun::star::uno::XInterface
+{
+ /** returns
+ the library container giving access to the libraries stored in a document
+ or basic library file.
+ */
+ com::sun::star::container::XNameContainer getLibraryContainer();
+
+ /**
+ Creates an empty library. This method can be called alternatively to
+ accessing directly the NameContainer returned by getLibraryContainer.
+ By using this method together with addModule and addStarBasicDialog
+ the caller does not have to implement XStarBasicLibraryInfo, XModuleInfo,
+ and XStarBasicDialogInfo
+ */
+ void createLibrary( [in] string LibName, [in] string Password,
+ [in] string ExternalSourceURL, [in] string LinkTargetURL )
+ raises( com::sun::star::container::ElementExistException );
+
+ /**
+ Adds a module to an existing (e.g., created by createLibrary) library.
+ By using this method together with createLibrary the caller does not have
+ to implement XStarBasicLibraryInfo and XModuleInfo.
+
+ @throws NoSuchElementException
+ if the library doesn't exist.
+ */
+ void addModule( [in] string LibraryName, [in] string ModuleName,
+ [in] string Language, [in] string Source )
+ raises( com::sun::star::container::NoSuchElementException );
+
+ /**
+ Adds an old style basic dialog (SI controls) to an existing (e.g., created
+ by createLibrary) library.
+ By using this method together with createLibrary the caller does not have
+ to implement XStarBasicLibraryInfo and XStarBasicDialogInfo
+
+ @throws NoSuchElementException
+ if the library doesn't exist.
+ */
+ void addDialog( [in] string LibraryName, [in] string DialogName,
+ [in] sequence< byte > Data )
+ raises( com::sun::star::container::NoSuchElementException );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XStarBasicDialogInfo.idl b/udkapi/com/sun/star/script/XStarBasicDialogInfo.idl
new file mode 100644
index 0000000000..24f0dc7956
--- /dev/null
+++ b/udkapi/com/sun/star/script/XStarBasicDialogInfo.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+
+/** Interface describing old style basic dialog (SI controls) in binary data
+
+ @deprecated
+ */
+published interface XStarBasicDialogInfo: com::sun::star::uno::XInterface
+{
+ /** returns the name of the dialog
+ */
+ string getName();
+
+ /** returns binary data describing the SIDialog in SBX stream format
+ */
+ sequence< byte > getData();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XStarBasicLibraryInfo.idl b/udkapi/com/sun/star/script/XStarBasicLibraryInfo.idl
new file mode 100644
index 0000000000..9f2280edf8
--- /dev/null
+++ b/udkapi/com/sun/star/script/XStarBasicLibraryInfo.idl
@@ -0,0 +1,83 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module script {
+
+
+/** Interface representing a library and provides access to its modules
+
+ @deprecated
+ */
+published interface XStarBasicLibraryInfo: com::sun::star::uno::XInterface
+{
+ /** returns the library's name
+ */
+ string getName();
+
+ /** returns
+ the module container giving access to the modules stored in the library.
+ The container has to be returned in any case, no matter if the library is
+ stored embedded, external, or linked.
+
+ @see getExternalSourceURL
+ @see getLinkTargetURL
+ */
+ com::sun::star::container::XNameContainer getModuleContainer();
+
+ /** returns
+ the dialog container giving access to the dialogs stored in the library.
+ The container has to be returned in any case, no matter if the library is
+ stored embedded, external, or linked.
+
+ @see getExternalSourceURL
+ @see getLinkTargetURL
+ */
+ com::sun::star::container::XNameContainer getDialogContainer();
+
+ /** returns
+ the password, if the library is protected with one,
+ an empty string otherwise.
+ */
+ string getPassword();
+
+ /** returns an
+ URL describing the location where the library is stored if the library
+ is stored separately (for example not in the main XML file but in a
+ special library format file), an empty string otherwise.
+ This information can be useful to optimize the access to the library,
+ e.g., for loading on demand.
+ */
+ string getExternalSourceURL();
+
+ /** returns an
+ URL describing the location of the library linked to.
+
+ <p>HINT: This method can be removed when there is a generic interface
+ for linking. Then the implementation will simply support this
+ "XLinked" interface and it can be checked by queryInterface().</p>
+ */
+ string getLinkTargetURL();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XStarBasicModuleInfo.idl b/udkapi/com/sun/star/script/XStarBasicModuleInfo.idl
new file mode 100644
index 0000000000..7aa8890608
--- /dev/null
+++ b/udkapi/com/sun/star/script/XStarBasicModuleInfo.idl
@@ -0,0 +1,50 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+
+/** Script Module containing some scripting code in a certain scripting language
+ @deprecated
+ */
+published interface XStarBasicModuleInfo: com::sun::star::uno::XInterface
+{
+ /** returns the name of the module
+ */
+ string getName();
+
+ /** returns the type of the script language as string, for example, "StarBasic" or "JavaScript".
+ */
+ string getLanguage();
+
+ /** returns the script source code as string.
+
+ <p>The code has to correspond with the language
+ defined by Language.</p>
+ */
+ string getSource();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/script/XTypeConverter.idl b/udkapi/com/sun/star/script/XTypeConverter.idl
new file mode 100644
index 0000000000..5124e8835a
--- /dev/null
+++ b/udkapi/com/sun/star/script/XTypeConverter.idl
@@ -0,0 +1,73 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module script {
+
+
+/** Interface to provide standard type conversions.
+
+ @see Converter
+*/
+published interface XTypeConverter: com::sun::star::uno::XInterface
+{
+ /** Converts the value <code>aFrom</code> to the specified type
+ <code>xDestinationType</code>.
+ Throws a CannotConvertException if the conversion
+ failed.
+ @param aFrom
+ source value
+ @param xDestinationType
+ destination type
+ @return
+ converted value (any carrying value of type <code>xDestinationType</code>
+ */
+ any convertTo(
+ [in] any aFrom,
+ [in] type xDestinationType )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::script::CannotConvertException );
+
+ /** Converts the value <code>aFrom</code> to the specified simple type
+ <code>aDestinationType</code>.
+ Throws a CannotConvertException if the conversion
+ failed and a com::sun::star::lang::IllegalArgumentException
+ if the destination
+ com::sun::star::uno::TypeClass is not simple,
+ e.g. not long or byte.
+
+ @param aFrom
+ source value
+ @param aDestinationType
+ destination type class
+ @return
+ converted value (any carrying value of type <code>aDestinationType</code>
+ */
+ any convertToSimpleType(
+ [in] any aFrom,
+ [in] com::sun::star::uno::TypeClass aDestinationType )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::script::CannotConvertException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/security/AccessControlException.idl b/udkapi/com/sun/star/security/AccessControlException.idl
new file mode 100644
index 0000000000..84b5e29be0
--- /dev/null
+++ b/udkapi/com/sun/star/security/AccessControlException.idl
@@ -0,0 +1,45 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module security {
+
+
+/** Exception notifying a lacking permission to access data or execute code
+ thus it is thrown if permission ought to be denied.
+
+ @since OOo 1.1.2
+*/
+published exception AccessControlException : com::sun::star::uno::SecurityException
+{
+ /** lacking permission.
+
+ @attention
+ If it is the case, that XAccessController::checkPermission() was called
+ passing a sequence< any >, i.e. a sequence of permissions are demanded,
+ then this any holds the sequence of lacking permissions in the same
+ order as they were passed to XAccessController::checkPermission().
+ */
+ any LackingPermission;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/security/AccessController.idl b/udkapi/com/sun/star/security/AccessController.idl
new file mode 100644
index 0000000000..d5dd2f1054
--- /dev/null
+++ b/udkapi/com/sun/star/security/AccessController.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module security {
+
+/** This meta service supports the XAccessController interface for checking
+ security permissions.
+
+ @attention
+ The specific service implementation of this meta service has to take care
+ of bootstrapping problems, i.e. recurring calls during initialization
+ have to be resolved. This happens when the implementation calls other
+ service implementations.
+
+ Also, it obviously has also to be ensured that the object is process-local
+ to assure that permission checks are not corrupted via insecure inter-process
+ communication.
+
+ @since OOo 1.1.2
+*/
+published service AccessController : XAccessController;
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/security/AllPermission.idl b/udkapi/com/sun/star/security/AllPermission.idl
new file mode 100644
index 0000000000..7c916c69f0
--- /dev/null
+++ b/udkapi/com/sun/star/security/AllPermission.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module security {
+
+
+/** The AllPermission is a permission that implies all other permissions.
+
+ @attention
+ Granting AllPermission should be done with extreme care, as it implies all
+ other permissions. Thus, it grants code the ability to run with security
+ disabled. Extreme caution should be taken before granting such a
+ permission to code. This permission should be used only during testing,
+ or in extremely rare cases where an application is completely trusted and
+ adding the necessary permissions to the policy is prohibitively cumbersome.
+
+ @since OOo 1.1.2
+*/
+published struct AllPermission
+{
+ byte dummy;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/security/Policy.idl b/udkapi/com/sun/star/security/Policy.idl
new file mode 100644
index 0000000000..ac0f5ecd61
--- /dev/null
+++ b/udkapi/com/sun/star/security/Policy.idl
@@ -0,0 +1,32 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module security {
+
+/** Service for getting sets of permissions reading from some persistent
+ storage.
+
+ @since OOo 1.1.2
+*/
+published service Policy : XPolicy;
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/security/RuntimePermission.idl b/udkapi/com/sun/star/security/RuntimePermission.idl
new file mode 100644
index 0000000000..e918a038ec
--- /dev/null
+++ b/udkapi/com/sun/star/security/RuntimePermission.idl
@@ -0,0 +1,39 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module security {
+
+
+/** This permission grants runtime access to some named functionality.
+ A RuntimePermission contains a name (also referred to as a "target name")
+ but no actions list; you either have the named permission or you don't.
+
+ @since OOo 1.1.2
+*/
+published struct RuntimePermission
+{
+ /** name of permission
+ */
+ string Name;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/security/XAccessControlContext.idl b/udkapi/com/sun/star/security/XAccessControlContext.idl
new file mode 100644
index 0000000000..b6ed5b8688
--- /dev/null
+++ b/udkapi/com/sun/star/security/XAccessControlContext.idl
@@ -0,0 +1,71 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module security {
+
+
+/** An XAccessControlContext is used to make system resource access decisions
+ based on the context it encapsulates.
+ <p>
+ More specifically, it encapsulates a context and has methods to check
+ permissions equivalent to XAccessController interface,
+ with one difference:
+ The XAccessControlContext makes access decisions
+ based on the context it encapsulates, rather than
+ that of the current execution thread.
+ </p>
+
+ @since OOo 1.1.2
+*/
+published interface XAccessControlContext : com::sun::star::uno::XInterface
+{
+ /** Determines whether the access request indicated by the specified
+ permission should be allowed or denied, based on this context.
+ The semantics are equivalent to the security permission classes of
+ the Java platform.
+ <p>
+ You can also pass a sequence of permissions (sequence< any >) to check
+ a set of permissions, e.g. for performance reasons.
+ This method quietly returns if the access request is permitted,
+ or throws a suitable AccessControlException otherwise.
+ </p>
+
+ @param perm
+ permission to be checked
+
+ @throws AccessControlException
+ thrown if access is denied
+
+ @see ::com::sun::star::security::AccessControlException
+ @see ::com::sun::star::security::AllPermission
+ @see ::com::sun::star::security::RuntimePermission
+ @see ::com::sun::star::io::FilePermission
+ @see ::com::sun::star::connection::SocketPermission
+ */
+ void checkPermission(
+ [in] any perm )
+ raises (AccessControlException);
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/security/XAccessController.idl b/udkapi/com/sun/star/security/XAccessController.idl
new file mode 100644
index 0000000000..50c1a38af5
--- /dev/null
+++ b/udkapi/com/sun/star/security/XAccessController.idl
@@ -0,0 +1,127 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module security {
+
+
+/** Interface for checking permissions and invoking privileged or restricted
+ actions.
+
+ @since OOo 1.1.2
+*/
+published interface XAccessController : com::sun::star::uno::XInterface
+{
+ /** Determines whether the access request indicated by the specified
+ permission should be allowed or denied, based on the security policy
+ currently in effect.
+ The semantics are equivalent to the security permission classes of
+ the Java platform.
+ <p>
+ You can also pass a sequence of permissions (sequence< any >) to check
+ a set of permissions, e.g. for performance reasons.
+ This method quietly returns if the access request is permitted,
+ or throws a suitable AccessControlException otherwise.
+ </p>
+
+ @param perm
+ permission to be checked
+
+ @throws AccessControlException
+ thrown if access is denied
+
+ @see ::com::sun::star::security::AccessControlException
+ @see ::com::sun::star::security::AllPermission
+ @see ::com::sun::star::security::RuntimePermission
+ @see ::com::sun::star::io::FilePermission
+ @see ::com::sun::star::connection::SocketPermission
+ */
+ void checkPermission(
+ [in] any perm )
+ raises (AccessControlException);
+
+ /** Perform the specified action restricting permissions to the given
+ XAccessControlContext.
+ The action is performed with the intersection of the permissions of the currently installed
+ XAccessControlContext, the given XAccessControlContext and the security policy currently
+ in effect. The latter includes static security, e.g. based on user credentials.
+ <p>
+ If the specified XAccessControlContext is null, then the action is performed
+ with unmodified permissions, i.e. the call makes no sense.
+ </p>
+
+ @param action
+ action object to be executed
+ @param restriction
+ access control context to restrict permission; null for no restriction
+ @return
+ result
+ @throws com::sun::star::uno::Exception
+ any UNO exception may be thrown
+ */
+ any doRestricted(
+ [in] XAction action,
+ [in] XAccessControlContext restriction )
+ raises (com::sun::star::uno::Exception);
+
+ /** Perform the specified action adding a set of permissions defined by the given
+ XAccessControlContext.
+ The action is performed with the union of the permissions of the currently installed
+ XAccessControlContext, the given XAccessControlContext and the security policy currently
+ in effect. The latter includes static security, e.g. based on user credentials.
+ <p>
+ If the given XAccessControlContext is null, then the action is performed
+ <b>only</b> with the permissions of the security policy currently in effect.
+ </p>
+
+ @attention
+ Do carefully use this method only for well known use-cases to avoid exploits!
+ Script engines executing sandboxed scripts should generally deny calling this
+ method.
+
+ @param action
+ action object to be executed
+ @param restriction
+ access control context to restrict permission; null for no restriction
+ @return
+ result
+ @throws com::sun::star::uno::Exception
+ any UNO exception may be thrown
+ */
+ any doPrivileged(
+ [in] XAction action,
+ [in] XAccessControlContext restriction )
+ raises (com::sun::star::uno::Exception);
+
+ /** This method takes a "snapshot" of the current calling context
+ and returns it.
+ <p>
+ This context may then be checked at a later point, possibly in another thread.
+ </p>
+ @return
+ snapshot of context
+ */
+ XAccessControlContext getContext();
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/security/XAction.idl b/udkapi/com/sun/star/security/XAction.idl
new file mode 100644
index 0000000000..259950be8e
--- /dev/null
+++ b/udkapi/com/sun/star/security/XAction.idl
@@ -0,0 +1,45 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module security {
+
+
+/** Interface for running an action.
+
+ @since OOo 1.1.2
+*/
+published interface XAction : com::sun::star::uno::XInterface
+{
+ /** Action to be done.
+
+ @return
+ result
+ @throws com::sun::star::uno::Exception
+ any UNO exception may be thrown
+ */
+ any run()
+ raises (com::sun::star::uno::Exception);
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/security/XPolicy.idl b/udkapi/com/sun/star/security/XPolicy.idl
new file mode 100644
index 0000000000..4d42e7fea2
--- /dev/null
+++ b/udkapi/com/sun/star/security/XPolicy.idl
@@ -0,0 +1,57 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module security {
+
+/** Interface for getting sets of permissions of a specified user or
+ the default permissions if no user is given.
+
+ @see com::sun::star::security::Policy
+
+ @since OOo 1.1.2
+*/
+published interface XPolicy : com::sun::star::uno::XInterface
+{
+ /** Gets the permissions of the specified user excluding the default permissions
+ granted to all users.
+
+ @param userId
+ user id
+ @return
+ permissions of the specified user
+ */
+ sequence< any > getPermissions(
+ [in] string userId );
+
+ /** Gets the default permissions granted to all users.
+
+ @return
+ default permissions
+ */
+ sequence< any > getDefaultPermissions();
+
+ /** Refreshes the policy configuration.
+ */
+ void refresh();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/task/XInteractionAbort.idl b/udkapi/com/sun/star/task/XInteractionAbort.idl
new file mode 100644
index 0000000000..3130d25ec8
--- /dev/null
+++ b/udkapi/com/sun/star/task/XInteractionAbort.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module task {
+
+/** An interaction continuation specifying to abort executing the process that
+ issued the request.
+ */
+published interface XInteractionAbort: com::sun::star::task::XInteractionContinuation
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/task/XInteractionContinuation.idl b/udkapi/com/sun/star/task/XInteractionContinuation.idl
new file mode 100644
index 0000000000..58605d8082
--- /dev/null
+++ b/udkapi/com/sun/star/task/XInteractionContinuation.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module task {
+
+/** Specifies a way of how to continue from an
+ com::sun::star::task::XInteractionRequest.
+ <P>Different sub-interfaces of this interface specify different ways of
+ continuing.</P>
+ */
+published interface XInteractionContinuation: com::sun::star::uno::XInterface
+{
+ /** Select this way of continuing from an
+ com::sun::star::task::XInteractionRequest (given a
+ choice of various instances of
+ com::sun::star::task::XInteractionContinuation).
+ */
+ void select();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/task/XInteractionHandler.idl b/udkapi/com/sun/star/task/XInteractionHandler.idl
new file mode 100644
index 0000000000..4b8571419f
--- /dev/null
+++ b/udkapi/com/sun/star/task/XInteractionHandler.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module task {
+
+/** An interaction request handler.
+ */
+published interface XInteractionHandler: com::sun::star::uno::XInterface
+{
+ /** Handle an interaction request.
+ */
+ void handle( [in] com::sun::star::task::XInteractionRequest Request );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/task/XInteractionHandler2.idl b/udkapi/com/sun/star/task/XInteractionHandler2.idl
new file mode 100644
index 0000000000..4f620a3747
--- /dev/null
+++ b/udkapi/com/sun/star/task/XInteractionHandler2.idl
@@ -0,0 +1,49 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module task {
+
+
+/** An interaction request handler.
+
+ <p>This interface extends the interface XInteractionHandler
+ the way that a caller can determine whether an interaction request was
+ actually handled by the interaction handler.</p>
+
+ @since OOo 3.2
+ */
+published interface XInteractionHandler2 : com::sun::star::task::XInteractionHandler
+{
+ /** Handle an interaction request.
+
+ @param Request the interaction request to handle.
+
+ @return `TRUE`, if the handler handled the request, `FALSE` otherwise.
+ */
+ boolean handleInteractionRequest(
+ [in] com::sun::star::task::XInteractionRequest Request );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/task/XInteractionRequest.idl b/udkapi/com/sun/star/task/XInteractionRequest.idl
new file mode 100644
index 0000000000..3c40bd6e12
--- /dev/null
+++ b/udkapi/com/sun/star/task/XInteractionRequest.idl
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module task {
+
+/** The description of an interaction request.
+ */
+published interface XInteractionRequest: com::sun::star::uno::XInterface
+{
+ /** Get information about the request itself.
+
+ @returns
+ a com::sun::star::uno::Exception, wrapped as an
+ `any`.
+ */
+ any getRequest();
+
+ /** Get the set of
+ com::sun::star::task::XInteractionContinuations
+ the client supports for this request.
+ */
+ sequence<com::sun::star::task::XInteractionContinuation> getContinuations();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/task/XInteractionRetry.idl b/udkapi/com/sun/star/task/XInteractionRetry.idl
new file mode 100644
index 0000000000..09560ff304
--- /dev/null
+++ b/udkapi/com/sun/star/task/XInteractionRetry.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module task {
+
+/** An interaction continuation specifying to try to re-execute the process
+ that issued the request.
+ */
+published interface XInteractionRetry: com::sun::star::task::XInteractionContinuation
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/DeploymentException.idl b/udkapi/com/sun/star/uno/DeploymentException.idl
new file mode 100644
index 0000000000..a92c5ba35a
--- /dev/null
+++ b/udkapi/com/sun/star/uno/DeploymentException.idl
@@ -0,0 +1,36 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module uno {
+
+
+/** Exception signalling a deployment error.
+
+ @since OOo 1.1.2
+*/
+published exception DeploymentException : com::sun::star::uno::RuntimeException
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/Exception.idl b/udkapi/com/sun/star/uno/Exception.idl
new file mode 100644
index 0000000000..29a0f83b6a
--- /dev/null
+++ b/udkapi/com/sun/star/uno/Exception.idl
@@ -0,0 +1,48 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module uno {
+
+/** the base of all UNO exceptions
+
+ <p>All exceptions defined in UNO idl should derive from this exception.</p>
+ */
+published exception Exception
+{
+ /** gives a detailed description of the reason, why the exception was thrown.
+ <p>
+ The description should be as detailed as possible.
+
+ */
+ string Message;
+
+
+ /** should contain a reference to the original, which raised the exception.
+ <p>May be NULL.</p>
+ */
+ com::sun::star::uno::XInterface Context;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/NamingService.idl b/udkapi/com/sun/star/uno/NamingService.idl
new file mode 100644
index 0000000000..2e60178968
--- /dev/null
+++ b/udkapi/com/sun/star/uno/NamingService.idl
@@ -0,0 +1,35 @@
+/* -*- 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 .
+ */
+
+ module com { module sun { module star { module uno {
+
+/** a simple named object container.
+ */
+published service NamingService : com::sun::star::uno::XNamingService;
+
+
+}; }; }; };
+
+/*=============================================================================
+
+ Source Code Control System - Update
+
+=============================================================================*/
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/RuntimeException.idl b/udkapi/com/sun/star/uno/RuntimeException.idl
new file mode 100644
index 0000000000..d9b6a979f8
--- /dev/null
+++ b/udkapi/com/sun/star/uno/RuntimeException.idl
@@ -0,0 +1,40 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module uno {
+
+
+/** This exception or a subclass can occur at every interface method.
+ <p>
+ It shall signal an error, which was not covered by the interface
+ method specification. This exception (or a derived one) is thrown,
+ when for instance an interprocess bridge to the object broke down,
+ some explicitly forbidden invalid parameters were passed ( e.g. null
+ references ) or the called object has been disposed before.
+ */
+published exception RuntimeException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/SecurityException.idl b/udkapi/com/sun/star/uno/SecurityException.idl
new file mode 100644
index 0000000000..d9e5067f92
--- /dev/null
+++ b/udkapi/com/sun/star/uno/SecurityException.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module uno {
+
+
+/** Base exception for all security related exceptions.
+*/
+published exception SecurityException : com::sun::star::uno::RuntimeException
+{
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/TypeClass.idl b/udkapi/com/sun/star/uno/TypeClass.idl
new file mode 100644
index 0000000000..ebb9e62908
--- /dev/null
+++ b/udkapi/com/sun/star/uno/TypeClass.idl
@@ -0,0 +1,141 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module uno {
+
+
+/** This enum describes all type classes of UNO. Every specific type has a type
+ class specifying the general context of the reflected type.
+
+ <p>
+ Example:
+ A type reflecting the interface XInterface is of type class
+ INTERFACE and its name is "com.sun.star.uno.XInterface".
+ </p>
+*/
+published enum TypeClass
+{
+ /** reflecting the void type; denotes no type
+ */
+ VOID,
+ /** reflecting the 16-bit unicode character type
+ */
+ CHAR,
+ /** reflecting the boolean type; true and false
+ */
+ BOOLEAN,
+ /** reflecting the 8-bit ordinal type
+ */
+ BYTE,
+ /** reflecting the signed 16-bit ordinal type
+ */
+ SHORT,
+ /** reflecting the unsigned 16-bit ordinal type
+ */
+ UNSIGNED_SHORT,
+ /** reflecting the signed 32-bit ordinal type
+ */
+ LONG,
+ /** reflecting the unsigned 32-bit type
+ */
+ UNSIGNED_LONG,
+ /** reflecting the signed 64-bit ordinal type
+ */
+ HYPER,
+ /** reflecting the unsigned 64-bit ordinal type
+ */
+ UNSIGNED_HYPER,
+ /** reflecting the 32-bit floating point type
+ */
+ FLOAT,
+ /** reflecting the 64-bit floating point type
+ */
+ DOUBLE,
+ /** reflecting the string type; strings of unicode characters
+ */
+ STRING,
+ /** reflecting the meta type
+ */
+ TYPE,
+ /** reflecting the any type; anys can carry any UNO value except of any values
+ */
+ ANY,
+ /** reflecting enum types
+ */
+ ENUM,
+ /** reflecting typedefed types referencing other types
+ */
+ TYPEDEF,
+ /** reflecting compound types
+ */
+ STRUCT,
+ /** Deprecated, UNOIDL does not have a union concept.
+
+ @deprecated
+ */
+ UNION,
+ /** reflecting exception types
+ */
+ EXCEPTION,
+ /** reflecting sequence types
+ */
+ SEQUENCE,
+ /** Deprecated, UNOIDL does not have an array concept.
+
+ @deprecated
+ */
+ ARRAY,
+ /** reflecting interface types
+ */
+ INTERFACE,
+ /** reflecting services
+ */
+ SERVICE,
+ /** reflecting modules
+ */
+ MODULE,
+ /** reflecting interface methods
+ */
+ INTERFACE_METHOD,
+ /** reflecting interface attributes
+ */
+ INTERFACE_ATTRIBUTE,
+ /** reflecting the unreflectable type
+ */
+ UNKNOWN,
+ /** reflecting properties
+ */
+ PROPERTY,
+ /** reflecting constants
+ */
+ CONSTANT,
+ /** reflecting constants groups
+ */
+ CONSTANTS,
+ /** reflecting singletons
+ */
+ SINGLETON
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/Uik.idl b/udkapi/com/sun/star/uno/Uik.idl
new file mode 100644
index 0000000000..faf20af052
--- /dev/null
+++ b/udkapi/com/sun/star/uno/Uik.idl
@@ -0,0 +1,55 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module uno {
+
+/** Specifies a universal interface key (globally unique).
+
+ This struct is deprecated. Uiks are not used anymore.
+ @deprecated
+*/
+published struct Uik
+{
+ /** specifies a 4 byte data block.
+ */
+ unsigned long Data1;
+
+ /** specifies a 2 byte data block.
+ */
+ unsigned short Data2;
+
+ /** specifies a 2 byte data block.
+ */
+ unsigned short Data3;
+
+ /** specifies a 4 byte data block.
+ */
+ unsigned long Data4;
+
+ /** specifies a 4 byte data block.
+ */
+ unsigned long Data5;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/XAdapter.idl b/udkapi/com/sun/star/uno/XAdapter.idl
new file mode 100644
index 0000000000..6dfdac7f3c
--- /dev/null
+++ b/udkapi/com/sun/star/uno/XAdapter.idl
@@ -0,0 +1,59 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module uno {
+
+
+/** This is the server-side interface to a weak adapter.
+
+ <p>The implementation of XAdapter must know
+ but not hold the adapted object, because it must not
+ affect the lifetime of the adapted object.
+
+ </p>@see XWeak
+ for description of concepts.
+ */
+published interface XAdapter: com::sun::star::uno::XInterface
+{
+ /** queries the adapted object if it is alive.
+ */
+ com::sun::star::uno::XInterface queryAdapted();
+
+ /** adds a reference to the adapter.
+
+
+
+ <p>All added references are called when the adapted object dies.
+
+ </p>
+ */
+ void addReference( [in] com::sun::star::uno::XReference xRef );
+
+ /** removes a reference from the adapter.
+ */
+ void removeReference( [in] com::sun::star::uno::XReference xRef );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/XAggregation.idl b/udkapi/com/sun/star/uno/XAggregation.idl
new file mode 100644
index 0000000000..cf81178eb0
--- /dev/null
+++ b/udkapi/com/sun/star/uno/XAggregation.idl
@@ -0,0 +1,105 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module uno {
+
+/** Objects which implement this interface can become aggregates of
+ a delegator.
+
+ <p>That means if an object "A" aggregates "B", "A" can provide all
+ or some of the interfaces of "B". Whenever the method
+ XInterface::queryInterface()
+ is called on either of the objects, the call will be forwarded
+ to object "A". Object "A" now can determine whether to use the
+ interfaces of "A" or "B" or neither. Actually, any number of
+ aggregates can be used, even nested ones (aggregated objects which are
+ delegators by themselves).
+
+ <p>The following rules are to be observed:
+ <ol>
+ <li>All calls to XInterface::acquire()
+ which are made before the delegator was set (using the method
+ XAggregation::setDelegator()) must not be taken back
+ (using the method XInterface::release())
+ before the delegation is removed by calling
+ <code>xAggregation-&gt;setDelegator(NULL)</code>.
+
+ <li>The constructor of a delegator has to increment its
+ own reference count by calling its method
+ XInterface::acquire()
+ before it sets itself to any aggregate using the method
+ XAggregation::setDelegator(). After that
+ call it has to reset its own reference count without the
+ destructor getting called.
+
+ <li>The destructor of a delegator has to reset the delegator in
+ its aggregated objects by calling their method
+ XAggregation::setDelegator() with
+ NULL before it releases its reference to
+ its aggregated objects.
+ </ol>
+
+ @deprecated
+ Aggregation will no longer be supported as a high-level concept of UNO.
+ You may still have the option to implement a UNO object consisting of
+ several single objects in your specific programming language, though this
+ depends on your programming language.
+*/
+published interface XAggregation: com::sun::star::uno::XInterface
+{
+ /** sets the object to which all calls to the method
+ XInterface::queryInterface()
+ have to be forwarded.
+
+ @param pDelegator
+ specifies the object which handles the calls to
+ XInterface::queryInterface().
+ If <var>pDelegator</var> is NULL, the delegator is
+ removed and thus the object becomes its own delegator and has
+ to handle calls to the method
+ XInterface::queryInterface()
+ itself.
+
+ @see XAggregation::queryAggregation
+ */
+ void setDelegator( [in] com::sun::star::uno::XInterface pDelegator );
+
+ /** is similar to XInterface::queryInterface(),
+ but it is to be processed directly without being forwarded to the
+ delegator.
+
+ <p>This method is only called from within an implementation of
+ XInterface::queryInterface()
+ or XAggregation::queryAggregation(). This method
+ is to be called by the delegator if it does not implement the
+ interface itself. An object which got aggregated cannot depend
+ on getting its own interface when it calls the method
+ XInterface::queryInterface().
+
+ @see XAggregation::setDelegator
+ */
+ any queryAggregation( [in] type aType );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/XComponentContext.idl b/udkapi/com/sun/star/uno/XComponentContext.idl
new file mode 100644
index 0000000000..12b4b485e0
--- /dev/null
+++ b/udkapi/com/sun/star/uno/XComponentContext.idl
@@ -0,0 +1,56 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module lang {
+ published interface XMultiComponentFactory;
+}; }; }; };
+
+module com { module sun { module star { module uno {
+
+/** Component context to be passed to a component via
+ com::sun::star::lang::XSingleComponentFactory.
+ Arbitrary values (e.g. deployment values) can be retrieved from the context.
+*/
+published interface XComponentContext : XInterface
+{
+ /** Gets a value from the context.
+
+ @param Name
+ name of value
+ @return
+ value
+ */
+ any getValueByName( [in] string Name );
+
+ /** Gets the service manager instance to be used from key
+ <code>/singletons/com.sun.star.lang.theServiceManager</code>.
+ This method has been added for convenience, because the
+ service manager is used very often.
+
+ @return
+ service manager; throws DeploymentException in case service
+ manager is null
+ */
+ com::sun::star::lang::XMultiComponentFactory getServiceManager();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/XCurrentContext.idl b/udkapi/com/sun/star/uno/XCurrentContext.idl
new file mode 100644
index 0000000000..487e2da9bf
--- /dev/null
+++ b/udkapi/com/sun/star/uno/XCurrentContext.idl
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module uno {
+
+/** Task (thread) local execution context for UNO.
+ Arbitrary values can be retrieved from the context.
+ <p>
+ You have to use UNO runtime functions to obtain the current context
+ in your target language.
+ </p>
+ @attention
+ In general, do not spread the current context across different tasks.
+ Values of the current context are destined for that task only.
+*/
+published interface XCurrentContext : XInterface
+{
+ /** Gets a value from the context.
+
+ @param Name
+ name of value
+ @return
+ value
+ */
+ any getValueByName( [in] string Name );
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/XInterface.idl b/udkapi/com/sun/star/uno/XInterface.idl
new file mode 100644
index 0000000000..b34df5f346
--- /dev/null
+++ b/udkapi/com/sun/star/uno/XInterface.idl
@@ -0,0 +1,112 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module uno {
+
+/** base interface of all UNO interfaces
+
+ <p> It provides lifetime control by reference counting and the
+ possibility of querying for other
+ interfaces of the same logical object.
+
+
+ <p>
+ "Logical Object" in this case means that the
+ interfaces actually can be supported by internal (e.g. aggregated) physical objects.</p>
+
+ <p> Deriving from this interface is mandatory for all UNO interfaces.
+ <p> Each language binding (Java, C++, StarBasic, Python, ... ) may
+ provide a different mapping of this interface, please look into the language
+ dependent documentation.
+
+ <p> The UNO object does not export the state of the reference count (acquire() and
+ release() do not have return values). In general, also the UNO object itself
+ should not make any assumption on the concrete value of the reference count
+ (except on the transition from one to zero ).
+
+ */
+published interface XInterface
+{
+ /** queries for a new interface to an existing UNO object.
+ <p>
+ The queryInterface() method is the entry point to obtain other interfaces which
+ are exported by the object. The caller asks the implementation of the object,
+ if it supports the interface specified by the type argument. The call may either
+ return with an interface reference of the requested type or with a void any.
+
+ <p>
+ There are certain specifications, a queryInterface() implementation must not violate.
+ <p>
+ 1) If queryInterface on a specific object has once returned a valid interface reference
+ for a given type, it must return a valid reference for any successive queryInterface
+ calls on this object for the same type.
+ <p>
+ 2) If queryInterface on a specific object has once returned a null reference
+ for a given type, it must always return a null reference for the same type.
+ <p>
+ 3) If queryInterface on a reference A returns reference B, queryInterface on
+ B for Type A must return interface reference A or calls made on the returned
+ reference must be equivalent to calls made on reference A.
+ <p>
+ 4) If queryInterface on a reference A returns reference B, queryInterface on
+ A and B for XInterface must return the same interface reference (object identity).
+
+ <p> The reason for the strong specification is, that a Uno Runtime Environment (URE)
+ may choose to cache queryInterface() calls.
+ <p> As mentioned above, certain language bindings may map this function differently also
+ with different specifications, please visit the language dependent specification for it.
+ The current C++ binding sticks to the specification state
+ <p>
+ The rules mentioned above are basically identical to the rules of QueryInterface in MS COM.
+
+ @param aType a UNO interface type, for which an object reference shall be obtained.
+ @return an interface reference in case the requested interface is supported by the object,
+ a void any otherwise.
+ */
+ any queryInterface( [in] type aType );
+
+ /** increases the reference counter by one.
+
+ <p>When you have called acquire() on the
+ UNO object, it is often said, that you have a reference or a hard reference
+ to the object.
+
+ <p>
+ It is only allowed to invoke a method on a UNO object, when you keep
+ a hard reference to it.
+
+ <p> Every call to acquire must be followed by a corresponding call to release
+ some time later, which may eventually lead to the destruction of the object.
+ */
+ void acquire();
+
+ /** decreases the reference counter by one.
+ <p>When the reference counter reaches 0, the object gets deleted.</p>
+ <p>Calling release() on the object is often called releasing
+ or clearing the reference to an object.
+ */
+ void release();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/XNamingService.idl b/udkapi/com/sun/star/uno/XNamingService.idl
new file mode 100644
index 0000000000..d412cfafac
--- /dev/null
+++ b/udkapi/com/sun/star/uno/XNamingService.idl
@@ -0,0 +1,62 @@
+/* -*- 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 .
+ */
+
+ module com { module sun { module star { module uno {
+
+
+/** allows to insert, remove and access named objects.
+ */
+published interface XNamingService: com::sun::star::uno::XInterface
+{
+
+ /** provides a previous registered object.
+ */
+ com::sun::star::uno::XInterface getRegisteredObject( [in] string Name )
+ raises (Exception);
+
+
+ /** registers one object under the specified name.
+
+ <p>If any object is registered before, then this
+ object is revoked automatically.
+
+ </p>
+ */
+ void registerObject( [in]string Name, [in]com::sun::star::uno::XInterface Object )
+ raises (Exception);
+
+
+ /** revokes the registration of an object. <p>If the object was not
+ previously registered, then this call does nothing.
+ */
+ void revokeObject( [in]string Name )
+ raises (Exception);
+};
+
+
+
+}; }; }; };
+
+/*=============================================================================
+
+ Source Code Control System - Update
+
+=============================================================================*/
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/XReference.idl b/udkapi/com/sun/star/uno/XReference.idl
new file mode 100644
index 0000000000..2c36355c06
--- /dev/null
+++ b/udkapi/com/sun/star/uno/XReference.idl
@@ -0,0 +1,46 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module uno {
+
+/** must be implemented by anyone who holds the adapter on the client side.@see XWeak
+ for description of concepts.
+ */
+published interface XReference: com::sun::star::uno::XInterface
+{
+ /** removes all references to the adapter.
+
+
+
+ <p> This method is called when the adapted object dies.
+ The implementation of the client-side's weak reference
+ must include removal of all references to the adapter.
+ Otherwise, the adapted object will be destroyed, but the
+ adapter will be alive.</p>
+ */
+ void dispose();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/XUnloadingPreference.idl b/udkapi/com/sun/star/uno/XUnloadingPreference.idl
new file mode 100644
index 0000000000..39e118e7b7
--- /dev/null
+++ b/udkapi/com/sun/star/uno/XUnloadingPreference.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module uno {
+
+/** Backwards-compatibility remainder of a removed library unloading feature.
+
+ @deprecated Do not use.
+*/
+published interface XUnloadingPreference: com::sun::star::uno::XInterface
+{
+ boolean releaseOnNotification();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uno/XWeak.idl b/udkapi/com/sun/star/uno/XWeak.idl
new file mode 100644
index 0000000000..35c7fd3d21
--- /dev/null
+++ b/udkapi/com/sun/star/uno/XWeak.idl
@@ -0,0 +1,94 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module uno {
+
+/** the server-side interface to a weak object.
+
+
+
+ <p>This interface is proxy to the adapted object.
+ In order to make it possible to have weak references to objects,
+ the XAdapter interface must be implemented to provide
+ a weak adapter for the clients.
+
+ <h4>Concept of weak referencing:</h4>
+
+ </p>
+ <p>This module specifies the interfaces for implementing and using
+ weak references.</p>
+ <p>
+
+ </p>
+ <p>The sense of weak references is to hold a reference to an object
+ without affecting the lifetime of the object. That means that a weak
+ reference may become invalid, at any time, if the referenced object dies.
+
+ </p>
+ <p>The following interfaces describe one way to handle weak references
+ by providing a weak adapter. The weak object has to provide this
+ adapter if anyone wants to hold a weak reference. To separate their
+ lifetimes, the adapter and the original object must not share the same
+ reference counter. The weak reference is in fact only a hard reference
+ to the adapter, which knows - but does not hold - the original object.
+ That means that the implementation and synchronization of weak
+ referencing is the responsibility of the object. The following
+ interfaces are involved in the concept of weak referencing:
+
+ <dl>
+ <dt>
+ XWeak
+ </dt>
+ <dd>is the server-side interface of the referred object. This
+ referred object must support the XAdapter interface.
+
+ </dd>
+ <dt>
+ XReference
+ </dt>
+ <dd>is a client-side interface which must be implemented by
+ the holder of any weak reference. It is used for notification
+ when the adapted object dies.
+
+ </dd>
+ </dl>
+ </p>
+ */
+published interface XWeak: com::sun::star::uno::XInterface
+{
+ /** queries the weak adapter.
+
+
+
+ <p>It is important that the adapter must know, but not hold
+ the adapted object. If the adapted object dies, all references
+ to the adapter have to be notified to release the adapter.
+
+ </p>
+ */
+ com::sun::star::uno::XAdapter queryAdapter();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uri/ExternalUriReferenceTranslator.idl b/udkapi/com/sun/star/uri/ExternalUriReferenceTranslator.idl
new file mode 100644
index 0000000000..ee9b2650b7
--- /dev/null
+++ b/udkapi/com/sun/star/uri/ExternalUriReferenceTranslator.idl
@@ -0,0 +1,32 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module uri {
+
+/**
+ translates between external and internal URI references.
+
+ @since OOo 2.0
+ */
+published service ExternalUriReferenceTranslator:
+ XExternalUriReferenceTranslator;
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uri/RelativeUriExcessParentSegments.idl b/udkapi/com/sun/star/uri/RelativeUriExcessParentSegments.idl
new file mode 100644
index 0000000000..a01ab39242
--- /dev/null
+++ b/udkapi/com/sun/star/uri/RelativeUriExcessParentSegments.idl
@@ -0,0 +1,51 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module uri {
+
+/**
+ details how excess special parent segments (&ldquo;<code>..</code>&rdquo;)
+ are handled when resolving a relative URI reference to absolute form.
+
+ @see com::sun::star::uri::XUriReferenceFactory::makeAbsolute
+ for a method that uses this enumeration.
+
+ @since OOo 2.0
+ */
+published enum RelativeUriExcessParentSegments {
+ /**
+ causes excess special parent segments to be treated as an error.
+ */
+ ERROR,
+
+ /**
+ causes excess special parent segments to be retained, treating them like
+ ordinary segments.
+ */
+ RETAIN,
+
+ /**
+ causes excess special parent segments to be removed.
+ */
+ REMOVE
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uri/UriReferenceFactory.idl b/udkapi/com/sun/star/uri/UriReferenceFactory.idl
new file mode 100644
index 0000000000..9d2d4860a4
--- /dev/null
+++ b/udkapi/com/sun/star/uri/UriReferenceFactory.idl
@@ -0,0 +1,66 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module uri {
+
+published interface XUriReferenceFactory;
+
+/**
+ creates URI references.
+
+ <p>See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC&nbsp;3986</a> for a
+ description of URI references and related terms.</p>
+
+ <p>For parsing absolute URI references, this service tries to use a
+ scheme-specific parser. Such a scheme-specific parser will typically enforce
+ additional restrictions during parsing, and will typically return objects
+ that support extra, scheme-specific interfaces in addition to
+ com::sun::star::uri::XUriReference. If no such parser
+ is found, and for relative URI references, a generic parser is used, which
+ returns objects that only support
+ com::sun::star::uri::XUriReference.</p>
+
+ <p>Locating a scheme-specific parser works as follows: A scheme consists of
+ Latin capital letters
+ &ldquo;<code>A</code>&rdquo;&ndash;&ldquo;<code>Z</code>&rdquo;, Latin small
+ letters &ldquo;<code>a</code>&rdquo;&ndash;&ldquo;<code>z</code>&rdquo;,
+ digits &ldquo;<code>0</code>&rdquo;&ndash;&ldquo;<code>9</code>&rdquo;,
+ &ldquo;<code>+</code>&rdquo;, &ldquo;<code>-</code>&rdquo;, and
+ &ldquo;<code>.</code>&rdquo;. A scheme&nbsp;<var>s</var> is transformed into
+ a string&nbsp;<var>s</var>&prime; character-by-character, by translating
+ Latin capital letters to their small counterparts, translating
+ &ldquo;<code>+</code>&rdquo; to &ldquo;<code>PLUS</code>&rdquo;,
+ &ldquo;<code>-</code>&rdquo; to &ldquo;<code>HYPHEN</code>&rdquo;,
+ &ldquo;<code>.</code>&rdquo; to &ldquo;<code>DOT</code>&rdquo;, and copying
+ Latin small letters and digits unchanged. If the component context used
+ while creating this <code>UriReferenceFactory</code> instance offers a
+ service manager, and there is a service available at that service manager
+ whose name is the concatenation of
+ &ldquo;<code>com.sun.star.uri.UriSchemeParser_</code>&rdquo; and
+ <var>s</var>&prime;, then that service is used. It is an error if that
+ service does not support
+ com::sun::star::uri::XUriSchemeParser.</p>
+
+ @since OOo 2.0
+ */
+published service UriReferenceFactory: XUriReferenceFactory;
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTexpand.idl b/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTexpand.idl
new file mode 100644
index 0000000000..7ce3b6abbc
--- /dev/null
+++ b/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTexpand.idl
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module uri {
+
+published interface XUriSchemeParser;
+
+/**
+ parses textual representations of absolute &ldquo;vnd.sun.star.expand&rdquo;
+ URLs.
+
+ <p>The argument <code>scheme</code> of method
+ com::sun::star::uri::XUriSchemeParser::parse() must
+ always be equal to the `string`
+ <code>"vnd.sun.star.expand"</code>, ignoring case. The objects returned by
+ com::sun::star::uri::XUriSchemeParser::parse()
+ implement
+ com::sun::star::uri::XVndSunStarExpandUrlReference.</p>
+
+ <p>This service is not intended to be instantiated directly by client code.
+ Rather, it should be used indirectly through the
+ com::sun::star::uri::UriReferenceFactory service.</p>
+
+ @since OOo 2.3
+ */
+published service UriSchemeParser_vndDOTsunDOTstarDOTexpand: XUriSchemeParser
+{};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTscript.idl b/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTscript.idl
new file mode 100644
index 0000000000..eb431cc1e9
--- /dev/null
+++ b/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTscript.idl
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module uri {
+
+published interface XUriSchemeParser;
+
+/**
+ parses textual representations of absolute &ldquo;vnd.sun.star.script&rdquo;
+ URLs.
+
+ <p>The argument <code>scheme</code> of method
+ com::sun::star::uri::XUriSchemeParser::parse() must
+ always be equal to the `string`
+ <code>"vnd.sun.star.script"</code>, ignoring case. The objects returned by
+ com::sun::star::uri::XUriSchemeParser::parse()
+ implement
+ com::sun::star::uri::XVndSunStarScriptUrlReference.</p>
+
+ <p>This service is not intended to be instantiated directly by client code.
+ Rather, it should be used indirectly through the
+ com::sun::star::uri::UriReferenceFactory service.</p>
+
+ @since OOo 2.0
+ */
+published service UriSchemeParser_vndDOTsunDOTstarDOTscript: XUriSchemeParser
+{};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uri/VndSunStarPkgUrlReferenceFactory.idl b/udkapi/com/sun/star/uri/VndSunStarPkgUrlReferenceFactory.idl
new file mode 100644
index 0000000000..d9e3090f45
--- /dev/null
+++ b/udkapi/com/sun/star/uri/VndSunStarPkgUrlReferenceFactory.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module uri {
+
+published interface XVndSunStarPkgUrlReferenceFactory;
+
+/**
+ creates &ldquo;vnd.sun.star.pkg&rdquo; URL references.
+
+ @since OOo 2.0
+ */
+published service VndSunStarPkgUrlReferenceFactory:
+ XVndSunStarPkgUrlReferenceFactory;
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uri/XExternalUriReferenceTranslator.idl b/udkapi/com/sun/star/uri/XExternalUriReferenceTranslator.idl
new file mode 100644
index 0000000000..926b34b633
--- /dev/null
+++ b/udkapi/com/sun/star/uri/XExternalUriReferenceTranslator.idl
@@ -0,0 +1,78 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module uri {
+
+/**
+ translates between external and internal URI references.
+
+ <p>Some URI schemes leave unspecified important aspects of how to interpret
+ URIs of those schemes. For example, it is unspecified for &ldquo;file&rdquo;
+ URLs how to map the byte sequences that constitute the path segments of a
+ &ldquo;file&rdquo; URL to filenames on a given platform: The UNO environment
+ always assumes that path segments of &ldquo;file&rdquo; URLs represent
+ UTF-8&ndash;encoded strings (which have to be mapped to filenames in a
+ platform-specific way), while other applications typically assume that path
+ segments of &ldquo;file&rdquo; URLs directly represent a platform's
+ byte-sequence filenames. This interface offers methods to translate between
+ such <dfn>internal</dfn> URIs (e.g., UTF-8&ndash;encoded &ldquo;file&rdquo;
+ URLs used within the UNO environment) and <dfn>external</dfn> URIs (e.g.,
+ byte-sequence&ndash;oriented &ldquo;file&rdquo; URLs used by other
+ applications). Typically, only &ldquo;file&rdquo; URLs are affected by this
+ translation.</p>
+
+ <p>Since the translation process is based on URI schemes, relative URI
+ references (that do not include a scheme) are left unmodified by the
+ translation process.</p>
+
+ @since OOo 2.0
+ */
+published interface XExternalUriReferenceTranslator {
+ /**
+ returns the internal counterpart of an external URI reference.
+
+ @param externalUriReference
+ an external URI reference.
+
+ @returns
+ the internal counterpart of the given external URI reference. An empty
+ string is returned if the given external URI reference either is an empty
+ string or cannot be converted (for example, because it contains illegal
+ characters).
+ */
+ string translateToInternal([in] string externalUriReference);
+
+ /**
+ returns the external counterpart of an internal URI reference.
+
+ @param internalUriReference
+ an internal URI reference.
+
+ @returns
+ the external counterpart of the given internal URI reference. An empty
+ string is returned if the given internal URI reference either is an empty
+ string or cannot be converted (for example, because it contains illegal
+ characters).
+ */
+ string translateToExternal([in] string internalUriReference);
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uri/XUriReference.idl b/udkapi/com/sun/star/uri/XUriReference.idl
new file mode 100644
index 0000000000..c2b971935f
--- /dev/null
+++ b/udkapi/com/sun/star/uri/XUriReference.idl
@@ -0,0 +1,220 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module uri {
+
+/**
+ represents generic, mutable URI references.
+
+ <p>See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC&nbsp;3986</a> for a
+ description of URI references and related terms.</p>
+
+ <p>This interface only handles generic URI references (both absolute and
+ relative). For specific URI schemes, there will be additional interfaces
+ that offer extra, scheme-specific functionality.</p>
+
+ @see com::sun::star::uri::UriReferenceFactory
+ which allows to create URI reference objects that support
+ com::sun::star::uri::XUriReference and additional,
+ scheme-specific interfaces.
+
+ @since OOo 2.0
+ */
+published interface XUriReference: com::sun::star::uno::XInterface {
+ /**
+ returns the textual representation of the complete URI reference.
+
+ @returns
+ the textual representation of the complete URI reference. The exact
+ spelling of the URI reference is retained.
+ */
+ string getUriReference();
+
+ /**
+ returns whether this URI reference is absolute or relative.
+
+ <p>A URI is absolute if it has a scheme.</p>
+
+ @returns
+ `TRUE` if this URI reference is absolute, `FALSE` if it is relative.
+ */
+ boolean isAbsolute();
+
+ /**
+ returns the scheme part of this (absolute) URI reference.
+
+ @returns
+ the textual representation of the scheme part (with the exact spelling
+ retained; without the delimiting &ldquo;<code>:</code>&rdquo;), if this
+ is an absolute URI reference; otherwise, an empty `string` is
+ returned.
+ */
+ string getScheme();
+
+ /**
+ returns the scheme-specific part of this URI reference.
+
+ <p>For an absolute URI reference, the scheme-specific part is everything
+ after the scheme part and the delimiting &ldquo;<code>:</code>&rdquo;,
+ and before the optional &ldquo;<code>#</code>&rdquo; and fragment part.
+ For a relative URI reference, the scheme-specific part is everything
+ before the optional &ldquo;<code>#</code>&rdquo; and fragment part.</p>
+
+ @returns
+ the textual representation of the scheme-specific part (with the exact
+ spelling retained).
+ */
+ string getSchemeSpecificPart();
+
+ /**
+ returns whether this URI reference is hierarchical or opaque, in the sense of RFC&nbsp2396.
+
+ <p>An absolute URI reference is hierarchical if its scheme-specific part
+ starts with &ldquo;<code>/</code>&rdquo;. A relative URI reference is
+ always hierarchical.</p>
+
+ @returns
+ `TRUE` if this URI reference is hierarchical, `FALSE` if it is opaque.
+
+ @deprecated RFC&nbsp;3986 no longer differentiates between hierarchical and opaque URIs.
+ */
+ boolean isHierarchical();
+
+ /**
+ returns whether this URI reference has an authority part.
+
+ @returns
+ `TRUE` if this URI reference has an authority part.
+ */
+ boolean hasAuthority();
+
+ /**
+ returns the authority part of this URI reference.
+
+ @returns
+ the textual representation of the authority part (with the exact spelling
+ retained), if this is a URI reference that has an authority
+ part; otherwise, an empty `string` is returned.
+ */
+ string getAuthority();
+
+ /**
+ returns the path part of this URI reference.
+
+ @returns
+ the textual representation of the path part (with the exact spelling
+ retained).
+ */
+ string getPath();
+
+ /**
+ returns whether this URI reference has a relative path.
+
+ @returns
+ `TRUE` if this URI reference has a relative path.
+ */
+ boolean hasRelativePath();
+
+ /**
+ returns the number of path segments of this URI reference.
+
+ <p>For a URI reference with
+ an empty path, the number of path segments is zero. For a
+ URI reference with an absolute, non-empty path, the number of path
+ segments equals the number of &ldquo;<code>/</code>&rdquo; delimiters.
+ For a URI reference with a relative, non-empty path, the
+ number of path segments equals the number of &ldquo;<code>/</code>&rdquo;
+ delimiters, plus one.</p>
+
+ @returns
+ the number of path segments.
+ */
+ long getPathSegmentCount();
+
+ /**
+ returns a given path segment of this URI reference.
+
+ @param index
+ the index of the path segment, starting at zero.
+
+ @returns
+ the textual representation of the given path segment (with the exact
+ spelling retained, without any delimiting &ldquo;<code>/</code>&rdquo;),
+ if this URI reference has that many path segments;
+ otherwise, and in particular if <code>index</code> is negative, an empty
+ `string` is returned.
+ */
+ string getPathSegment([in] long index);
+
+ /**
+ returns whether this URI reference has a query part.
+
+ @returns
+ `TRUE` if this URI reference has a query part.
+ */
+ boolean hasQuery();
+
+ /**
+ returns the query part of this URI reference.
+
+ @returns
+ the textual representation of the query part (with the exact spelling
+ retained; without the delimiting &ldquo;<code>?</code>&rdquo;), if this
+ is a URI reference that has a query part; otherwise, an
+ empty `string` is returned.
+ */
+ string getQuery();
+
+ /**
+ returns whether this URI reference has a fragment part.
+
+ @returns
+ `TRUE` if this URI reference has a fragment part.
+ */
+ boolean hasFragment();
+
+ /**
+ returns the fragment part of this URI reference.
+
+ @returns
+ the textual representation of the fragment part (with the exact spelling
+ retained; without the delimiting &ldquo;<code>#</code>&rdquo;), if this
+ is a URI reference that has a fragment part; otherwise, an empty
+ `string` is returned.
+ */
+ string getFragment();
+
+ /**
+ sets the fragment part of this URI reference.
+
+ @param fragment
+ the textual representation of the new fragment part. The exact spelling
+ will be preserved, and no escaping is performed.
+ */
+ void setFragment([in] string fragment);
+
+ /**
+ clears the fragment part of this URI reference.
+ */
+ void clearFragment();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uri/XUriReferenceFactory.idl b/udkapi/com/sun/star/uri/XUriReferenceFactory.idl
new file mode 100644
index 0000000000..b6ad81cd92
--- /dev/null
+++ b/udkapi/com/sun/star/uri/XUriReferenceFactory.idl
@@ -0,0 +1,151 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module uri {
+
+/**
+ creates URI references.
+
+ <p>See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC&nbsp;3986</a> for a
+ description of URI references and related terms.</p>
+
+ @since OOo 2.0
+ */
+published interface XUriReferenceFactory: com::sun::star::uno::XInterface {
+ /**
+ parses the textual representation of a URI reference.
+
+ @param uriReference
+ the textual representation of a URI reference.
+
+ @returns
+ an object that supports
+ com::sun::star::uri::XUriReference (and possibly also
+ additional, scheme-specific interfaces), if the given input can be parsed
+ into a URI reference; otherwise, `NULL` is returned.
+ */
+ XUriReference parse([in] string uriReference);
+
+ /**
+ resolves a relative URI reference to absolute form.
+
+ @param baseUriReference
+ the base URI reference. If the given <code>uriReference</code> is a
+ same-document reference, <code>baseUriReference</code> is used as a
+ reference to the current document.
+
+ @param uriReference
+ any URI reference. Backwards-compatible relative URI references starting
+ with a scheme component (see RFC&nbsp;3986, Sections 5.2.2 and&nbsp;5.4,2)
+ are not supported; instead, they are interpreted as absolute
+ URI references.
+
+ @param processAdditionalSpecialSegments
+ if `TRUE`, special segments (&ldquo;<code>.</code>&rdquo; and
+ &ldquo;<code>..</code>&rdquo;) within the path of the base URI (except
+ for the last, cut-off segment), and within an already absolute <code>uriReference</code>, are
+ processed as required by
+ RFC&nbsp;3986. If `FALSE`, such special segments
+ are treated like ordinary segments.
+ Conformance with RFC&nbsp;3986 requires `TRUE` to be passed.
+
+ @param excessParentSegments
+ details how excess special parent segments
+ (&ldquo;<code>..</code>&rdquo;) are handled.
+ Conformance with RFC&nbsp;3986 requires REMOVE to be passed.
+
+ @returns
+ a fresh object that supports
+ com::sun::star::uri::XUriReference (and possibly also
+ additional, scheme-specific interfaces), if the given
+ <code>uriReference</code> can be resolved
+ to an absolute URI reference, relative to the given
+ <code>baseUriReference</code>; otherwise, `NULL` is returned.
+ Especially, if <code>baseUriReference</code> is `NULL`, or is not an
+ absolute URI reference, or if <code>uriReference</code> is
+ `NULL`, then `NULL` is always returned.
+ */
+ XUriReference makeAbsolute(
+ [in] XUriReference baseUriReference, [in] XUriReference uriReference,
+ [in] boolean processAdditionalSpecialSegments,
+ [in] RelativeUriExcessParentSegments excessParentSegments);
+
+ /**
+ changes an absolute URI reference to relative form.
+
+ @param baseUriReference
+ the base URI reference.
+
+ @param uriReference
+ any URI reference.
+
+ @param preferAuthorityOverRelativePath
+ controls how a relative URI reference is generated when both
+ <code>baseUriReference</code> (e.g.,
+ &ldquo;<code>scheme://auth/a/b</code>&rdquo;) and
+ <code>uriReference</code> (e.g.,
+ &ldquo;<code>scheme://auth//c/d</code>&rdquo;) have the same scheme and
+ authority components, and the path component of <code>uriReference</code>
+ starts with &ldquo;<code>//</code>&rdquo;. If `TRUE`, the generated
+ relative URI reference includes an authority component (e.g.,
+ &ldquo;<code>//auth//c/d</code>&rdquo;); if `FALSE`, the generated
+ relative URI reference has a relative path (e.g.,
+ &ldquo;<code>..//c/d</code>&rdquo;).
+
+ @param preferAbsoluteOverRelativePath
+ controls how a relative URI reference is generated when both
+ <code>baseUriReference</code> (e.g.,
+ &ldquo;<code>scheme://auth/a/b</code>&rdquo;) and
+ <code>uriReference</code> (e.g.,
+ &ldquo;<code>scheme://auth/c/d</code>&rdquo;) have the same scheme and
+ authority components (if present), but share no common path segments. If
+ `TRUE`, the generated relative URI reference has an absolute path (e.g.,
+ &ldquo;<code>/c/d</code>&rdquo;); if `FALSE`, the generated relative URI
+ reference has a relative path (e.g., &ldquo;<code>../c/d</code>&rdquo;).
+
+ @param encodeRetainedSpecialSegments
+ if `TRUE`, special segments (&ldquo;<code>.</code>&rdquo; and
+ &ldquo;<code>..</code>&rdquo;) that are already present in the path
+ component of the given <code>uriReference</code> and which end up in a
+ relative path returned from this method, are encoded (as
+ &ldquo;<code>%2E</code>&rdquo; and &ldquo;<code>%2E%2E</code>&rdquo;,
+ respectively).
+
+ @returns
+ a fresh object that supports
+ com::sun::star::uri::XUriReference, if the given
+ <code>uriReference</code> is either already relative, or has a relative
+ path, or is of a different scheme than the given
+ <code>baseUriReference</code>, or can be changed to a relative URI
+ reference, relative to the given <code>baseUriReference</code>;
+ otherwise, `NULL` is returned. Especially, if
+ <code>baseUriReference</code> is `NULL`, or is not an absolute
+ URI reference, or if <code>uriReference</code> is `NULL`,
+ then `NULL` is always returned.
+ */
+ XUriReference makeRelative(
+ [in] XUriReference baseUriReference, [in] XUriReference uriReference,
+ [in] boolean preferAuthorityOverRelativePath,
+ [in] boolean preferAbsoluteOverRelativePath,
+ [in] boolean encodeRetainedSpecialSegments);
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uri/XUriSchemeParser.idl b/udkapi/com/sun/star/uri/XUriSchemeParser.idl
new file mode 100644
index 0000000000..0d35a1dce4
--- /dev/null
+++ b/udkapi/com/sun/star/uri/XUriSchemeParser.idl
@@ -0,0 +1,61 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module uri {
+
+/**
+ parses textual representations of absolute URIs.
+
+ <p>See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC&nbsp;3986</a> for a
+ description of URIs and related terms.</p>
+
+ @since OOo 2.0
+ */
+published interface XUriSchemeParser: com::sun::star::uno::XInterface {
+ /**
+ parses the textual representation of an absolute URI.
+
+ <p>This method is used to parse URIs (with no fragment part), not URI
+ references (with an optional fragment part).</p>
+
+ <p>If an object is returned, the behaviour of its
+ com::sun::star::uri::XUriReference methods must
+ reflect the fact that the object represents an absolute URI reference
+ with the given scheme and scheme-specific part, and without a fragment
+ part.</p>
+
+ @param scheme
+ the textual representation of the scheme part (without the delimiting
+ &ldquo;<code>:</code>&rdquo;).
+
+ @param schemeSpecificPart
+ the textual representation of the scheme-specific part.
+
+ @returns
+ an object that supports
+ com::sun::star::uri::XUriReference (and possibly also
+ additional, scheme-specific interfaces), if the given input can be parsed
+ into an absolute URI; otherwise, `NULL` is returned.
+ */
+ XUriReference parse([in] string scheme, [in] string schemeSpecificPart);
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uri/XVndSunStarExpandUrl.idl b/udkapi/com/sun/star/uri/XVndSunStarExpandUrl.idl
new file mode 100644
index 0000000000..18fbb89f44
--- /dev/null
+++ b/udkapi/com/sun/star/uri/XVndSunStarExpandUrl.idl
@@ -0,0 +1,61 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module util {
+ published interface XMacroExpander;
+}; }; }; };
+
+module com { module sun { module star { module uri {
+
+/**
+ represents absolute &ldquo;vnd.sun.star.expand&rdquo; URLs.
+
+ <p>These URLs are of the form<br/>
+ &nbsp;&nbsp;&nbsp;<var>vnd-sun-star-expand-url</var> =
+ <code>"VND.SUN.STAR.EXPAND:"</code> <var>opaque_part</var><br/>
+ where the <var>opaque_part</var> is a UTF-8 string as described in
+ <a href="http://udk.openoffice.org/common/man/concept/micro_deployment.html">
+ Bootstrap Arguments and Micro Deployment</a>. See
+ <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC&nbsp;3986</a>
+ <a href="http://www.ietf.org/rfc/rfc2234.txt">RFC&nbsp;2234</a> for
+ details.</p>
+
+ @since OOo 2.3
+ */
+published interface XVndSunStarExpandUrl {
+ /**
+ returns the expanded content of this URL.
+
+ @param expander
+ a macro expander; must not be `NULL`.
+
+ @returns
+ the expanded content of this URL.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if calling com::sun::star::util::XMacroExpander::expandMacros() on
+ <code>expander</code> raises any such exception.
+ */
+ string expand([in] com::sun::star::util::XMacroExpander expander)
+ raises (com::sun::star::lang::IllegalArgumentException);
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uri/XVndSunStarExpandUrlReference.idl b/udkapi/com/sun/star/uri/XVndSunStarExpandUrlReference.idl
new file mode 100644
index 0000000000..bba3302d21
--- /dev/null
+++ b/udkapi/com/sun/star/uri/XVndSunStarExpandUrlReference.idl
@@ -0,0 +1,45 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module uri {
+
+/**
+ represents absolute &ldquo;vnd.sun.star.expand&rdquo; URL references.
+
+ @since OOo 2.3
+ */
+published interface XVndSunStarExpandUrlReference {
+ /**
+ represents the generic features of the URL reference.
+
+ <p>The behaviour of the methods of this interface will always reflect the
+ fact that the represented URI reference is an absolute
+ &ldquo;vnd.sun.star.expand&rdquo; URL reference.</p>
+ */
+ interface XUriReference;
+
+ /**
+ represents the scheme-specific features of the URL reference.
+ */
+ interface XVndSunStarExpandUrl;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uri/XVndSunStarPkgUrlReferenceFactory.idl b/udkapi/com/sun/star/uri/XVndSunStarPkgUrlReferenceFactory.idl
new file mode 100644
index 0000000000..877e6775e2
--- /dev/null
+++ b/udkapi/com/sun/star/uri/XVndSunStarPkgUrlReferenceFactory.idl
@@ -0,0 +1,48 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module uri {
+
+published interface XUriReference;
+
+/**
+ creates &ldquo;vnd.sun.star.pkg&rdquo; URL references.
+
+ @since OOo 2.0
+ */
+published interface XVndSunStarPkgUrlReferenceFactory {
+ /**
+ creates a new &ldquo;vnd.sun.star.pkg&rdquo; URL reference.
+
+ <p>The returned URL reference has the given authority, an empty path, and
+ no fragment.</p>
+
+ @param authority the authority of the created URL reference; must not be
+ `NULL`, and should be an absolute URI reference with no fragment
+
+ @return a new &ldquo;vnd.sun.star.pkg&rdquo; URL reference, or `NULL` if
+ the given authority is either not an absolute URI reference or has a
+ fragment
+ */
+ XUriReference createVndSunStarPkgUrlReference([in] XUriReference authority);
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uri/XVndSunStarScriptUrl.idl b/udkapi/com/sun/star/uri/XVndSunStarScriptUrl.idl
new file mode 100644
index 0000000000..4647bf1847
--- /dev/null
+++ b/udkapi/com/sun/star/uri/XVndSunStarScriptUrl.idl
@@ -0,0 +1,122 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module uri {
+
+/**
+ represents absolute &ldquo;vnd.sun.star.script&rdquo; URLs.
+
+ <p>These URLs are of the form<br/>
+ &nbsp;&nbsp;&nbsp;<var>vnd-sun-star-script-url</var> =
+ <code>"VND.SUN.STAR.SCRIPT:"</code> <var>name</var> [<code>"?"</code>
+ <var>parameter</var> *(<code>"&"</code> <var>parameter</var>)]<br/>
+ &nbsp;&nbsp;&nbsp;<var>name</var> = 1*<var>schar</var><br/>
+ &nbsp;&nbsp;&nbsp;<var>parameter</var> = <var>key</var> <code>"="</code>
+ <var>value</var><br/>
+ &nbsp;&nbsp;&nbsp;<var>key</var> = 1*<var>schar</var><br/>
+ &nbsp;&nbsp;&nbsp;<var>value</var> = *<var>schar</var><br/>
+ &nbsp;&nbsp;&nbsp;<var>schar</var> = <var>unreserved</var> / <var>escaped</var> /
+ <code>"$"</code> / <code>"+"</code> / <code>","</code> / <code>":"</code> /
+ <code>";"</code> / <code>"@"</code> / <code>"["</code> /
+ <code>"]"</code><br/>
+ See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC&nbsp;3986</a>
+ <a href="http://www.ietf.org/rfc/rfc2234.txt">RFC&nbsp;2234</a> for
+ details.</p>
+
+ <p>The names, keys, and values are arbitrary Unicode strings (non-empty
+ Unicode strings in the case of names and keys), encoded as UTF-8 byte
+ sequences. It is an error if any of them does not represent a valid UTF-8
+ byte sequence. Keys are compared for equality character-by-character,
+ without considering case folding or normalization. There may be multiple
+ parameters with equal keys.</p>
+
+ @since OOo 2.0
+ */
+published interface XVndSunStarScriptUrl: com::sun::star::uno::XInterface {
+ /**
+ returns the name part of this URL.
+
+ @returns
+ the non-escaped value of the name part.
+ */
+ string getName();
+
+ /**
+ sets the name part of this URL.
+
+ @param name
+ specifies the non-escaped new name part of the URL.
+
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if name is empty
+
+ @since OOo 3.0
+ */
+ void setName([in] string name)
+ raises ( ::com::sun::star::lang::IllegalArgumentException );
+
+ /**
+ returns whether this URL has a parameter with a given key.
+
+ @param key
+ a non-escaped key.
+
+ @returns
+ `TRUE` if this URL has at least one parameter with the given key. In
+ particular, if <code>key</code> is an empty `string`, `FALSE`
+ is returned.
+ */
+ boolean hasParameter([in] string key);
+
+ /**
+ returns the value of a parameter with a given key.
+
+ @param key
+ a non-escaped key.
+
+ @returns
+ the non-escaped value of the first parameter with the given key. If
+ there is no parameter with the given key, or if <code>key</code> is an
+ empty `string`, an empty `string` is returned.
+ */
+ string getParameter([in] string key);
+
+ /**
+ sets the value of a parameter with a given key.
+
+ @param key
+ a non-escaped key
+
+ @param value
+ the non-escaped value to be set for the parameter. If there already is a
+ parameter with this key, the value of its first appearance will be replaced.
+ Otherwise, a parameter with the given key/value will be appended.
+
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if key is empty
+
+ @since OOo 3.0
+ */
+ void setParameter( [in] string key, [in] string value )
+ raises ( ::com::sun::star::lang::IllegalArgumentException );
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/uri/XVndSunStarScriptUrlReference.idl b/udkapi/com/sun/star/uri/XVndSunStarScriptUrlReference.idl
new file mode 100644
index 0000000000..3ad553935e
--- /dev/null
+++ b/udkapi/com/sun/star/uri/XVndSunStarScriptUrlReference.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module uri {
+
+/**
+ represents absolute &ldquo;vnd.sun.star.script&rdquo; URL references.
+ */
+published interface XVndSunStarScriptUrlReference {
+ /**
+ represents the generic features of the URL reference.
+
+ <p>The behaviour of the methods of this interface will always reflect the
+ fact that the represented URI reference is an absolute
+ &ldquo;vnd.sun.star.script&rdquo; URL reference.</p>
+ */
+ interface XUriReference;
+
+ /**
+ represents the scheme-specific features of the URL reference.
+ */
+ interface XVndSunStarScriptUrl;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/util/BootstrapMacroExpander.idl b/udkapi/com/sun/star/util/BootstrapMacroExpander.idl
new file mode 100644
index 0000000000..975c942859
--- /dev/null
+++ b/udkapi/com/sun/star/util/BootstrapMacroExpander.idl
@@ -0,0 +1,46 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module util {
+
+
+/** Macro expander expanding using rtl bootstrap notation.
+
+ For details, have a look at
+ http://udk.openoffice.org/common/man/concept/micro_deployment.html#misc
+
+ The service can be instantiated via arguments giving an ini/rc file url.
+ Otherwise it will read from a uno.ini/unorc file next to the cppuhelper
+ library.
+
+ @see theMacroExpander
+
+ @since OOo 1.1.2
+*/
+published service BootstrapMacroExpander
+{
+ service MacroExpander;
+ [optional] interface com::sun::star::lang::XInitialization;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/util/MacroExpander.idl b/udkapi/com/sun/star/util/MacroExpander.idl
new file mode 100644
index 0000000000..9aaed94f9f
--- /dev/null
+++ b/udkapi/com/sun/star/util/MacroExpander.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module util {
+
+
+/** This meta service supports the XMacroExpander interface for expanding
+ arbitrary macro expressions, i.e. substitute macro names.
+ The purpose of this service is to separate the use of macrofied strings,
+ e.g. urls from the use of services.
+
+ @see BootstrapMacroExpander
+ @see theMacroExpander
+
+ @since OOo 1.1.2
+ @deprecated rather use the util::theMacroExpander singleton
+*/
+published service MacroExpander
+{
+ interface XMacroExpander;
+ [optional] interface com::sun::star::lang::XComponent;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/util/XMacroExpander.idl b/udkapi/com/sun/star/util/XMacroExpander.idl
new file mode 100644
index 0000000000..33cdce1cdb
--- /dev/null
+++ b/udkapi/com/sun/star/util/XMacroExpander.idl
@@ -0,0 +1,47 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module util {
+
+
+/** Expands macro in expressions, i.e. substitutes macro names.
+
+ @since OOo 1.1.2
+*/
+published interface XMacroExpander : com::sun::star::uno::XInterface
+{
+ /** Expands macrofied expressions.
+
+ @param exp
+ macrofied expression
+ @return
+ demacrofied expression
+ @throws IllegalArgumentException
+ if a macro name is unknown, thus cannot be expanded
+ */
+ string expandMacros( [in] string exp )
+ raises (com::sun::star::lang::IllegalArgumentException);
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/util/XVeto.idl b/udkapi/com/sun/star/util/XVeto.idl
new file mode 100644
index 0000000000..12ee777599
--- /dev/null
+++ b/udkapi/com/sun/star/util/XVeto.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module util {
+
+
+/** provides information about a veto which has been raised against an operation
+ */
+interface XVeto
+{
+ /** describes the reason for the veto
+ */
+ [attribute, readonly] string Reason;
+
+ /** provides additional details about the veto.
+
+ <p>The concrete semantics of this attribute is to be defined
+ in the service implementing this interface.</p>
+ */
+ [attribute, readonly] any Details;
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/util/theMacroExpander.idl b/udkapi/com/sun/star/util/theMacroExpander.idl
new file mode 100644
index 0000000000..077b95d568
--- /dev/null
+++ b/udkapi/com/sun/star/util/theMacroExpander.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module util {
+
+/** A service that has to deal with macrofied strings will preprocess those
+ strings using the macro expander singleton.
+ The macro expander singleton is deployed with the application.
+
+ This feature is currently used macrofying loader urls with macros defined
+ in uno.ini/unorc bootstrap files. The component loader uses the macro
+ expander singleton to expand those macros. This is a flexible way
+ preprocessing loader urls.
+
+ @see MacroExpander
+*/
+published singleton theMacroExpander : XMacroExpander;
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */