From 267c6f2ac71f92999e969232431ba04678e7437e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 07:54:39 +0200 Subject: Adding upstream version 4:24.2.0. Signed-off-by: Daniel Baumann --- udkapi/com/sun/star/beans/Ambiguous.idl | 48 +++ udkapi/com/sun/star/beans/Defaulted.idl | 48 +++ .../star/beans/GetDirectPropertyTolerantResult.idl | 44 +++ .../sun/star/beans/GetPropertyTolerantResult.idl | 59 +++ udkapi/com/sun/star/beans/IllegalTypeException.idl | 38 ++ udkapi/com/sun/star/beans/Introspection.idl | 33 ++ .../com/sun/star/beans/IntrospectionException.idl | 37 ++ udkapi/com/sun/star/beans/MethodConcept.idl | 106 ++++++ udkapi/com/sun/star/beans/NamedValue.idl | 40 ++ .../com/sun/star/beans/NotRemoveableException.idl | 34 ++ udkapi/com/sun/star/beans/Optional.idl | 49 +++ udkapi/com/sun/star/beans/Pair.idl | 43 +++ udkapi/com/sun/star/beans/Property.idl | 71 ++++ udkapi/com/sun/star/beans/PropertyAttribute.idl | 98 +++++ udkapi/com/sun/star/beans/PropertyBag.idl | 42 +++ udkapi/com/sun/star/beans/PropertyChangeEvent.idl | 72 ++++ udkapi/com/sun/star/beans/PropertyConcept.idl | 75 ++++ .../com/sun/star/beans/PropertyExistException.idl | 37 ++ udkapi/com/sun/star/beans/PropertySet.idl | 43 +++ .../com/sun/star/beans/PropertySetInfoChange.idl | 46 +++ .../sun/star/beans/PropertySetInfoChangeEvent.idl | 56 +++ udkapi/com/sun/star/beans/PropertyState.idl | 81 +++++ .../sun/star/beans/PropertyStateChangeEvent.idl | 70 ++++ udkapi/com/sun/star/beans/PropertyValue.idl | 61 ++++ udkapi/com/sun/star/beans/PropertyValues.idl | 32 ++ .../com/sun/star/beans/PropertyVetoException.idl | 37 ++ .../sun/star/beans/SetPropertyTolerantFailed.idl | 52 +++ udkapi/com/sun/star/beans/StringPair.idl | 41 +++ .../star/beans/TolerantPropertySetResultType.idl | 77 ++++ .../sun/star/beans/UnknownPropertyException.idl | 37 ++ udkapi/com/sun/star/beans/XExactName.idl | 55 +++ udkapi/com/sun/star/beans/XFastPropertySet.idl | 91 +++++ .../sun/star/beans/XHierarchicalPropertySet.idl | 134 +++++++ .../star/beans/XHierarchicalPropertySetInfo.idl | 73 ++++ udkapi/com/sun/star/beans/XIntrospection.idl | 95 +++++ udkapi/com/sun/star/beans/XIntrospectionAccess.idl | 260 +++++++++++++ udkapi/com/sun/star/beans/XMaterialHolder.idl | 49 +++ .../star/beans/XMultiHierarchicalPropertySet.idl | 124 +++++++ udkapi/com/sun/star/beans/XMultiPropertySet.idl | 138 +++++++ udkapi/com/sun/star/beans/XMultiPropertyStates.idl | 103 ++++++ .../sun/star/beans/XPropertiesChangeListener.idl | 44 +++ .../sun/star/beans/XPropertiesChangeNotifier.idl | 48 +++ udkapi/com/sun/star/beans/XProperty.idl | 47 +++ udkapi/com/sun/star/beans/XPropertyAccess.idl | 61 ++++ udkapi/com/sun/star/beans/XPropertyBag.idl | 41 +++ .../com/sun/star/beans/XPropertyChangeListener.idl | 40 ++ udkapi/com/sun/star/beans/XPropertyContainer.idl | 75 ++++ udkapi/com/sun/star/beans/XPropertySet.idl | 165 +++++++++ udkapi/com/sun/star/beans/XPropertySetInfo.idl | 74 ++++ .../star/beans/XPropertySetInfoChangeListener.idl | 41 +++ .../star/beans/XPropertySetInfoChangeNotifier.idl | 53 +++ udkapi/com/sun/star/beans/XPropertySetOption.idl | 24 ++ udkapi/com/sun/star/beans/XPropertyState.idl | 114 ++++++ .../star/beans/XPropertyStateChangeListener.idl | 43 +++ udkapi/com/sun/star/beans/XPropertyWithState.idl | 89 +++++ .../sun/star/beans/XTolerantMultiPropertySet.idl | 127 +++++++ .../com/sun/star/beans/XVetoableChangeListener.idl | 44 +++ udkapi/com/sun/star/beans/theIntrospection.idl | 29 ++ udkapi/com/sun/star/bridge/Bridge.idl | 70 ++++ .../com/sun/star/bridge/BridgeExistsException.idl | 32 ++ udkapi/com/sun/star/bridge/BridgeFactory.idl | 37 ++ udkapi/com/sun/star/bridge/IiopBridge.idl | 56 +++ .../star/bridge/InvalidProtocolChangeException.idl | 42 +++ udkapi/com/sun/star/bridge/ModelDependent.idl | 42 +++ .../sun/star/bridge/OleApplicationRegistration.idl | 57 +++ udkapi/com/sun/star/bridge/OleBridgeSupplier.idl | 43 +++ udkapi/com/sun/star/bridge/OleBridgeSupplier2.idl | 58 +++ .../com/sun/star/bridge/OleBridgeSupplierVar1.idl | 43 +++ udkapi/com/sun/star/bridge/OleObjectFactory.idl | 47 +++ udkapi/com/sun/star/bridge/ProtocolProperty.idl | 33 ++ udkapi/com/sun/star/bridge/UnoUrlResolver.idl | 35 ++ udkapi/com/sun/star/bridge/UrpBridge.idl | 56 +++ udkapi/com/sun/star/bridge/XBridge.idl | 52 +++ udkapi/com/sun/star/bridge/XBridgeFactory.idl | 78 ++++ udkapi/com/sun/star/bridge/XBridgeFactory2.idl | 43 +++ udkapi/com/sun/star/bridge/XBridgeSupplier.idl | 77 ++++ udkapi/com/sun/star/bridge/XBridgeSupplier2.idl | 94 +++++ udkapi/com/sun/star/bridge/XInstanceProvider.idl | 52 +++ udkapi/com/sun/star/bridge/XProtocolProperties.idl | 89 +++++ udkapi/com/sun/star/bridge/XUnoUrlResolver.idl | 45 +++ .../oleautomation/ApplicationRegistration.idl | 61 ++++ .../star/bridge/oleautomation/BridgeSupplier.idl | 63 ++++ .../com/sun/star/bridge/oleautomation/Currency.idl | 51 +++ udkapi/com/sun/star/bridge/oleautomation/Date.idl | 50 +++ .../com/sun/star/bridge/oleautomation/Decimal.idl | 54 +++ .../com/sun/star/bridge/oleautomation/Factory.idl | 49 +++ .../star/bridge/oleautomation/NamedArgument.idl | 53 +++ .../bridge/oleautomation/PropertyPutArgument.idl | 60 +++ udkapi/com/sun/star/bridge/oleautomation/SCode.idl | 52 +++ .../bridge/oleautomation/XAutomationObject.idl | 44 +++ udkapi/com/sun/star/connection/Acceptor.idl | 38 ++ .../star/connection/AlreadyAcceptingException.idl | 31 ++ .../star/connection/ConnectionSetupException.idl | 31 ++ udkapi/com/sun/star/connection/Connector.idl | 37 ++ .../com/sun/star/connection/NoConnectException.idl | 31 ++ .../com/sun/star/connection/SocketPermission.idl | 91 +++++ udkapi/com/sun/star/connection/XAcceptor.idl | 67 ++++ udkapi/com/sun/star/connection/XConnection.idl | 86 +++++ udkapi/com/sun/star/connection/XConnection2.idl | 48 +++ .../sun/star/connection/XConnectionBroadcaster.idl | 51 +++ udkapi/com/sun/star/connection/XConnector.idl | 55 +++ udkapi/com/sun/star/container/ContainerEvent.idl | 53 +++ .../sun/star/container/ElementExistException.idl | 41 +++ udkapi/com/sun/star/container/EnumerableMap.idl | 122 +++++++ .../sun/star/container/NoSuchElementException.idl | 37 ++ udkapi/com/sun/star/container/XChild.idl | 51 +++ .../sun/star/container/XComponentEnumeration.idl | 44 +++ .../star/container/XComponentEnumerationAccess.idl | 40 ++ udkapi/com/sun/star/container/XContainer.idl | 70 ++++ .../container/XContainerApproveBroadcaster.idl | 46 +++ .../star/container/XContainerApproveListener.idl | 62 ++++ .../com/sun/star/container/XContainerListener.idl | 49 +++ udkapi/com/sun/star/container/XContainerQuery.idl | 87 +++++ .../star/container/XContentEnumerationAccess.idl | 58 +++ udkapi/com/sun/star/container/XElementAccess.idl | 49 +++ udkapi/com/sun/star/container/XEnumerableMap.idl | 91 +++++ udkapi/com/sun/star/container/XEnumeration.idl | 74 ++++ .../com/sun/star/container/XEnumerationAccess.idl | 41 +++ .../com/sun/star/container/XHierarchicalName.idl | 55 +++ .../sun/star/container/XHierarchicalNameAccess.idl | 67 ++++ .../star/container/XHierarchicalNameContainer.idl | 51 +++ .../star/container/XHierarchicalNameReplace.idl | 44 +++ .../com/sun/star/container/XIdentifierAccess.idl | 59 +++ .../sun/star/container/XIdentifierContainer.idl | 76 ++++ .../com/sun/star/container/XIdentifierReplace.idl | 60 +++ .../com/sun/star/container/XImplicitIDAccess.idl | 41 +++ .../sun/star/container/XImplicitIDContainer.idl | 47 +++ .../com/sun/star/container/XImplicitIDReplace.idl | 39 ++ udkapi/com/sun/star/container/XIndexAccess.idl | 62 ++++ udkapi/com/sun/star/container/XIndexContainer.idl | 52 +++ udkapi/com/sun/star/container/XIndexReplace.idl | 44 +++ udkapi/com/sun/star/container/XMap.idl | 182 ++++++++++ udkapi/com/sun/star/container/XNameAccess.idl | 78 ++++ udkapi/com/sun/star/container/XNameContainer.idl | 51 +++ udkapi/com/sun/star/container/XNameReplace.idl | 44 +++ udkapi/com/sun/star/container/XNamed.idl | 46 +++ udkapi/com/sun/star/container/XSet.idl | 55 +++ udkapi/com/sun/star/container/XStringKeyMap.idl | 115 ++++++ udkapi/com/sun/star/container/XUniqueIDAccess.idl | 41 +++ .../com/sun/star/io/AlreadyConnectedException.idl | 34 ++ .../sun/star/io/BufferSizeExceededException.idl | 38 ++ udkapi/com/sun/star/io/ConnectException.idl | 35 ++ udkapi/com/sun/star/io/DataInputStream.idl | 51 +++ udkapi/com/sun/star/io/DataOutputStream.idl | 45 +++ udkapi/com/sun/star/io/DataTransferEvent.idl | 38 ++ udkapi/com/sun/star/io/FilePermission.idl | 70 ++++ udkapi/com/sun/star/io/IOException.idl | 33 ++ udkapi/com/sun/star/io/MarkableInputStream.idl | 55 +++ udkapi/com/sun/star/io/MarkableOutputStream.idl | 60 +++ udkapi/com/sun/star/io/NoRouteToHostException.idl | 34 ++ udkapi/com/sun/star/io/NotConnectedException.idl | 34 ++ udkapi/com/sun/star/io/ObjectInputStream.idl | 75 ++++ udkapi/com/sun/star/io/ObjectOutputStream.idl | 66 ++++ udkapi/com/sun/star/io/Pipe.idl | 36 ++ udkapi/com/sun/star/io/Pump.idl | 48 +++ udkapi/com/sun/star/io/SequenceInputStream.idl | 36 ++ udkapi/com/sun/star/io/SequenceOutputStream.idl | 31 ++ udkapi/com/sun/star/io/SocketException.idl | 33 ++ udkapi/com/sun/star/io/TempFile.idl | 30 ++ udkapi/com/sun/star/io/TextInputStream.idl | 37 ++ udkapi/com/sun/star/io/TextOutputStream.idl | 37 ++ udkapi/com/sun/star/io/UnexpectedEOFException.idl | 34 ++ udkapi/com/sun/star/io/UnknownHostException.idl | 32 ++ udkapi/com/sun/star/io/WrongFormatException.idl | 34 ++ udkapi/com/sun/star/io/XActiveDataControl.idl | 69 ++++ udkapi/com/sun/star/io/XActiveDataSink.idl | 49 +++ udkapi/com/sun/star/io/XActiveDataSource.idl | 49 +++ udkapi/com/sun/star/io/XActiveDataStreamer.idl | 50 +++ udkapi/com/sun/star/io/XAsyncOutputMonitor.idl | 76 ++++ udkapi/com/sun/star/io/XConnectable.idl | 60 +++ udkapi/com/sun/star/io/XDataExporter.idl | 46 +++ udkapi/com/sun/star/io/XDataImporter.idl | 45 +++ udkapi/com/sun/star/io/XDataInputStream.idl | 81 +++++ udkapi/com/sun/star/io/XDataOutputStream.idl | 81 +++++ .../com/sun/star/io/XDataTransferEventListener.idl | 41 +++ udkapi/com/sun/star/io/XInputStream.idl | 135 +++++++ udkapi/com/sun/star/io/XInputStreamProvider.idl | 44 +++ udkapi/com/sun/star/io/XMarkableStream.idl | 84 +++++ udkapi/com/sun/star/io/XObjectInputStream.idl | 43 +++ udkapi/com/sun/star/io/XObjectOutputStream.idl | 47 +++ udkapi/com/sun/star/io/XOutputStream.idl | 66 ++++ udkapi/com/sun/star/io/XPersist.idl | 44 +++ udkapi/com/sun/star/io/XPersistObject.idl | 89 +++++ udkapi/com/sun/star/io/XPipe.idl | 47 +++ udkapi/com/sun/star/io/XSeekable.idl | 62 ++++ udkapi/com/sun/star/io/XSeekableInputStream.idl | 34 ++ udkapi/com/sun/star/io/XSequenceOutputStream.idl | 40 ++ udkapi/com/sun/star/io/XStream.idl | 45 +++ udkapi/com/sun/star/io/XStreamListener.idl | 56 +++ udkapi/com/sun/star/io/XTempFile.idl | 57 +++ udkapi/com/sun/star/io/XTextInputStream.idl | 96 +++++ udkapi/com/sun/star/io/XTextInputStream2.idl | 41 +++ udkapi/com/sun/star/io/XTextOutputStream.idl | 63 ++++ udkapi/com/sun/star/io/XTextOutputStream2.idl | 41 +++ udkapi/com/sun/star/io/XTruncate.idl | 42 +++ udkapi/com/sun/star/io/XXMLExtractor.idl | 41 +++ .../sun/star/java/InvalidJavaSettingsException.idl | 37 ++ udkapi/com/sun/star/java/JavaDisabledException.idl | 36 ++ .../sun/star/java/JavaInitializationException.idl | 44 +++ .../sun/star/java/JavaNotConfiguredException.idl | 35 ++ udkapi/com/sun/star/java/JavaNotFoundException.idl | 33 ++ .../star/java/JavaVMCreationFailureException.idl | 46 +++ udkapi/com/sun/star/java/JavaVirtualMachine.idl | 35 ++ .../sun/star/java/MissingJavaRuntimeException.idl | 38 ++ .../com/sun/star/java/RestartRequiredException.idl | 33 ++ .../sun/star/java/WrongJavaVersionException.idl | 45 +++ .../com/sun/star/java/XJavaThreadRegister_11.idl | 52 +++ udkapi/com/sun/star/java/XJavaVM.idl | 110 ++++++ .../star/lang/ArrayIndexOutOfBoundsException.idl | 37 ++ .../com/sun/star/lang/ClassNotFoundException.idl | 34 ++ udkapi/com/sun/star/lang/DisposedException.idl | 38 ++ udkapi/com/sun/star/lang/EventObject.idl | 38 ++ .../com/sun/star/lang/IllegalAccessException.idl | 34 ++ .../com/sun/star/lang/IllegalArgumentException.idl | 38 ++ .../sun/star/lang/IndexOutOfBoundsException.idl | 37 ++ .../com/sun/star/lang/InvalidListenerException.idl | 37 ++ .../com/sun/star/lang/ListenerExistException.idl | 36 ++ udkapi/com/sun/star/lang/Locale.idl | 97 +++++ udkapi/com/sun/star/lang/MultiServiceFactory.idl | 55 +++ udkapi/com/sun/star/lang/NoSuchFieldException.idl | 33 ++ udkapi/com/sun/star/lang/NoSuchMethodException.idl | 33 ++ udkapi/com/sun/star/lang/NoSupportException.idl | 41 +++ .../com/sun/star/lang/NotInitializedException.idl | 35 ++ udkapi/com/sun/star/lang/NullPointerException.idl | 39 ++ .../com/sun/star/lang/RegistryServiceManager.idl | 64 ++++ udkapi/com/sun/star/lang/ServiceManager.idl | 108 ++++++ .../star/lang/ServiceNotRegisteredException.idl | 36 ++ udkapi/com/sun/star/lang/SystemDependent.idl | 92 +++++ .../com/sun/star/lang/WrappedTargetException.idl | 44 +++ .../star/lang/WrappedTargetRuntimeException.idl | 43 +++ udkapi/com/sun/star/lang/XComponent.idl | 111 ++++++ udkapi/com/sun/star/lang/XConnectionPoint.idl | 155 ++++++++ .../sun/star/lang/XConnectionPointContainer.idl | 84 +++++ udkapi/com/sun/star/lang/XEventListener.idl | 47 +++ udkapi/com/sun/star/lang/XInitialization.idl | 54 +++ udkapi/com/sun/star/lang/XLocalizable.idl | 40 ++ udkapi/com/sun/star/lang/XMain.idl | 45 +++ .../com/sun/star/lang/XMultiComponentFactory.idl | 75 ++++ udkapi/com/sun/star/lang/XMultiServiceFactory.idl | 71 ++++ udkapi/com/sun/star/lang/XServiceDisplayName.idl | 53 +++ udkapi/com/sun/star/lang/XServiceInfo.idl | 59 +++ udkapi/com/sun/star/lang/XServiceName.idl | 42 +++ .../com/sun/star/lang/XSingleComponentFactory.idl | 60 +++ udkapi/com/sun/star/lang/XSingleServiceFactory.idl | 58 +++ udkapi/com/sun/star/lang/XTypeProvider.idl | 59 +++ udkapi/com/sun/star/lang/XUnoTunnel.idl | 60 +++ .../star/loader/CannotActivateFactoryException.idl | 42 +++ udkapi/com/sun/star/loader/Dynamic.idl | 45 +++ udkapi/com/sun/star/loader/Java.idl | 43 +++ udkapi/com/sun/star/loader/Java2.idl | 37 ++ udkapi/com/sun/star/loader/SharedLibrary.idl | 42 +++ .../com/sun/star/loader/XImplementationLoader.idl | 92 +++++ udkapi/com/sun/star/modules.idl | 79 ++++ udkapi/com/sun/star/reflection/CoreReflection.idl | 44 +++ udkapi/com/sun/star/reflection/Dump.idl | 22 ++ udkapi/com/sun/star/reflection/FieldAccessMode.idl | 48 +++ .../star/reflection/InvalidTypeNameException.idl | 37 ++ .../star/reflection/InvocationTargetException.idl | 37 ++ udkapi/com/sun/star/reflection/MethodMode.idl | 43 +++ .../star/reflection/NoSuchTypeNameException.idl | 36 ++ udkapi/com/sun/star/reflection/ParamInfo.idl | 46 +++ udkapi/com/sun/star/reflection/ParamMode.idl | 47 +++ udkapi/com/sun/star/reflection/ProxyFactory.idl | 48 +++ .../sun/star/reflection/TypeDescriptionManager.idl | 95 +++++ .../star/reflection/TypeDescriptionProvider.idl | 71 ++++ .../star/reflection/TypeDescriptionSearchDepth.idl | 45 +++ .../sun/star/reflection/XArrayTypeDescription.idl | 56 +++ .../star/reflection/XCompoundTypeDescription.idl | 65 ++++ .../star/reflection/XConstantTypeDescription.idl | 62 ++++ .../star/reflection/XConstantsTypeDescription.idl | 43 +++ udkapi/com/sun/star/reflection/XDump.idl | 58 +++ .../sun/star/reflection/XEnumTypeDescription.idl | 54 +++ udkapi/com/sun/star/reflection/XIdlArray.idl | 106 ++++++ udkapi/com/sun/star/reflection/XIdlClass.idl | 187 ++++++++++ .../com/sun/star/reflection/XIdlClassProvider.idl | 37 ++ udkapi/com/sun/star/reflection/XIdlField.idl | 47 +++ udkapi/com/sun/star/reflection/XIdlField2.idl | 95 +++++ udkapi/com/sun/star/reflection/XIdlMember.idl | 48 +++ udkapi/com/sun/star/reflection/XIdlMethod.idl | 105 ++++++ udkapi/com/sun/star/reflection/XIdlReflection.idl | 59 +++ .../star/reflection/XIndirectTypeDescription.idl | 43 +++ .../XInterfaceAttributeTypeDescription.idl | 53 +++ .../XInterfaceAttributeTypeDescription2.idl | 66 ++++ .../reflection/XInterfaceMemberTypeDescription.idl | 51 +++ .../reflection/XInterfaceMethodTypeDescription.idl | 62 ++++ .../star/reflection/XInterfaceTypeDescription.idl | 68 ++++ .../star/reflection/XInterfaceTypeDescription2.idl | 61 ++++ .../com/sun/star/reflection/XMethodParameter.idl | 74 ++++ .../sun/star/reflection/XModuleTypeDescription.idl | 43 +++ udkapi/com/sun/star/reflection/XParameter.idl | 46 +++ .../star/reflection/XPropertyTypeDescription.idl | 49 +++ udkapi/com/sun/star/reflection/XProxyFactory.idl | 58 +++ udkapi/com/sun/star/reflection/XPublished.idl | 96 +++++ .../reflection/XServiceConstructorDescription.idl | 70 ++++ .../star/reflection/XServiceTypeDescription.idl | 85 +++++ .../star/reflection/XServiceTypeDescription2.idl | 67 ++++ .../star/reflection/XSingletonTypeDescription.idl | 50 +++ .../star/reflection/XSingletonTypeDescription2.idl | 57 +++ .../sun/star/reflection/XStructTypeDescription.idl | 77 ++++ .../com/sun/star/reflection/XTypeDescription.idl | 61 ++++ .../reflection/XTypeDescriptionEnumeration.idl | 45 +++ .../XTypeDescriptionEnumerationAccess.idl | 152 ++++++++ .../sun/star/reflection/XUnionTypeDescription.idl | 77 ++++ .../com/sun/star/reflection/theCoreReflection.idl | 31 ++ .../CannotRegisterImplementationException.idl | 42 +++ udkapi/com/sun/star/registry/DefaultRegistry.idl | 131 +++++++ .../star/registry/ImplementationRegistration.idl | 40 ++ .../sun/star/registry/InvalidRegistryException.idl | 34 ++ .../sun/star/registry/InvalidValueException.idl | 34 ++ .../sun/star/registry/MergeConflictException.idl | 36 ++ udkapi/com/sun/star/registry/NestedRegistry.idl | 127 +++++++ udkapi/com/sun/star/registry/RegistryKeyType.idl | 39 ++ udkapi/com/sun/star/registry/RegistryValueType.idl | 62 ++++ udkapi/com/sun/star/registry/SimpleRegistry.idl | 37 ++ .../star/registry/XImplementationRegistration.idl | 89 +++++ .../star/registry/XImplementationRegistration2.idl | 56 +++ udkapi/com/sun/star/registry/XRegistryKey.idl | 404 +++++++++++++++++++++ udkapi/com/sun/star/registry/XSimpleRegistry.idl | 113 ++++++ udkapi/com/sun/star/script/AllEventObject.idl | 55 +++ udkapi/com/sun/star/script/AllListenerAdapter.idl | 33 ++ udkapi/com/sun/star/script/ArrayWrapper.idl | 49 +++ udkapi/com/sun/star/script/BasicErrorException.idl | 47 +++ .../com/sun/star/script/CannotConvertException.idl | 48 +++ .../star/script/CannotCreateAdapterException.idl | 38 ++ udkapi/com/sun/star/script/ContextInformation.idl | 80 ++++ udkapi/com/sun/star/script/Converter.idl | 78 ++++ udkapi/com/sun/star/script/Engine.idl | 41 +++ udkapi/com/sun/star/script/EventListener.idl | 23 ++ udkapi/com/sun/star/script/FailReason.idl | 75 ++++ udkapi/com/sun/star/script/FinishEngineEvent.idl | 52 +++ udkapi/com/sun/star/script/FinishReason.idl | 46 +++ .../com/sun/star/script/InterruptEngineEvent.idl | 89 +++++ udkapi/com/sun/star/script/InterruptReason.idl | 67 ++++ udkapi/com/sun/star/script/Invocation.idl | 39 ++ .../sun/star/script/InvocationAdapterFactory.idl | 44 +++ udkapi/com/sun/star/script/InvocationInfo.idl | 72 ++++ udkapi/com/sun/star/script/JavaScript.idl | 39 ++ udkapi/com/sun/star/script/MemberType.idl | 37 ++ udkapi/com/sun/star/script/ScriptEvent.idl | 46 +++ .../com/sun/star/script/ScriptEventDescriptor.idl | 59 +++ udkapi/com/sun/star/script/XAllListener.idl | 48 +++ .../sun/star/script/XAllListenerAdapterService.idl | 46 +++ .../com/sun/star/script/XAutomationInvocation.idl | 31 ++ udkapi/com/sun/star/script/XDebugging.idl | 119 ++++++ udkapi/com/sun/star/script/XDefaultMethod.idl | 46 +++ udkapi/com/sun/star/script/XDefaultProperty.idl | 50 +++ udkapi/com/sun/star/script/XDirectInvocation.idl | 47 +++ udkapi/com/sun/star/script/XEngine.idl | 98 +++++ udkapi/com/sun/star/script/XEngineListener.idl | 51 +++ udkapi/com/sun/star/script/XErrorQuery.idl | 36 ++ udkapi/com/sun/star/script/XEventAttacher.idl | 79 ++++ udkapi/com/sun/star/script/XEventAttacher2.idl | 33 ++ .../com/sun/star/script/XEventAttacherManager.idl | 188 ++++++++++ udkapi/com/sun/star/script/XInvocation.idl | 115 ++++++ udkapi/com/sun/star/script/XInvocation2.idl | 63 ++++ .../sun/star/script/XInvocationAdapterFactory.idl | 50 +++ .../sun/star/script/XInvocationAdapterFactory2.idl | 48 +++ udkapi/com/sun/star/script/XLibraryAccess.idl | 84 +++++ .../com/sun/star/script/XScriptEventsAttacher.idl | 64 ++++ .../com/sun/star/script/XScriptEventsSupplier.idl | 41 +++ udkapi/com/sun/star/script/XScriptListener.idl | 44 +++ udkapi/com/sun/star/script/XStarBasicAccess.idl | 77 ++++ .../com/sun/star/script/XStarBasicDialogInfo.idl | 44 +++ .../com/sun/star/script/XStarBasicLibraryInfo.idl | 83 +++++ .../com/sun/star/script/XStarBasicModuleInfo.idl | 50 +++ udkapi/com/sun/star/script/XTypeConverter.idl | 73 ++++ .../sun/star/security/AccessControlException.idl | 45 +++ udkapi/com/sun/star/security/AccessController.idl | 43 +++ udkapi/com/sun/star/security/AllPermission.idl | 43 +++ udkapi/com/sun/star/security/Policy.idl | 32 ++ udkapi/com/sun/star/security/RuntimePermission.idl | 39 ++ .../sun/star/security/XAccessControlContext.idl | 71 ++++ udkapi/com/sun/star/security/XAccessController.idl | 127 +++++++ udkapi/com/sun/star/security/XAction.idl | 45 +++ udkapi/com/sun/star/security/XPolicy.idl | 57 +++ udkapi/com/sun/star/task/XInteractionAbort.idl | 34 ++ .../com/sun/star/task/XInteractionContinuation.idl | 43 +++ udkapi/com/sun/star/task/XInteractionHandler.idl | 37 ++ udkapi/com/sun/star/task/XInteractionHandler2.idl | 49 +++ udkapi/com/sun/star/task/XInteractionRequest.idl | 47 +++ udkapi/com/sun/star/task/XInteractionRetry.idl | 34 ++ udkapi/com/sun/star/uno/DeploymentException.idl | 36 ++ udkapi/com/sun/star/uno/Exception.idl | 48 +++ udkapi/com/sun/star/uno/NamingService.idl | 35 ++ udkapi/com/sun/star/uno/RuntimeException.idl | 40 ++ udkapi/com/sun/star/uno/SecurityException.idl | 34 ++ udkapi/com/sun/star/uno/TypeClass.idl | 141 +++++++ udkapi/com/sun/star/uno/Uik.idl | 55 +++ udkapi/com/sun/star/uno/XAdapter.idl | 59 +++ udkapi/com/sun/star/uno/XAggregation.idl | 105 ++++++ udkapi/com/sun/star/uno/XComponentContext.idl | 56 +++ udkapi/com/sun/star/uno/XCurrentContext.idl | 47 +++ udkapi/com/sun/star/uno/XInterface.idl | 112 ++++++ udkapi/com/sun/star/uno/XNamingService.idl | 62 ++++ udkapi/com/sun/star/uno/XReference.idl | 46 +++ udkapi/com/sun/star/uno/XUnloadingPreference.idl | 34 ++ udkapi/com/sun/star/uno/XWeak.idl | 94 +++++ .../star/uri/ExternalUriReferenceTranslator.idl | 32 ++ .../star/uri/RelativeUriExcessParentSegments.idl | 51 +++ udkapi/com/sun/star/uri/UriReferenceFactory.idl | 66 ++++ .../UriSchemeParser_vndDOTsunDOTstarDOTexpand.idl | 47 +++ .../UriSchemeParser_vndDOTsunDOTstarDOTscript.idl | 47 +++ .../star/uri/VndSunStarPkgUrlReferenceFactory.idl | 34 ++ .../star/uri/XExternalUriReferenceTranslator.idl | 78 ++++ udkapi/com/sun/star/uri/XUriReference.idl | 220 +++++++++++ udkapi/com/sun/star/uri/XUriReferenceFactory.idl | 151 ++++++++ udkapi/com/sun/star/uri/XUriSchemeParser.idl | 61 ++++ udkapi/com/sun/star/uri/XVndSunStarExpandUrl.idl | 61 ++++ .../sun/star/uri/XVndSunStarExpandUrlReference.idl | 45 +++ .../star/uri/XVndSunStarPkgUrlReferenceFactory.idl | 48 +++ udkapi/com/sun/star/uri/XVndSunStarScriptUrl.idl | 122 +++++++ .../sun/star/uri/XVndSunStarScriptUrlReference.idl | 43 +++ .../com/sun/star/util/BootstrapMacroExpander.idl | 46 +++ udkapi/com/sun/star/util/MacroExpander.idl | 43 +++ udkapi/com/sun/star/util/XMacroExpander.idl | 47 +++ udkapi/com/sun/star/util/XVeto.idl | 44 +++ udkapi/com/sun/star/util/theMacroExpander.idl | 37 ++ 417 files changed, 24827 insertions(+) create mode 100644 udkapi/com/sun/star/beans/Ambiguous.idl create mode 100644 udkapi/com/sun/star/beans/Defaulted.idl create mode 100644 udkapi/com/sun/star/beans/GetDirectPropertyTolerantResult.idl create mode 100644 udkapi/com/sun/star/beans/GetPropertyTolerantResult.idl create mode 100644 udkapi/com/sun/star/beans/IllegalTypeException.idl create mode 100644 udkapi/com/sun/star/beans/Introspection.idl create mode 100644 udkapi/com/sun/star/beans/IntrospectionException.idl create mode 100644 udkapi/com/sun/star/beans/MethodConcept.idl create mode 100644 udkapi/com/sun/star/beans/NamedValue.idl create mode 100644 udkapi/com/sun/star/beans/NotRemoveableException.idl create mode 100644 udkapi/com/sun/star/beans/Optional.idl create mode 100644 udkapi/com/sun/star/beans/Pair.idl create mode 100644 udkapi/com/sun/star/beans/Property.idl create mode 100644 udkapi/com/sun/star/beans/PropertyAttribute.idl create mode 100644 udkapi/com/sun/star/beans/PropertyBag.idl create mode 100644 udkapi/com/sun/star/beans/PropertyChangeEvent.idl create mode 100644 udkapi/com/sun/star/beans/PropertyConcept.idl create mode 100644 udkapi/com/sun/star/beans/PropertyExistException.idl create mode 100644 udkapi/com/sun/star/beans/PropertySet.idl create mode 100644 udkapi/com/sun/star/beans/PropertySetInfoChange.idl create mode 100644 udkapi/com/sun/star/beans/PropertySetInfoChangeEvent.idl create mode 100644 udkapi/com/sun/star/beans/PropertyState.idl create mode 100644 udkapi/com/sun/star/beans/PropertyStateChangeEvent.idl create mode 100644 udkapi/com/sun/star/beans/PropertyValue.idl create mode 100644 udkapi/com/sun/star/beans/PropertyValues.idl create mode 100644 udkapi/com/sun/star/beans/PropertyVetoException.idl create mode 100644 udkapi/com/sun/star/beans/SetPropertyTolerantFailed.idl create mode 100644 udkapi/com/sun/star/beans/StringPair.idl create mode 100644 udkapi/com/sun/star/beans/TolerantPropertySetResultType.idl create mode 100644 udkapi/com/sun/star/beans/UnknownPropertyException.idl create mode 100644 udkapi/com/sun/star/beans/XExactName.idl create mode 100644 udkapi/com/sun/star/beans/XFastPropertySet.idl create mode 100644 udkapi/com/sun/star/beans/XHierarchicalPropertySet.idl create mode 100644 udkapi/com/sun/star/beans/XHierarchicalPropertySetInfo.idl create mode 100644 udkapi/com/sun/star/beans/XIntrospection.idl create mode 100644 udkapi/com/sun/star/beans/XIntrospectionAccess.idl create mode 100644 udkapi/com/sun/star/beans/XMaterialHolder.idl create mode 100644 udkapi/com/sun/star/beans/XMultiHierarchicalPropertySet.idl create mode 100644 udkapi/com/sun/star/beans/XMultiPropertySet.idl create mode 100644 udkapi/com/sun/star/beans/XMultiPropertyStates.idl create mode 100644 udkapi/com/sun/star/beans/XPropertiesChangeListener.idl create mode 100644 udkapi/com/sun/star/beans/XPropertiesChangeNotifier.idl create mode 100644 udkapi/com/sun/star/beans/XProperty.idl create mode 100644 udkapi/com/sun/star/beans/XPropertyAccess.idl create mode 100644 udkapi/com/sun/star/beans/XPropertyBag.idl create mode 100644 udkapi/com/sun/star/beans/XPropertyChangeListener.idl create mode 100644 udkapi/com/sun/star/beans/XPropertyContainer.idl create mode 100644 udkapi/com/sun/star/beans/XPropertySet.idl create mode 100644 udkapi/com/sun/star/beans/XPropertySetInfo.idl create mode 100644 udkapi/com/sun/star/beans/XPropertySetInfoChangeListener.idl create mode 100644 udkapi/com/sun/star/beans/XPropertySetInfoChangeNotifier.idl create mode 100644 udkapi/com/sun/star/beans/XPropertySetOption.idl create mode 100644 udkapi/com/sun/star/beans/XPropertyState.idl create mode 100644 udkapi/com/sun/star/beans/XPropertyStateChangeListener.idl create mode 100644 udkapi/com/sun/star/beans/XPropertyWithState.idl create mode 100644 udkapi/com/sun/star/beans/XTolerantMultiPropertySet.idl create mode 100644 udkapi/com/sun/star/beans/XVetoableChangeListener.idl create mode 100644 udkapi/com/sun/star/beans/theIntrospection.idl create mode 100644 udkapi/com/sun/star/bridge/Bridge.idl create mode 100644 udkapi/com/sun/star/bridge/BridgeExistsException.idl create mode 100644 udkapi/com/sun/star/bridge/BridgeFactory.idl create mode 100644 udkapi/com/sun/star/bridge/IiopBridge.idl create mode 100644 udkapi/com/sun/star/bridge/InvalidProtocolChangeException.idl create mode 100644 udkapi/com/sun/star/bridge/ModelDependent.idl create mode 100644 udkapi/com/sun/star/bridge/OleApplicationRegistration.idl create mode 100644 udkapi/com/sun/star/bridge/OleBridgeSupplier.idl create mode 100644 udkapi/com/sun/star/bridge/OleBridgeSupplier2.idl create mode 100644 udkapi/com/sun/star/bridge/OleBridgeSupplierVar1.idl create mode 100644 udkapi/com/sun/star/bridge/OleObjectFactory.idl create mode 100644 udkapi/com/sun/star/bridge/ProtocolProperty.idl create mode 100644 udkapi/com/sun/star/bridge/UnoUrlResolver.idl create mode 100644 udkapi/com/sun/star/bridge/UrpBridge.idl create mode 100644 udkapi/com/sun/star/bridge/XBridge.idl create mode 100644 udkapi/com/sun/star/bridge/XBridgeFactory.idl create mode 100644 udkapi/com/sun/star/bridge/XBridgeFactory2.idl create mode 100644 udkapi/com/sun/star/bridge/XBridgeSupplier.idl create mode 100644 udkapi/com/sun/star/bridge/XBridgeSupplier2.idl create mode 100644 udkapi/com/sun/star/bridge/XInstanceProvider.idl create mode 100644 udkapi/com/sun/star/bridge/XProtocolProperties.idl create mode 100644 udkapi/com/sun/star/bridge/XUnoUrlResolver.idl create mode 100644 udkapi/com/sun/star/bridge/oleautomation/ApplicationRegistration.idl create mode 100644 udkapi/com/sun/star/bridge/oleautomation/BridgeSupplier.idl create mode 100644 udkapi/com/sun/star/bridge/oleautomation/Currency.idl create mode 100644 udkapi/com/sun/star/bridge/oleautomation/Date.idl create mode 100644 udkapi/com/sun/star/bridge/oleautomation/Decimal.idl create mode 100644 udkapi/com/sun/star/bridge/oleautomation/Factory.idl create mode 100644 udkapi/com/sun/star/bridge/oleautomation/NamedArgument.idl create mode 100644 udkapi/com/sun/star/bridge/oleautomation/PropertyPutArgument.idl create mode 100644 udkapi/com/sun/star/bridge/oleautomation/SCode.idl create mode 100644 udkapi/com/sun/star/bridge/oleautomation/XAutomationObject.idl create mode 100644 udkapi/com/sun/star/connection/Acceptor.idl create mode 100644 udkapi/com/sun/star/connection/AlreadyAcceptingException.idl create mode 100644 udkapi/com/sun/star/connection/ConnectionSetupException.idl create mode 100644 udkapi/com/sun/star/connection/Connector.idl create mode 100644 udkapi/com/sun/star/connection/NoConnectException.idl create mode 100644 udkapi/com/sun/star/connection/SocketPermission.idl create mode 100644 udkapi/com/sun/star/connection/XAcceptor.idl create mode 100644 udkapi/com/sun/star/connection/XConnection.idl create mode 100644 udkapi/com/sun/star/connection/XConnection2.idl create mode 100644 udkapi/com/sun/star/connection/XConnectionBroadcaster.idl create mode 100644 udkapi/com/sun/star/connection/XConnector.idl create mode 100644 udkapi/com/sun/star/container/ContainerEvent.idl create mode 100644 udkapi/com/sun/star/container/ElementExistException.idl create mode 100644 udkapi/com/sun/star/container/EnumerableMap.idl create mode 100644 udkapi/com/sun/star/container/NoSuchElementException.idl create mode 100644 udkapi/com/sun/star/container/XChild.idl create mode 100644 udkapi/com/sun/star/container/XComponentEnumeration.idl create mode 100644 udkapi/com/sun/star/container/XComponentEnumerationAccess.idl create mode 100644 udkapi/com/sun/star/container/XContainer.idl create mode 100644 udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl create mode 100644 udkapi/com/sun/star/container/XContainerApproveListener.idl create mode 100644 udkapi/com/sun/star/container/XContainerListener.idl create mode 100644 udkapi/com/sun/star/container/XContainerQuery.idl create mode 100644 udkapi/com/sun/star/container/XContentEnumerationAccess.idl create mode 100644 udkapi/com/sun/star/container/XElementAccess.idl create mode 100644 udkapi/com/sun/star/container/XEnumerableMap.idl create mode 100644 udkapi/com/sun/star/container/XEnumeration.idl create mode 100644 udkapi/com/sun/star/container/XEnumerationAccess.idl create mode 100644 udkapi/com/sun/star/container/XHierarchicalName.idl create mode 100644 udkapi/com/sun/star/container/XHierarchicalNameAccess.idl create mode 100644 udkapi/com/sun/star/container/XHierarchicalNameContainer.idl create mode 100644 udkapi/com/sun/star/container/XHierarchicalNameReplace.idl create mode 100644 udkapi/com/sun/star/container/XIdentifierAccess.idl create mode 100644 udkapi/com/sun/star/container/XIdentifierContainer.idl create mode 100644 udkapi/com/sun/star/container/XIdentifierReplace.idl create mode 100644 udkapi/com/sun/star/container/XImplicitIDAccess.idl create mode 100644 udkapi/com/sun/star/container/XImplicitIDContainer.idl create mode 100644 udkapi/com/sun/star/container/XImplicitIDReplace.idl create mode 100644 udkapi/com/sun/star/container/XIndexAccess.idl create mode 100644 udkapi/com/sun/star/container/XIndexContainer.idl create mode 100644 udkapi/com/sun/star/container/XIndexReplace.idl create mode 100644 udkapi/com/sun/star/container/XMap.idl create mode 100644 udkapi/com/sun/star/container/XNameAccess.idl create mode 100644 udkapi/com/sun/star/container/XNameContainer.idl create mode 100644 udkapi/com/sun/star/container/XNameReplace.idl create mode 100644 udkapi/com/sun/star/container/XNamed.idl create mode 100644 udkapi/com/sun/star/container/XSet.idl create mode 100644 udkapi/com/sun/star/container/XStringKeyMap.idl create mode 100644 udkapi/com/sun/star/container/XUniqueIDAccess.idl create mode 100644 udkapi/com/sun/star/io/AlreadyConnectedException.idl create mode 100644 udkapi/com/sun/star/io/BufferSizeExceededException.idl create mode 100644 udkapi/com/sun/star/io/ConnectException.idl create mode 100644 udkapi/com/sun/star/io/DataInputStream.idl create mode 100644 udkapi/com/sun/star/io/DataOutputStream.idl create mode 100644 udkapi/com/sun/star/io/DataTransferEvent.idl create mode 100644 udkapi/com/sun/star/io/FilePermission.idl create mode 100644 udkapi/com/sun/star/io/IOException.idl create mode 100644 udkapi/com/sun/star/io/MarkableInputStream.idl create mode 100644 udkapi/com/sun/star/io/MarkableOutputStream.idl create mode 100644 udkapi/com/sun/star/io/NoRouteToHostException.idl create mode 100644 udkapi/com/sun/star/io/NotConnectedException.idl create mode 100644 udkapi/com/sun/star/io/ObjectInputStream.idl create mode 100644 udkapi/com/sun/star/io/ObjectOutputStream.idl create mode 100644 udkapi/com/sun/star/io/Pipe.idl create mode 100644 udkapi/com/sun/star/io/Pump.idl create mode 100644 udkapi/com/sun/star/io/SequenceInputStream.idl create mode 100644 udkapi/com/sun/star/io/SequenceOutputStream.idl create mode 100644 udkapi/com/sun/star/io/SocketException.idl create mode 100644 udkapi/com/sun/star/io/TempFile.idl create mode 100644 udkapi/com/sun/star/io/TextInputStream.idl create mode 100644 udkapi/com/sun/star/io/TextOutputStream.idl create mode 100644 udkapi/com/sun/star/io/UnexpectedEOFException.idl create mode 100644 udkapi/com/sun/star/io/UnknownHostException.idl create mode 100644 udkapi/com/sun/star/io/WrongFormatException.idl create mode 100644 udkapi/com/sun/star/io/XActiveDataControl.idl create mode 100644 udkapi/com/sun/star/io/XActiveDataSink.idl create mode 100644 udkapi/com/sun/star/io/XActiveDataSource.idl create mode 100644 udkapi/com/sun/star/io/XActiveDataStreamer.idl create mode 100644 udkapi/com/sun/star/io/XAsyncOutputMonitor.idl create mode 100644 udkapi/com/sun/star/io/XConnectable.idl create mode 100644 udkapi/com/sun/star/io/XDataExporter.idl create mode 100644 udkapi/com/sun/star/io/XDataImporter.idl create mode 100644 udkapi/com/sun/star/io/XDataInputStream.idl create mode 100644 udkapi/com/sun/star/io/XDataOutputStream.idl create mode 100644 udkapi/com/sun/star/io/XDataTransferEventListener.idl create mode 100644 udkapi/com/sun/star/io/XInputStream.idl create mode 100644 udkapi/com/sun/star/io/XInputStreamProvider.idl create mode 100644 udkapi/com/sun/star/io/XMarkableStream.idl create mode 100644 udkapi/com/sun/star/io/XObjectInputStream.idl create mode 100644 udkapi/com/sun/star/io/XObjectOutputStream.idl create mode 100644 udkapi/com/sun/star/io/XOutputStream.idl create mode 100644 udkapi/com/sun/star/io/XPersist.idl create mode 100644 udkapi/com/sun/star/io/XPersistObject.idl create mode 100644 udkapi/com/sun/star/io/XPipe.idl create mode 100644 udkapi/com/sun/star/io/XSeekable.idl create mode 100644 udkapi/com/sun/star/io/XSeekableInputStream.idl create mode 100644 udkapi/com/sun/star/io/XSequenceOutputStream.idl create mode 100644 udkapi/com/sun/star/io/XStream.idl create mode 100644 udkapi/com/sun/star/io/XStreamListener.idl create mode 100644 udkapi/com/sun/star/io/XTempFile.idl create mode 100644 udkapi/com/sun/star/io/XTextInputStream.idl create mode 100644 udkapi/com/sun/star/io/XTextInputStream2.idl create mode 100644 udkapi/com/sun/star/io/XTextOutputStream.idl create mode 100644 udkapi/com/sun/star/io/XTextOutputStream2.idl create mode 100644 udkapi/com/sun/star/io/XTruncate.idl create mode 100644 udkapi/com/sun/star/io/XXMLExtractor.idl create mode 100644 udkapi/com/sun/star/java/InvalidJavaSettingsException.idl create mode 100644 udkapi/com/sun/star/java/JavaDisabledException.idl create mode 100644 udkapi/com/sun/star/java/JavaInitializationException.idl create mode 100644 udkapi/com/sun/star/java/JavaNotConfiguredException.idl create mode 100644 udkapi/com/sun/star/java/JavaNotFoundException.idl create mode 100644 udkapi/com/sun/star/java/JavaVMCreationFailureException.idl create mode 100644 udkapi/com/sun/star/java/JavaVirtualMachine.idl create mode 100644 udkapi/com/sun/star/java/MissingJavaRuntimeException.idl create mode 100644 udkapi/com/sun/star/java/RestartRequiredException.idl create mode 100644 udkapi/com/sun/star/java/WrongJavaVersionException.idl create mode 100644 udkapi/com/sun/star/java/XJavaThreadRegister_11.idl create mode 100644 udkapi/com/sun/star/java/XJavaVM.idl create mode 100644 udkapi/com/sun/star/lang/ArrayIndexOutOfBoundsException.idl create mode 100644 udkapi/com/sun/star/lang/ClassNotFoundException.idl create mode 100644 udkapi/com/sun/star/lang/DisposedException.idl create mode 100644 udkapi/com/sun/star/lang/EventObject.idl create mode 100644 udkapi/com/sun/star/lang/IllegalAccessException.idl create mode 100644 udkapi/com/sun/star/lang/IllegalArgumentException.idl create mode 100644 udkapi/com/sun/star/lang/IndexOutOfBoundsException.idl create mode 100644 udkapi/com/sun/star/lang/InvalidListenerException.idl create mode 100644 udkapi/com/sun/star/lang/ListenerExistException.idl create mode 100644 udkapi/com/sun/star/lang/Locale.idl create mode 100644 udkapi/com/sun/star/lang/MultiServiceFactory.idl create mode 100644 udkapi/com/sun/star/lang/NoSuchFieldException.idl create mode 100644 udkapi/com/sun/star/lang/NoSuchMethodException.idl create mode 100644 udkapi/com/sun/star/lang/NoSupportException.idl create mode 100644 udkapi/com/sun/star/lang/NotInitializedException.idl create mode 100644 udkapi/com/sun/star/lang/NullPointerException.idl create mode 100644 udkapi/com/sun/star/lang/RegistryServiceManager.idl create mode 100644 udkapi/com/sun/star/lang/ServiceManager.idl create mode 100644 udkapi/com/sun/star/lang/ServiceNotRegisteredException.idl create mode 100644 udkapi/com/sun/star/lang/SystemDependent.idl create mode 100644 udkapi/com/sun/star/lang/WrappedTargetException.idl create mode 100644 udkapi/com/sun/star/lang/WrappedTargetRuntimeException.idl create mode 100644 udkapi/com/sun/star/lang/XComponent.idl create mode 100644 udkapi/com/sun/star/lang/XConnectionPoint.idl create mode 100644 udkapi/com/sun/star/lang/XConnectionPointContainer.idl create mode 100644 udkapi/com/sun/star/lang/XEventListener.idl create mode 100644 udkapi/com/sun/star/lang/XInitialization.idl create mode 100644 udkapi/com/sun/star/lang/XLocalizable.idl create mode 100644 udkapi/com/sun/star/lang/XMain.idl create mode 100644 udkapi/com/sun/star/lang/XMultiComponentFactory.idl create mode 100644 udkapi/com/sun/star/lang/XMultiServiceFactory.idl create mode 100644 udkapi/com/sun/star/lang/XServiceDisplayName.idl create mode 100644 udkapi/com/sun/star/lang/XServiceInfo.idl create mode 100644 udkapi/com/sun/star/lang/XServiceName.idl create mode 100644 udkapi/com/sun/star/lang/XSingleComponentFactory.idl create mode 100644 udkapi/com/sun/star/lang/XSingleServiceFactory.idl create mode 100644 udkapi/com/sun/star/lang/XTypeProvider.idl create mode 100644 udkapi/com/sun/star/lang/XUnoTunnel.idl create mode 100644 udkapi/com/sun/star/loader/CannotActivateFactoryException.idl create mode 100644 udkapi/com/sun/star/loader/Dynamic.idl create mode 100644 udkapi/com/sun/star/loader/Java.idl create mode 100644 udkapi/com/sun/star/loader/Java2.idl create mode 100644 udkapi/com/sun/star/loader/SharedLibrary.idl create mode 100644 udkapi/com/sun/star/loader/XImplementationLoader.idl create mode 100644 udkapi/com/sun/star/modules.idl create mode 100644 udkapi/com/sun/star/reflection/CoreReflection.idl create mode 100644 udkapi/com/sun/star/reflection/Dump.idl create mode 100644 udkapi/com/sun/star/reflection/FieldAccessMode.idl create mode 100644 udkapi/com/sun/star/reflection/InvalidTypeNameException.idl create mode 100644 udkapi/com/sun/star/reflection/InvocationTargetException.idl create mode 100644 udkapi/com/sun/star/reflection/MethodMode.idl create mode 100644 udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl create mode 100644 udkapi/com/sun/star/reflection/ParamInfo.idl create mode 100644 udkapi/com/sun/star/reflection/ParamMode.idl create mode 100644 udkapi/com/sun/star/reflection/ProxyFactory.idl create mode 100644 udkapi/com/sun/star/reflection/TypeDescriptionManager.idl create mode 100644 udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl create mode 100644 udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl create mode 100644 udkapi/com/sun/star/reflection/XArrayTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XConstantTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XDump.idl create mode 100644 udkapi/com/sun/star/reflection/XEnumTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XIdlArray.idl create mode 100644 udkapi/com/sun/star/reflection/XIdlClass.idl create mode 100644 udkapi/com/sun/star/reflection/XIdlClassProvider.idl create mode 100644 udkapi/com/sun/star/reflection/XIdlField.idl create mode 100644 udkapi/com/sun/star/reflection/XIdlField2.idl create mode 100644 udkapi/com/sun/star/reflection/XIdlMember.idl create mode 100644 udkapi/com/sun/star/reflection/XIdlMethod.idl create mode 100644 udkapi/com/sun/star/reflection/XIdlReflection.idl create mode 100644 udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl create mode 100644 udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl create mode 100644 udkapi/com/sun/star/reflection/XMethodParameter.idl create mode 100644 udkapi/com/sun/star/reflection/XModuleTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XParameter.idl create mode 100644 udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XProxyFactory.idl create mode 100644 udkapi/com/sun/star/reflection/XPublished.idl create mode 100644 udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XServiceTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl create mode 100644 udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl create mode 100644 udkapi/com/sun/star/reflection/XStructTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl create mode 100644 udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl create mode 100644 udkapi/com/sun/star/reflection/XUnionTypeDescription.idl create mode 100644 udkapi/com/sun/star/reflection/theCoreReflection.idl create mode 100644 udkapi/com/sun/star/registry/CannotRegisterImplementationException.idl create mode 100644 udkapi/com/sun/star/registry/DefaultRegistry.idl create mode 100644 udkapi/com/sun/star/registry/ImplementationRegistration.idl create mode 100644 udkapi/com/sun/star/registry/InvalidRegistryException.idl create mode 100644 udkapi/com/sun/star/registry/InvalidValueException.idl create mode 100644 udkapi/com/sun/star/registry/MergeConflictException.idl create mode 100644 udkapi/com/sun/star/registry/NestedRegistry.idl create mode 100644 udkapi/com/sun/star/registry/RegistryKeyType.idl create mode 100644 udkapi/com/sun/star/registry/RegistryValueType.idl create mode 100644 udkapi/com/sun/star/registry/SimpleRegistry.idl create mode 100644 udkapi/com/sun/star/registry/XImplementationRegistration.idl create mode 100644 udkapi/com/sun/star/registry/XImplementationRegistration2.idl create mode 100644 udkapi/com/sun/star/registry/XRegistryKey.idl create mode 100644 udkapi/com/sun/star/registry/XSimpleRegistry.idl create mode 100644 udkapi/com/sun/star/script/AllEventObject.idl create mode 100644 udkapi/com/sun/star/script/AllListenerAdapter.idl create mode 100644 udkapi/com/sun/star/script/ArrayWrapper.idl create mode 100644 udkapi/com/sun/star/script/BasicErrorException.idl create mode 100644 udkapi/com/sun/star/script/CannotConvertException.idl create mode 100644 udkapi/com/sun/star/script/CannotCreateAdapterException.idl create mode 100644 udkapi/com/sun/star/script/ContextInformation.idl create mode 100644 udkapi/com/sun/star/script/Converter.idl create mode 100644 udkapi/com/sun/star/script/Engine.idl create mode 100644 udkapi/com/sun/star/script/EventListener.idl create mode 100644 udkapi/com/sun/star/script/FailReason.idl create mode 100644 udkapi/com/sun/star/script/FinishEngineEvent.idl create mode 100644 udkapi/com/sun/star/script/FinishReason.idl create mode 100644 udkapi/com/sun/star/script/InterruptEngineEvent.idl create mode 100644 udkapi/com/sun/star/script/InterruptReason.idl create mode 100644 udkapi/com/sun/star/script/Invocation.idl create mode 100644 udkapi/com/sun/star/script/InvocationAdapterFactory.idl create mode 100644 udkapi/com/sun/star/script/InvocationInfo.idl create mode 100644 udkapi/com/sun/star/script/JavaScript.idl create mode 100644 udkapi/com/sun/star/script/MemberType.idl create mode 100644 udkapi/com/sun/star/script/ScriptEvent.idl create mode 100644 udkapi/com/sun/star/script/ScriptEventDescriptor.idl create mode 100644 udkapi/com/sun/star/script/XAllListener.idl create mode 100644 udkapi/com/sun/star/script/XAllListenerAdapterService.idl create mode 100644 udkapi/com/sun/star/script/XAutomationInvocation.idl create mode 100644 udkapi/com/sun/star/script/XDebugging.idl create mode 100644 udkapi/com/sun/star/script/XDefaultMethod.idl create mode 100644 udkapi/com/sun/star/script/XDefaultProperty.idl create mode 100644 udkapi/com/sun/star/script/XDirectInvocation.idl create mode 100644 udkapi/com/sun/star/script/XEngine.idl create mode 100644 udkapi/com/sun/star/script/XEngineListener.idl create mode 100644 udkapi/com/sun/star/script/XErrorQuery.idl create mode 100644 udkapi/com/sun/star/script/XEventAttacher.idl create mode 100644 udkapi/com/sun/star/script/XEventAttacher2.idl create mode 100644 udkapi/com/sun/star/script/XEventAttacherManager.idl create mode 100644 udkapi/com/sun/star/script/XInvocation.idl create mode 100644 udkapi/com/sun/star/script/XInvocation2.idl create mode 100644 udkapi/com/sun/star/script/XInvocationAdapterFactory.idl create mode 100644 udkapi/com/sun/star/script/XInvocationAdapterFactory2.idl create mode 100644 udkapi/com/sun/star/script/XLibraryAccess.idl create mode 100644 udkapi/com/sun/star/script/XScriptEventsAttacher.idl create mode 100644 udkapi/com/sun/star/script/XScriptEventsSupplier.idl create mode 100644 udkapi/com/sun/star/script/XScriptListener.idl create mode 100644 udkapi/com/sun/star/script/XStarBasicAccess.idl create mode 100644 udkapi/com/sun/star/script/XStarBasicDialogInfo.idl create mode 100644 udkapi/com/sun/star/script/XStarBasicLibraryInfo.idl create mode 100644 udkapi/com/sun/star/script/XStarBasicModuleInfo.idl create mode 100644 udkapi/com/sun/star/script/XTypeConverter.idl create mode 100644 udkapi/com/sun/star/security/AccessControlException.idl create mode 100644 udkapi/com/sun/star/security/AccessController.idl create mode 100644 udkapi/com/sun/star/security/AllPermission.idl create mode 100644 udkapi/com/sun/star/security/Policy.idl create mode 100644 udkapi/com/sun/star/security/RuntimePermission.idl create mode 100644 udkapi/com/sun/star/security/XAccessControlContext.idl create mode 100644 udkapi/com/sun/star/security/XAccessController.idl create mode 100644 udkapi/com/sun/star/security/XAction.idl create mode 100644 udkapi/com/sun/star/security/XPolicy.idl create mode 100644 udkapi/com/sun/star/task/XInteractionAbort.idl create mode 100644 udkapi/com/sun/star/task/XInteractionContinuation.idl create mode 100644 udkapi/com/sun/star/task/XInteractionHandler.idl create mode 100644 udkapi/com/sun/star/task/XInteractionHandler2.idl create mode 100644 udkapi/com/sun/star/task/XInteractionRequest.idl create mode 100644 udkapi/com/sun/star/task/XInteractionRetry.idl create mode 100644 udkapi/com/sun/star/uno/DeploymentException.idl create mode 100644 udkapi/com/sun/star/uno/Exception.idl create mode 100644 udkapi/com/sun/star/uno/NamingService.idl create mode 100644 udkapi/com/sun/star/uno/RuntimeException.idl create mode 100644 udkapi/com/sun/star/uno/SecurityException.idl create mode 100644 udkapi/com/sun/star/uno/TypeClass.idl create mode 100644 udkapi/com/sun/star/uno/Uik.idl create mode 100644 udkapi/com/sun/star/uno/XAdapter.idl create mode 100644 udkapi/com/sun/star/uno/XAggregation.idl create mode 100644 udkapi/com/sun/star/uno/XComponentContext.idl create mode 100644 udkapi/com/sun/star/uno/XCurrentContext.idl create mode 100644 udkapi/com/sun/star/uno/XInterface.idl create mode 100644 udkapi/com/sun/star/uno/XNamingService.idl create mode 100644 udkapi/com/sun/star/uno/XReference.idl create mode 100644 udkapi/com/sun/star/uno/XUnloadingPreference.idl create mode 100644 udkapi/com/sun/star/uno/XWeak.idl create mode 100644 udkapi/com/sun/star/uri/ExternalUriReferenceTranslator.idl create mode 100644 udkapi/com/sun/star/uri/RelativeUriExcessParentSegments.idl create mode 100644 udkapi/com/sun/star/uri/UriReferenceFactory.idl create mode 100644 udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTexpand.idl create mode 100644 udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTscript.idl create mode 100644 udkapi/com/sun/star/uri/VndSunStarPkgUrlReferenceFactory.idl create mode 100644 udkapi/com/sun/star/uri/XExternalUriReferenceTranslator.idl create mode 100644 udkapi/com/sun/star/uri/XUriReference.idl create mode 100644 udkapi/com/sun/star/uri/XUriReferenceFactory.idl create mode 100644 udkapi/com/sun/star/uri/XUriSchemeParser.idl create mode 100644 udkapi/com/sun/star/uri/XVndSunStarExpandUrl.idl create mode 100644 udkapi/com/sun/star/uri/XVndSunStarExpandUrlReference.idl create mode 100644 udkapi/com/sun/star/uri/XVndSunStarPkgUrlReferenceFactory.idl create mode 100644 udkapi/com/sun/star/uri/XVndSunStarScriptUrl.idl create mode 100644 udkapi/com/sun/star/uri/XVndSunStarScriptUrlReference.idl create mode 100644 udkapi/com/sun/star/util/BootstrapMacroExpander.idl create mode 100644 udkapi/com/sun/star/util/MacroExpander.idl create mode 100644 udkapi/com/sun/star/util/XMacroExpander.idl create mode 100644 udkapi/com/sun/star/util/XVeto.idl create mode 100644 udkapi/com/sun/star/util/theMacroExpander.idl (limited to 'udkapi/com/sun') 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. + +

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.

+ */ +struct Ambiguous { + /** + The underlying value of this structure instance. + +

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.

+ */ + 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. + +

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.

+ */ +struct Defaulted { + /** + The underlying value of this structure instance. + +

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.

+ */ + 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. + +

The value is undefined if Result is not + com::sun::star::beans::TolerantPropertySetResultType::SUCCESS.

+ */ + com::sun::star::beans::PropertyState State; + + + /** contains the value of the property. + +

The value is undefined if Result is not + com::sun::star::beans::TolerantPropertySetResultType::SUCCESS.

+ */ + 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. + +

This problem can occur, if you use an `any`.

+ @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 + +

This exception isn't specified and used anywhere

+ */ +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. + +

This list is not necessarily complete; new constants + may be added.

+ @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. + +

These methods have the signature type get...() + , void set...() or boolean is...() + .

+ */ + const long PROPERTY = 2; + + /** specifies methods of the listener concept. + +

These methods have the signature add...Listener() + or remove...Listener().

+ */ + const long LISTENER = 4; + + /** specifies methods of the enumeration concept. + +

These methods have the signature + create...Enumeration 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.

+ */ + const long ENUMERATION = 8; + + /** specifies methods of the name container concept. + +

These methods have the signature + get...ByName(), + set...ByName(), + replace...ByName(), + remove...ByName(), + has...ByName(), or + get...Names. In addition, the method + com::sun::star::container::XEnumerationAccess::getElementType() + belongs to this concept.

+ */ + const long NAMECONTAINER = 16; + + /** specifies methods of the index container concept. + +

These methods have the signature + get...ByIndex(), + insert...ByIndex(), + replace...ByIndex(), or + remove...ByIndex(). + The method com::sun::star::container::XIndexAccess::getCount() + also belongs to this concept.

+ */ + 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. + +

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.

+ */ +struct Optional { + /** + Marks this structure instance as having an actual value. + */ + boolean IsPresent; + + /** + The actual value of this structure instance. + +

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.

+ */ + 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. + +

+ This structure allows for conveniently packing together two values of + any type, and could be useful as the result type of methods. +

+ + @since OOo 3.0 + */ +struct Pair { + + /// 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. + +

The name is unique within an XPropertySet. + Upper and lower case are distinguished.

+ */ + string Name; + + + /** contains an implementation-specific handle for the property. + +

It may be -1 if the implementation has no handle. You can use + this handle to get values from the XFastPropertySet.

+ */ + long Handle; + + + /** contains an object that identifies the declared type for + the property. + +

If the property has multiple types or the type is not + known, but not an `any`, then + void must be returned.

+ */ + 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. + +

It does not mean that the type of the property is void!

+ */ + 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. + +

This always implies that the property is bound, too.

+ */ + 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. + +

This attribute is not of interest for concrete property + implementations. It's needed for property specifications inside + service specifications in UNOIDL.

+ + @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. + +

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 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. + +

A PropertyChangeEvent object is sent as an + argument to the methods of XPropertyChangeListener + and XVetoableChangeListener.

+ +

Normally such events contain the name and the old and new + value of the changed property.

+ +

Void values may be provided for the old and new values if their + true values are not known.

+ */ +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. + +

May be -1 if the implementation has no handle. You can use + this handle to get values from the XFastPropertySet.

+ */ + 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. + +

This list is not necessarily complete; new constants + may be added.

+ + @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. + +

These methods have the signature type get...(), + void set...() or boolean is...().

+ */ + 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. + +

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. + +

A PropertySetInfoChangeEvent object is sent + to XPropertySetInfoChangeListeners.

+ */ +published struct PropertySetInfoChangeEvent: com::sun::star::lang::EventObject +{ + + /** contains the name of the property. + */ + string Name; + + + /** contains the implementation handle for the property. + +

May be -1 if the implementation has no handle.

+ */ + 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. + +

The state consists of two aspects:

+
    +
  1. whether a value is available or void,
  2. +
  3. whether the value is stored in the property set itself or is a + default, or ambiguous.
  4. +
+ + @see XPropertyState + @see Property + */ +published enum PropertyState +{ + + /** The value of the property is stored in the PropertySet itself. + +

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.

+ */ + DIRECT_VALUE, + + + /** The value of the property is available from a master (e.g., template). + +

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.

+ */ + 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). + +

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.

+ */ + 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. + +

It is sent as an argument to the method of + XPropertyStateChangeListener.

+ +

Normally these events are accompanied by the name, and the old + and new values of the changed property.

+ +

Void values may be provided for the old and new values if their + true values are not known.

+ */ +published struct PropertyStateChangeEvent: com::sun::star::lang::EventObject +{ + + /** specifies the name of the property which changes its value. + +

This name identifies the property uniquely within an + XPropertySet. Upper and lower case are distinguished.

+ */ + string PropertyName; + + + /** contains the implementation handle for the property. + +

It may be -1 if the implementation has no handle. You can use this + handle to get values from the XFastPropertySet + interface.

+ */ + 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. + +

The name is unique within a sequence of PropertyValues. + Upper and lower case are distinguished.

+ */ + string Name; + + + /** contains an implementation-specific handle for the property. + +

It may be -1 if the implementation has no handle. If available + it can be used for fast lookups.

+ */ + 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. + +

Such sequences are especially useful for remote interfaces.

+*/ +published typedef sequence 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. + +

Since the property was not successful set the result will never be + com::sun::star::beans::TolerantPropertySetResultType::SUCCESS. +

+ + @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. + +

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.

+*/ +constants TolerantPropertySetResultType +{ + /** the property has been successfully set or retrieved. + */ + const short SUCCESS = 0; + + /** the property is not available. + +

For example if a + com::sun::star::beans::UnknownPropertyException + was caught.

+ */ + const short UNKNOWN_PROPERTY = 1; + + /** the value used with the property is not valid. + +

For example if a + com::sun::star::lang::IllegalArgumentException + was caught.

+ */ + const short ILLEGAL_ARGUMENT = 2; + + /** the property could not be changed at that time. + +

For example if a + com::sun::star::beans::PropertyVetoException + was caught.

+ */ + 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. + +

One field of application is the conversion of case-insensitive + names to the existing names.

+ +

Example: A basic interpreter ignores the case of the names. So + it must query the XExactName interface and then call + the method.

+ + @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. + +

For example "getExactName" could be returned for "GETEXACTNAME" + when "GETEXACTNAME" was used by a case insensitive scripting language.

+ */ + 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. + +

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.

+ */ +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. + +

Usually an object that implements this interface + also implements XPropertySet and at + least some of the properties have subproperties.

+ +

This interface allows direct access to subsubproperties, ... + up to an arbitrary nesting depth. Often the intermediate + elements of the hierarchy implement XProperty.

+ +

Each implementation specifies how the + hierarchical property names, that are + used to access the elements of the hierarchy, + are formed.

+ +

Commonly a notation similar to filesystem paths + (separated by '/' slashes) or nested module names + (separated by dots '.' or '::') is used.

+ + */ +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 aValue is not a legal value for this property or + if aHierarchicalPropertyName 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 aHierarchicalPropertyName 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. + +

The specification only describes the properties, it does not contain + any values.

+ */ +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 aHierarchicalName 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 aHierarchicalName 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. + +

Important note:An object can only be + inspected completely if it supports the com::sun::star::lang::XTypeProvider + interface.

+ +

For details see method XIntrospection::inspect().

+ + @see XIntrospectionAccess + */ +published interface XIntrospection: com::sun::star::uno::XInterface +{ + /** inspects the given object. + +

It identifies all properties supported by the object + if they are represented in one of the following ways:

+ +
+
property set
+
If the object supports an XPropertySet + interface, all its properties are adopted. +
+ +
attributes
+
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. +
+ +
get/set methods
+
Every method RetType getX() 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 + void setX( [in] RetType ), the property + "X" also allows write access; otherwise it is read-only. +
+ +
Important note:
+
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(). +
+
+ +

In addition, the inspect method identifies all listener + access methods in the form add...Listener/ + remove...Listener (except methods of interface + XPropertySet) where "..." stands for the listener type. +

+ +

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.

+ + @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. + +

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()

+ +

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.

+ +

The XMaterialHolder interface has to be + supported to give access to the inspected object.

+ + @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. + +

The minimum supported concepts should be:

+ +
    +
  • MethodConcept::PROPERTY,
  • +
  • MethodConcept::LISTENER,
  • +
  • MethodConcept::ENUMERATION,
  • +
  • MethodConcept::NAMECONTAINER
  • +
  • MethodConcept::INDEXCONTAINER;
  • +
+ + @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. + +

The minimum supported concepts should be:

+ +
    +
  • PropertyConcept::PROPERTYSET,
  • +
  • PropertyConcept::ATTRIBUTES and
  • +
  • PropertyConcept::METHODS.
  • +
+ + @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 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 getMethods( + [in] long nMethodConcepts ); + + /** returns the listener types supported by the introspected + object. + +

If the introspected object has the methods + addFooListener( XFooListener xFoo ) and + removeFooListener( XFooListener xFoo ) + 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 getSupportedListeners(); + + /** creates an adapter that implements an interface with the + specified type. + +

To access properties, query for the XPropertySet + interface. If the XPropertySet can + be queried, the XFastPropertySet interface + must be supported too.

+ +

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.

+ +

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.

+ +

If the introspected object implements an enumeration + container, the introspection should return the + com::sun::star::container::XEnumerationAccess interface.

+ +

If the introspected object implements the + com::sun::star::reflection::XIdlArray interface, + the introspection should return this.

+ +

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. +

+ + @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. + +

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.

+ + @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. + +

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.

+ +

Unknown properties are ignored.

+ + @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 aHierarchicalPropertyNames, + [in] sequence 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. + +

The order of the values in the returned sequence will be the same + as the order of the names in the argument.

+ +

Unknown properties are ignored, in their place `NULL` will be returned.

+ + @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 getHierarchicalPropertyValues( [in] sequence 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. + +

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.

+ + @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 aPropertyNames. + + @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 aPropertyNames, + [in] sequence 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. + +

The order of the values in the returned sequence will be the same + as the order of the names in the argument.

+ + @param aPropertyNames + specifies the names of the properties. + This sequence must be alphabetically sorted. + */ + sequence getPropertyValues( [in] sequence aPropertyNames ); + + + /** adds an XPropertiesChangeListener to the + specified property with the specified names. + +

The implementation can ignore the names of the properties + and fire the event on all properties.

+ +

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 aPropertyNames, + [in] com::sun::star::beans::XPropertiesChangeListener xListener ); + + + /** removes an XPropertiesChangeListener from the listener list. + +

It is a "noop" if the listener is not registered.

+ +

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 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. + +

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. + +

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 getPropertyStates( + [in] sequence aPropertyName ) + raises( com::sun::star::beans::UnknownPropertyException ); + + /** sets all properties to their default values. + +

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. +

+ */ + void setAllPropertiesToDefault(); + + /** sets the specified properties to their default values. + +

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.

+ + @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 aPropertyNames ) + raises( com::sun::star::beans::UnknownPropertyException ); + + /** @returns + the default values of the properties with the specified names. + +

If no default exists, is not known, or is void, + then the return type at the corresponding position in the + sequence returned is `void`.

+ + @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 getPropertyDefaults( + [in] sequence 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 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 PropertyNames, + [in] com::sun::star::beans::XPropertiesChangeListener Listener ); + + + /** removes an XPropertiesChangeListener from the + listener list. + */ + void removePropertiesChangeListener( + [in] sequence 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. + +

Provides access to traits of this object that would + otherwise only be available from a containing + XPropertySet via its + XPropertySetInfo. +

+ + */ +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. + +

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.

+ +

Another advantage of this method is that conflicts are avoided + if property value restrictions depend on the value of other properties.

+ */ +published interface XPropertyAccess: com::sun::star::uno::XInterface +{ + + /** @returns + a sequence of all property values within the object in a single call. + */ + sequence getPropertyValues(); + + + /** sets the values of given properties. + +

All properties which are not contained in the sequence + aProps will be left unchanged.

+ */ + void setPropertyValues( [in] sequence 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. + +

Some scripting engines cannot access properties directly when the + property set is changed. Please use XPropertySet::getPropertyValue() + etc. in this case.

+ */ +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. + +

There are three types of properties:

+ +
    +
  • bound properties
  • +
  • constrained properties
  • +
  • free properties
  • +
+ +

You can listen to changes of bound properties with the + XPropertyChangeListener and you can veto changes + of constrained properties with the XVetoableChangeListener.

+ +

To implement inaccurate name access, you must support the + interface XExactName.

+ + @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. + +

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.

+ + @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. + +

An empty name ("") registers the listener to all bound + properties. If the property is not bound, the behavior is + not specified.

+ +

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. + +

It is a "noop" if the listener is not registered.

+ +

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. + +

An empty name ("") registers the listener to all + constrained properties. If the property is not constrained, + the behavior is not specified.

+ + @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. + +

It is a "noop" if the listener is not registered.

+ + @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. + +

There are three kinds of properties: +

    +
  • bound properties
  • +
  • constrained properties
  • +
  • free properties
  • +
+ +

The specification only describes the properties, it does not contain + any values.

+ */ +published interface XPropertySetInfo: com::sun::star::uno::XInterface +{ + + /** @returns + a sequence with all property descriptors which are specified + within this XPropertySetInfo. + */ + sequence 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. + +

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. + +

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. + +

The state contains the information if:

+
    +
  • a value is available or void
  • +
  • the value is stored in the object itself, or if a default value is to be used
  • +
  • and if the value cannot be determined, due to ambiguity + (multi selection with multiple values).
  • +
+ */ +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. + +

The order of the states is correlating to the order of the + given property names.

+ + @param aPropertyName + contains the sequence of property names. + + @throws UnknownPropertyException + if one property does not exist. + */ + sequence getPropertyStates( + [in] sequence aPropertyName ) + raises( com::sun::star::beans::UnknownPropertyException ); + + + /** Sets the property to default value. + +

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. +

+ + @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. + +

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. + +

This interface provides direct access to operations + that are available if the containing property set + implements XPropertyState. +

+ +

The state contains the information if:

+
    +
  • a value is available or void
  • +
  • the value is stored in the object itself, or if a default value is being used
  • +
  • or if the value cannot be determined, due to ambiguity + (multi selection with multiple values).
  • +
+ +

Generally objects that implement this interface + also implement XProperty. +

+ */ +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. + +

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. +

+ + @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). + +

If no default exists, is not known or is void, + then the return value is `NULL`. +

+ + @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. + +

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.

+ +

Note: There is no support for property change listeners in this + interface.

+ + @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. + +

If the names are not sorted the behaviour of the method + is undefined!

+ + @param aValues + specifies the values of the properties. + The order of the values has to be the same as in the + aPropertyNames 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 + +

The count and order of the values in the returned sequence + will be the same as the order of the names in the argument.

+ + @param aPropertyNames + specifies the names of the properties. + The property names must be sorted ascending. + +

If the names are not sorted the behaviour of the method + is undefined!

+ + @returns + a sequence of type + com::sun::star::beans::GetPropertyTolerantResult + for each of the properties listed in aPropertyNames. + */ + sequence< com::sun::star::beans::GetPropertyTolerantResult > getPropertyValuesTolerant( + [in] sequence< string > aPropertyNames ); + + + + /** retrieve only those values of the specified properties which + are direct values. + +

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.

+ + @param aPropertyNames + specifies the names of the properties. + The property names must be sorted ascending. + +

If the names are not sorted the behaviour of the method + is undefined!

+ + @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. + +

You can register an XVetoableChangeListener with + a source object so as to be notified of any constrained property updates.

+ */ +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. + +

Important note:An object can only be inspected + completely if it supports the com::sun::star::lang::XTypeProvider + interface.

+ +

For details, see method XIntrospection::inspect().

+ + @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. + +

Components, that support a certain protocol, must have at least two + service names:

+ +
    +
  • com.sun.star.bridge.Bridge
  • +
  • arbitrary-module-path.ProtocolnameBridge
  • +
+ +

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.: + com.sun.star.bridge.UrpBridge 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.

+ */ +published service Bridge +{ + /** allows to initialize the bridge service with the necessary + arguments. The sequence<any> must have 4 members. + +
    +
  1. String: The unique name of the bridge or an empty string
  2. +
  3. String: The protocol, that shall be instantiated
  4. +
  5. XConnection: The bidirectional connection, the bridge should work on
  6. +
  7. XInstanceProvider: + The instance provider, that shall be called to access the initial object.
  8. +
+ */ + 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. + +

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. + +

This bridge works with the iiop protocol.

+ + @see com::sun::star::bridge::Bridge + */ +published service IiopBridge +{ + /** This interface allows to initialize the bridge service with the necessary + arguments. The sequence<any> must have 4 members. + +
    +
  1. String: The unique name of the bridge or an empty string
  2. +
  3. String: iiop
  4. +
  5. XConnection: The bidirectional connection, the bridge should work on
  6. +
  7. XInstanceProvider: + The instance provider, that shall be called to access the initial object.
  8. +
+ */ + 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. + +

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. + +

+ 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.

+ 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++. +

+ 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. +

+ +

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.

+

+ @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. + +

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.

+ @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.

+ + The XBridgeSupplier2 interface provides the function createBridge 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 createBridge. The same holds true if an automation + object is mapped to a UNO interface.
+

The Automation types VT_CY and VT_DATE 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. + +

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.

+ + @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.

+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. + +

A COM object must have a ProgId since the ProgId is used as argument for + XMultiServiceFactory::createInstance. The only interfaces which are mapped + are IUnknown and IDispatch. + The created UNO objects support com::sun::star::script::XInvocation + if the original COM objects support IDispatch.

+ +

The optional parameters of the method + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + are reserved for future use; at this time they are ignored.

+ + @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. +
+ */ +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. + +

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<any> must have 4 members. + +

    +
  1. String: The unique name of the bridge or an empty string
  2. +
  3. String: urp
  4. +
  5. XConnection: The bidirectional connection, the bridge should work on
  6. +
  7. XInstanceProvider: + The instance provider, that shall be called to access the initial object.
  8. +
+ */ + 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. + +

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.

+ + @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). +

+ 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. +

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. + +

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.

+ +

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:

+ +
+
UNO:
+
The any carries normal UNO types, which can be any base type, + struct, sequence, enum, or interface.
+ +
OLE:
+
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.
+ +
JAVA:
+
not yet specified.
+
+ +

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.

+ + @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. + +

+ 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. +

+

+ Simple types are mapped to simple target types. That is, there is no additional + bridging code involved when those types are being used. +

+ +

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. +

+

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:

+ +
+
UNO:
+
The any carries normal UNO types, which can be any base type, + struct, sequence, enum or interface.
+ +
OLE:
+
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.
+ +
JAVA:
+
not specified yet.
+
+ +

+

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.

+ + @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. + +

In general, this interface is implemented by the bridge itself. It must not + be called from outside the bridge.

+ +

INTERNAL INTERFACE, DO NOT USE IT ELSEWHERE!

+*/ +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. + +

The properties MUST NOT change between a requestChange and a commit change call.

+ */ + sequence< ProtocolProperty > getProperties( ); + + /** called to initiate a protocol change. + +

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).

+ + @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. + +

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.

+ +

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.

+ + @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 + here. + + @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. +

+ 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. +

+

+ 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++. +

+

+ 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. +

+

+ 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. +

+ */ +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. +

+ 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 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 + com::sun::star::bridge::XBridgeSupplier2::createBridge(). + The same holds true if an automation object is mapped to a UNO interface. +

+

+ 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. +

+

+ 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. +

+*/ +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 CY, also know + as CURRENCY. +

+ A CY 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 long in Java. + The information that the long is a currency type is lost. +

+

+ When calling Automation objects from UNO the distinction between + `hyper` and a currency type is important. Therefore + Currency is declared as struct. +

+ + @since OOo 1.1.2 + */ +struct Currency +{ + /** corresponds to the Automation type CY. + */ + 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 DATE. +

+ A DATE 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 double in Java. + The information that the `double` is a date type is lost. +

+

+ When calling Automation objects from UNO the distinction between + `double` and date type is important. Therefore Date + is declared as struct. +

+ + @since OOo 1.1.2 + */ +struct Date +{ + /** corresponds to the Automation type DATE. + */ + 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 DECIMAL. + + + @since OOo 1.1.2 + */ +struct Decimal +{ + /** corresponds to DECIMAL.scale. + */ + byte Scale; + + /** corresponds to DECIMAL.sign. + */ + byte Sign; + + /** corresponds to DECIMAL.Lo32. + */ + unsigned long LowValue; + + /** corresponds to DECIMAL.Mid32. + */ + unsigned long MiddleValue; + + /** corresponds to DECIMAL.Hi32. + */ + 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. + +

+ 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 IUnknown and + IDispatch. The created UNO objects support + com::sun::star::script::XInvocation if the original COM + objects support IDispatch. +

+

+ The optional parameters of the method + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + are reserved for future use; at this time they are ignored. +

+ */ +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. +

+ 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. +

+ + @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 "property put" + operation on an Automation object. +

+ 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 { + +/**

is the UNO representation of the Automation type SCODE. +

+

+ A SCODE 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 int in Java. The information that the + int is an error type is lost. +

+

+ When calling Automation objects from UNO the distinction between error type + and `long` is important. Therefore the Scode is + declared as struct. +

+ + @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. +

+ 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. +

+ 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. +

+ 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 +

+    host = (hostname | IPaddress)[:portrange]
+    portrange = portnumber | -portnumber | portnumber-[portnumber]
+    
+ The host is expressed as a DNS name, as a numerical IP address, or as + "localhost" (for the local machine). The wildcard "*" + may be included once + in a DNS name host specification. If it is included, it must be in the + leftmost position, as in "*.sun.com". +
+ The port or portrange is optional. A port specification of the form "N-", + where N is a port number, signifies all ports numbered N and above, + while a specification of the form "-N" indicates all ports numbered + N and below. + +

+ The possible ways to connect to the host are +

    +
  • accept
  • +
  • connect
  • +
  • listen
  • +
  • resolve
  • +

+ The "listen" action is only meaningful when used with "localhost". + The "resolve" (resolve host/ip name service lookups) action is implied when + any of the other actions are present. +
+ As an example of the creation and meaning of SocketPermissions, note that if + the following permission +
+SocketPermission("foo.bar.com:7777", "connect,accept");
+
+ is granted, it allows to connect to port 7777 on foo.bar.com, and to + accept connections on that port. +
+ Similarly, if the following permission +
+SocketPermission("localhost:1024-", "accept,connect,listen");
+
+ 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. +

+ + @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. +

+ + @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. + +

+ 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. +

+ 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., socket,host=localhost,port=2345 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. + +

You should additionally implement XConnection2. + + @see XConnection2 + */ +published interface XConnection: com::sun::star::uno::XInterface +{ + + /** reads a requested number of bytes from the connection. +

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). + +

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. +

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. + +

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".

+ */ + 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 XConnection interface + with available and readSomeBytes +*/ +published interface XConnection2: com::sun::star::connection::XConnection +{ + + /** Gives the number of bytes available via read + without blocking. + */ + long available() raises(com::sun::star::io::IOException); + + /** Blocks if no data is available otherwise reads at + max nMaxBytesToRead but at least 1 byte. +

+ */ + long readSomeBytes([out] sequence 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. +

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. + +

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. + +

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. +

+ 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., socket,host=localhost,port=2345 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. + +

The type and the value of the accessor depends on the service.

+ */ + 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. + +

Probably not the same element is already a member, when this exception + is thrown, but a member with the same id or name.

+ + @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 + +

For the keys put into the map using XMap::put() or createImmutable(), + the following rules apply: + +

  • A `VOID` key is not allowed.
  • +
  • If the key type is BOOLEAN, CHAR, FLOAT, DOUBLE, + STRING, TYPE, or UNSIGNED HYPER, then only keys of exactly this + type are accepted.
  • +
  • If the key type is DOUBLE or FLOAT, then Double.NaN respectively + Float.NaN is not accepted as key.
  • +
  • If the key type's class is com::sun::star::uno::TypeClass::ENUM, then only keys + of exactly this type are accepted.
  • +
  • If the key type is any of BYTE, SHORT, UNSIGNED SHORT, + LONG, UNSIGNED LONG, or HYPER, then all keys which can losslessly + be converted to this type (possibly using widening conversions) are accepted.
  • +
  • If the key type is an interface type, then all key values denoting objects which can be queried for + the given interface are accepted.
  • +
  • All other key types are rejected.
  • +

+ +

For the values put into the map using XMap::put() or createImmutable(), + the following rules apply: + +

  • The `VOID` value will be accepted to be put into the map.

    +
  • If the value type's class is com::sun::star::uno::TypeClass::ANY, any value + will be accepted.
  • +
  • If the value type is an interface type, then all values denoting objects which can be queried for + the given interface are accepted.
  • +
  • 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.
  • +
  • For all other value types, only values whose type matches exactly are accepted.
  • +
  • If the value type is DOUBLE or FLOAT, then Double.NaN respectively + Float.NaN is not accepted.
  • +

+ +

The factory methods of the XEnumerableMap interface support both isolated + and non-isolated 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.

+ + @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 + +

The resulting map is immutable, so later alter operations on it will fail + with a com::sun::star::lang::NoSupportException.

+ + @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.
+ 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 key rules or + value rules. + */ + 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. + +

This interface normally is only supported if the objects all have + exactly one dedicated parent container.

+ */ +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. + +

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.

+ +

This can be useful for UI to enable/disable some functions + without actually accessing the data.

+ + @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. + +

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. + +

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 + +

+ This interface makes it possible to create sub sets of container items + which serve specified search criterion. +

+ */ +published interface XContainerQuery: com::sun::star::uno::XInterface +{ + /** creates a sub set of container items which match given query command + +

+ 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. +

+ + @param Query items of sub set must match to this query
+ example:
+ (1)
+ query as parameter sequence to return all elements which match + the name pattern and supports a special feature; sort it ascending
+ "name=*myname_??_;sort=ascending;feature=VISIBLE"
+ (2)
+ query as command to return all elements which support special feature + and match by name pattern;ascending sort is the default
+ "getAllVisible(*myname_??_)"
+ + @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 + +

+ 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. +

+ + @param Properties items of sub set must support given properties as minimum
+ example:
+ (supported)
+ search for items which match the name pattern and supports the VISIBLE feature
+ Parameters[0].Name = "name"
+ Parameters[0].Value = "*myname_??_"
+ Parameters[1].Name = "feature"
+ Parameters[1].Value = "VISIBLE"
+ ...
+ (unsupported)
+ "sort" isn't a property of a container item! + Parameters[0].Name = "sort"
+ Parameters[0].Value = "ascending"
+ ...
+ + @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. + +

This example prints the names of all tables:

+ + @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. + +

XContentEnumerationAccess::createContentEnumeration() + creates an enumeration for all the service names which are + listed here. For all others it creates no enumeration.

+ */ + sequence 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. + +

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 XMap implementation to make use of a possibly existing strict ordering + defined on the domain of all possible key values.

+ +

You can create enumerators for the keys of the map, its values, and its key-value pairs.

+ +

In all cases, you can create an isolated 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.

+ +

On the contrary, an enumerator which is non-isolated works directly on the map data. + This is less expensive than an isolated 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 XEnumerableMap interface + to specify it in more detail.

+ +

Implementations of this interface might decide to support only isolated enumerators, or + only non-isolated 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.

+ */ +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 + +

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.

+ + @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. + +

An object that implements the XEnumeration interface + generates a series of elements, one at a time. Successive calls to + the XEnumeration::nextElement method return successive + elements of the series.

+ +

For example (Java), to print all elements of a vector aVect: +

+ + @code{.java} + for (XEnumeration xEnum = aVect.elements() ; xEnum.hasMoreElements() ; ) + { + System.out.println( xEnum.nextElement() ); + } + @endcode + + +

If the object changed, the behavior of the enumeration is + not specified. This is not a remote interface.

+ */ +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. + +

The name is generally globally unique in the hierarchy.

+ + @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 + +

Can be used to find the name of a descendant object in the hierarchy + without actually accessing it.

+ + @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. + +

You address an object of a specific level in the hierarchy by giving its + fully qualified name, e.g., "com.sun.star.uno.XInterface".

+ +

To implement inaccurate name access, support the + com::sun::star::beans::XExactName interface.

+ + @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. + +

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. + +

The order of the identifiers is not specified.

+ */ + sequence 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 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. + +

This interface should only be used if the data structure, itself, + is indexed.

+ */ +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. + +

To append an element, use the index "last index +1".

+ */ + 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. + +

Keys in the map are unique, and each key maps to exactly one value.

+ +

Locating elements in the map, both values and keys, requires a notion of equality of two objects. + In conformance with the UNO type system, + 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.

+ + @see Map for a default implementation of this interface +*/ +interface XMap +{ + interface XElementAccess; + + /** denotes the type of the keys in the map. + +

Implementations are free to accept any supertype of KeyType as keys.

+ */ + [attribute, readonly] type KeyType; + + /** denotes the type of the values in the map. + +

Implementations are free to accept any supertype of the ValueType as values.

+ */ + [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 XMap interface to specify which special values are not + supported. For instances, implementations might decide to not allow `VOID` keys, or + to reject Double.NaN (not a number) 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 XMap interface to specify which special values are not + supported. For instances, implementations might decide to not allow Double.NaN + (not a number) 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 XMap interface to specify which special values are not + supported. For instances, implementations might decide to not allow `VOID` keys, or + to reject Double.NaN (not a number) 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 + +

If the map already contains a mapping for the given key, then the old value is replaced by the + given new value.

+ + @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 XMap interface to specify which special values + are not supported.
+ For instances, implementations might decide to not allow `VOID` keys or values, or to + reject Double.NaN (not a number) 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 XMap interface to specify which special values are not + supported. For instances, implementations might decide to not allow `VOID` keys, or + to reject Double.NaN (not a number) 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. + +

To implement inaccurate name access, support the + com::sun::star::beans::XExactName + interface.

+ @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. + +

The order of the names is not specified.

+ */ + sequence getElementNames(); + + + /** @returns + `TRUE` if an element with this name is in + the container, `FALSE` otherwise. + +

In many cases the next call is XNameAccess::getByName(). + You should optimize this case.

+ + @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. + +

The name is generally unique in the container of the object.

+ */ +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. +

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.) +

+ */ +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. +

+ 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. + +

+ 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. +

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. +///

+/// The path of the file url that ends in "/*" indicates all the files and +/// directories contained in that directory. A path that ends with "/-" +/// indicates (recursively) all files and subdirectories contained in that +/// directory. A file url string consisting of the special token +/// "<>" matches any file. +///
+/// Note: A file url string consisting of a single "*" indicates all the files +/// in the current directory, while a string consisting of a single "-" indicates +/// all the files in the current directory and (recursively) all files and +/// subdirectories contained in the current directory. +///
+/// The actions to be granted is a list of one or more comma-separated keywords. +/// The possible keywords are "read", "write", +/// "execute", and "delete". +/// Their meaning is defined as follows: +///

    +///
  • read -- read permission
  • +///
  • write -- write permission
  • +///
  • execute -- execute permission
  • +///
  • delete -- delete permission
  • +///

+/// The actions string is processed case-insensitive. +///

+/// +/// @attention +/// Be careful when granting FilePermissions. Think about the implications of +/// granting read and especially write access to various files and directories. +/// The "<>" 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. +

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.

+ */ +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. +

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.

+ */ +published service MarkableOutputStream +{ + /** allows to write data at the current position. +

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. + +

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.

+

The written objects are held until this instance is destroyed. + The references to the objects are read as four-byte integers. + Data format reads:

+ +
+    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
+    
+ + @note +
    +
  • -thread safe
  • +
  • -allow buffer size is 2 ^ 31 -1
  • +
  • -maximum object reference identifier must be the number of objects.
  • +
  • -object reference identifier 0 indicates no object
  • +
  • -skip addition data
  • +
  • -set the stream position behind the object data
  • +
+ */ +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. + +

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:

+
+    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
+    
+ + @note +
    +
  • -thread safe
  • +
  • -allow buffer size is 2 ^ 31 -1
  • +
  • -maximum object reference identifier is the number of objects.
  • +
  • -object reference identifier 0 indicates no object
  • +
+ */ +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. +

+ 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. + +

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. +

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.

+ + */ +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 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(). + +

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(). + +

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 EOF is reached during reading a datatype + (long, string, 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 (string 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. + +

This interface should be supported by objects which implement + XActiveDataSource or XActiveDataSink.

+ */ +published interface XActiveDataControl: com::sun::star::uno::XInterface +{ + /** registers an object to receive events from this data source. +

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. + +

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. + +

Either XActiveDataControl::setInputStream() or + XActiveDataControl::setOutputStream() must be called beforehand. +

+ +

This method does not block the thread, so reading is + generally not finished when the method returns.

+ */ + void start(); + + /** does a weak abort. + +

It closes all connected resources and calls + XInputStream::close() or + XOutputStream::close() and fires the + XStreamListener::terminated()-event.

+ */ + 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. + +

If you want to allow control from outside, also implement the + XActiveDataControl interface.

+ */ +published interface XActiveDataSink: com::sun::star::uno::XInterface +{ + /** plugs the input stream. + +

If XConnectable is also implemented, this + method should query aStream for an + XConnectable and connect both.

+ */ + 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. + +

If XConnectable is also implemented, this + method should query aStream for a + XConnectable and connect both. +

+ */ + 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. + + +

If you want to allow control from outside, also implement the + XActiveDataControl interface.

+ */ +published interface XActiveDataStreamer: com::sun::star::uno::XInterface +{ + /** plugs the input/output stream. + +

If XConnectable is also implemented, this + method should query aStream for a + XConnectable and connect both.

+ */ + 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. + +

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().

+ + @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. + +

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 flush are rather vague, + waitForCompletion has very specific semantics—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 flush should + give this guarantee).

+ + @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 + writeBytes 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. + +

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.)

+

This interface allows generic services to navigate between + arbitrary elements of a connection.

+ */ +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. + +

Exporter objects are registered for specific components and data types. +

+ */ +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. + +

Importer objects are registered for specific components and data types.

+ */ +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. +

+ See the + streaming document 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. + +

The return value specifies the number of bytes which have been + put into the sequence. A difference between nBytesToRead + 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.

+ + @param aData + after the call, the byte sequence contains the requested number + of bytes (or less as a sign of EOF). +
+ 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 +
    +
  1. neither caller nor callee keep a second reference to the same + sequence. +
  2. the sequence is pre-allocated with the requested number of bytes. +
  3. the same sequence is reused (simply preallocating a new + sequence for every call bears no advantage). +
  4. the call is not bridged (e.g., between different compilers + or different processes). +
+
+ 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 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 + nMaxBytesToRead. + +

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 aData, + [in] long nMaxBytesToRead ) + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::BufferSizeExceededException, + com::sun::star::io::IOException ); + + /** skips the next nBytesToSkip bytes (must be positive). + +

It is up to the implementation whether this method is + blocking the thread or not.

+ + @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. + +

Note: This method offers no information on whether the EOF + has been reached.

+ */ + long available() + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::IOException + ); + + /** closes the stream. + +

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.)

+ */ + 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. + +

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.

+*/ +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(). + +

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.

+ */ + 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. +

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 + +

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. +

+ See the + streaming document 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 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. + +

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.

+ */ + 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. + +

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.

+ */ + 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 + +

Every UNO object, that wants to be serializable, should implement + this interface. The object stores stores itself, when the + write method is called. +

+ 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. + +

The serialization format (the series of strings, integers, objects) must + be specified at the specification of the concrete service. + +

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 + +

This name is used to create such an object by a factory + during deserialization.

+ + @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. +

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. +

In case + other XPersistObjects are read from the stream, the implementation uses a factory + to create these objects (in general the global service manager). +

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. +

+ 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. + +

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. + +

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. + + +

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.

+ + @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. + +

The termination could be done using the method + XActiveDataControl::terminate().

+ */ + void closed(); + + /** gets called when XActiveDataControl::terminate() is called. + */ + void terminated(); + + /** gets called when an internal error in source or sink has occurred. + +

After the method is called, the close is called on the + connected streams.

+ */ + 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. + +

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".

+ */ +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). + +

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.

+ + @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). + +

Important: 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.

+ + @see setEncoding + @see isEOF + */ + string readString( [in] sequence Delimiters, [in] boolean bRemoveDelimiter ) + raises( com::sun::star::io::IOException ); + + /** Returns the EOF status. + +

This method has to be used to detect if the end + of the stream is reached.

+

Important: + 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).

+ + @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. + +

This interfaces allows to write strings to a stream. + The character encoding to be used can be set by + setEncoding(). Default encoding is "utf8".

+ */ +published interface XTextOutputStream: com::sun::star::io::XOutputStream +{ + /** writes a string to the stream using the encoding + defined by setEncoding(). + +

Line breaks or delimiters that may be necessary + to support XTextInputStream::readLine() + and XTextInputStream::readString() + have to be added manually to the parameter string.

+ + @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. + +

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.

+ + @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.

+ 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

+ 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: +

+ com::sun::star::java::JavaDisabledException
+ com::sun::star::java::JavaNotConfiguredException
+ com::sun::star::java::MissingJavaRuntimeException
+ com::sun::star::java::JavaVMCreationFailureException
+ + @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.

+ 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

+ 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.

+ 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. + +

This method should be called every time a JNI function is called from Java.

+ */ + void registerThread(); + + + /** revokes the current thread from the list of registered threads. + +

This method should be called at the end of every JNI call from Java.

+ */ + 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 jvmaccess::VirtualMachine + and jvmaccess::UnoVirtualMachine 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. + +

If the VM is not already instantiated, it will be now.

+ +

If the processID is a normal 16-byte ID, the returned + `any` contains a JNI JavaVM pointer as a + `long` or `hyper` integer (depending on the + platform). If the processID does not match the current + process, or if the VM cannot be instantiated for whatever reason, a + `VOID` `any` is returned.

+ +

If the processID has an additional 17th byte of + value 0, the returned `any` contains a + non–reference-counted pointer to a (reference-counted) instance of + the C++ jvmaccess::VirtualMachine 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 + processID do not match the current process, or if the VM + cannot be instantiated for whatever reason, a `VOID` `any` + is returned.

+ +

If the processID has an additional 17th byte of + value 1, the returned `any` contains a + non–reference-counted pointer to a (reference-counted) instance of + the C++ jvmaccess::UnoVirtualMachine 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 processID do not match the + current process, or if the VM cannot be instantiated for whatever + reason, a `VOID` `any` is returned.

+ +

The first form (returning a JNI JavaVM pointer) is + mainly for backwards compatibility, new code should use the second form + (returning a pointer to a jvmaccess::VirtualMachine) if it + does not want to use the Java UNO environment, and it should use the + third form (returning a pointer to a + jvmaccess::UnoVirtualMachine) if it wants to use the Java + UNO environment. For example, one advantage of using + jvmaccess::VirtualMachine instead of the raw + JavaVM pointer is that whenever you attach a native thread + to the Java virtual machine, that thread's context + ClassLoader (see + java.lang.Thread.getContextClassLoader) will automatically + be set to a meaningful value.

+ + @param processID + The process ID of the caller's process, possibly extended by a 17th byte + of value 0 or 1. + + @return + On success, the `any` contains a pointer represented as + `long` or `hyper`, otherwise the `any` + is `VOID`. + */ + any getJavaVM( [in] sequence processID ); + + /** returns `TRUE` if the VM is started successfully, otherwise `FALSE`. + */ + boolean isVMStarted(); + + /** Returns `TRUE` if the VM is enabled. + +

It is only possible to get the VM, if this method return 0.

+ */ + 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. + +

The index is either negative or greater than or equal to + the size of the array.

+ */ +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. + +

The implementation normally should implement the + com::sun::star::lang::XComponent interface + to indicate this possibility.

+ */ +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. + +

This field is -1 if the position is not known.

+ */ + 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. + +

The index is either negative or greater than or equal to + the count of the elements.

+ */ +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. + +

An operation that requires a Locale to perform + its task is called locale-sensitive and uses the + Locale 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.

+ */ +published struct Locale +{ + /** specifies an ISO 639 Language Code. + +

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:
+ + https://iso639-3.sil.org/code_tables/639/data. +

+ +

If this field contains an empty string, the meaning depends on the + context.

+ +

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 "qlt" and + a BCP 47 language tag is present in the Variant + field.

+ */ + string Language; + + /** specifies an ISO 3166 Country Code. + +

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:
+ + https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2. +

+ +

If this field contains an empty string, the meaning depends on the + context.

+ */ + string Country; + + /** specifies a BCP 47 Language Tag. + +

Since LibreOffice 4.2, if the Language field + is the code "qlt" this field contains the full + BCP 47 language tag. If the Language field is not "qlt" this + field is empty.

+ +

You can find BCP 47 language tag resources at
+ + https://en.wikipedia.org/wiki/IETF_language_tag and + + https://www.w3.org/International/articles/language-tags/.

+ +

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 strongly deprecated. +

+ */ + 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. + +

The factories for instantiating objects of implementations + are accessed via a service name.

+ +

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.

+*/ +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. + +

An example is a setParent(...) method and the object + does not allow the change.

+ + @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. + +

Applications should throw instances of this class to indicate + other illegal uses of the `NULL` object.

+ + @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: +
    +
  1. a simple registry + (com::sun::star::registry::XSimpleRegistry), + i.e. the registry to be read from
  2. +
  3. 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.
  4. +
+ */ + 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 + /singletons/com.sun.star.lang.theServiceManager. + +

+ The factories are accessed with a service name. It is possible to + access the factories with their implementation names, but you should + avoid this. +

+ +

Service factories added via com::sun::star::container::XSet + should support the following interfaces:

+ +
+
XServiceInfo
+
supported interfaces/ implementation name
+ +
XSingleComponentFactory(optional)
+
is used to create instances of the implementation.
+ +
XComponent (optional)
+
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).
+
+ +

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 insert + and remove. The sequence elements must each have a + Name of uri and a string Value that + is the URI of a service rdb. It is legal for there to be no such + uri elements. For insert, there can additionally + be an optional element with a Name of + component-context 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. +

+ The component context disposes its service manager singleton when going down + (i.e. when the component context is disposed). +

+ */ + interface com::sun::star::lang::XComponent; + + /** Management of service factories. + */ + interface com::sun::star::container::XSet; + + /** Enumeration of all service factories. +

+ 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. +

+ */ + 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. + +

Applications should throw instances of this class to indicate + that a needed service is not registered.

+ */ +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. + +

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 + +

The Symbols are now prepended with SYSTEM_ thus we avoid collisions + with system headers.

+ + @see com::sun::star::awt::XSystemDependentWindowPeer + @deprecated + */ +published constants SystemDependent +{ + /** The called interface method returns a value specified for Windows. + +

These are Windows XP or higher.

+ */ + const short SYSTEM_WIN32 = 1; + + /** The called interface method returns a value specified for 16-bit Windows. + +

This is Windows 3.11.

+ */ + const short SYSTEM_WIN16 = 2; + + /** The called interface method returns a value specified for Java. + +

These are JRE 1.1, JRE 1.2, JDK 1.1, + JDK 1.2 or higher.

+ +

The return should be a handle to a Java object locked with + the call JavaEnvironment->NewGlobalRef( ... ) + by the callee.

+ */ + const short SYSTEM_JAVA = 3; + + /** The called interface method returns a value specified for OS/2. + */ + const short SYSTEM_OS2 = 4; + /** The called interface method returns a value specified for macOS. + */ + const short SYSTEM_MAC = 5; + + /** The called interface method returns a value specified for the X Window System. + */ + const short SYSTEM_XWINDOW = 6; + + /** The called interface method returns a value specified for iOS. + */ + const short SYSTEM_IOS = 7; + + /** The called interface method returns a value specified for Android. + */ + 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. + +

Normally this exception is declared for generic methods.

+ + @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. +

+ 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. + +

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. + +

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.

+ */ +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. + +

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 ). +

+

+ 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). +

+ +

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.

+ +

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. + +

The broadcaster fires the disposing method of this listener + if the XComponent::dispose() method is called.

+ +

It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed.

+ +

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.

+ + @see XComponent::removeEventListener + */ + void addEventListener( [in] XEventListener xListener ); + + /** removes an event listener from the listener list. + +

It is a "noop" if the specified listener is not registered.

+ +

It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + +

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.

+ + @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. + +

Connectable objects support the following features:

+ +
    +
  • outgoing interfaces, such as event sets;
  • +
  • the ability to enumerate the types of the outgoing interfaces; +
  • the ability to connect and disconnect sinks to the object + for those outgoing types;
  • +
  • the ability to enumerate the connections that exist to a + particular outgoing interface.
  • +
+ +

When to Implement?

+ +

To create a connectable object, you need to implement objects + that provide two related interfaces:

+ +
    +
  • XConnectionPointContainer
  • +
  • XConnectionPoint
  • +
+ +

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.

+ +

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().

+ +

When to use?

+ +

A client can use the XConnectionPointContainer interface:

+ + - 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. + +

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. + +

A few add...Listener 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.

+ + @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. + +

A few remove...Listener 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.

+ + @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 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. + +

An implementation of this interface must + support the com::sun::star::uno::XWeak interface. + Look at the language binding for a superclass or something else.

+ + @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 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. + +

The interface is advised under the connection point you + get with queryConnectionPoint( id ).

+ +

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.

+ + @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. + +

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() ). +

+ +

This method is called for every listener registration + of derived listener interfaced, not only for registrations + at XComponent.

+ */ + 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. + +

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.

+ +

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. +

+ + */ +published interface XInitialization: com::sun::star::uno::XInterface +{ + /** initializes the object. + +

It should be called directly after the object is created. + */ + void initialize( [in] sequence 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 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 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 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. + +

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.

+ */ +published interface XServiceDisplayName : ::com::sun::star::uno::XInterface +{ + /** returns the display name of the service for a given language. + +

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.

+ + @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 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 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 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 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 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. + +

+ Common usage: + Getting a C++ object pointer in the same process, thus to use an + implementation directly, most often because of a design flaw. +

+*/ +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 +

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. +

+ 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 UnoUrlResolver + 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 SingleServiceFactory 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 SingleServiceFactory + resolver = a UnoUrlResolver 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. +

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.

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. +

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 "protocol:", the implementation in general assumes, + that it is a relative file url.

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.
+ 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.
+ 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.
+ + @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 4.1; see there), this interface allows to + retrieve the following entities: +

    +
  • The simple types are accessible via "void", + "boolean", "byte", "short", + "unsigned short", "long", "unsigned + long", "hyper", "unsigned hyper", + "float", "double", "char", + "string", "type", and + "any".
  • + +
  • Sequence types are accessible via + "[]ComponentType"
  • + +
  • Instantiated polymorphic struct types are accessible via + "StructType<Parameter1,…,Parametern>".
  • + +
  • Members of interface types are accessible via + "InterfaceType::Member".
  • +
+ +

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 + "Struct<long>".)

+ */ + 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.
+ 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.
+ + 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. + +

Names are given in dotted notation, for example + "com.sun.star.uno.XInterface".

+ +

The returned values are generally non-null references of type + XTypeDescription. However, before LibreOffice 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. + "com.sun.star.uno.TypeClass.VOID", though this is probably + best treated as an implementation obscurity.)

+ */ + interface com::sun::star::container::XHierarchicalNameAccess; + + /** Interface to signal shutdown to the provider.
+ 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. + +

For struct types, this type is superseded by + XStructTypeDescription, which supports polymorphic struct + types.

+*/ +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. + +

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 UNKNOWN and whose name is the name of the + type parameter.

+ + @return + members of struct/exception + */ + sequence getMemberTypes(); + + /** Returns the member names of the struct/exception in IDL declaration order. + + @return + members names of struct/exception + */ + sequence 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. + +

The type class of this type is + com::sun::star::uno::TypeClass::CONSTANT. + +

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. + +

Following types are allowed for constants: +

    +
  • boolean +
  • byte +
  • short +
  • unsigned short +
  • long +
  • unsigned long +
  • hyper +
  • unsigned hyper +
  • float +
  • double +
+ */ + 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. + +

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 getEnumNames(); + + /** Returns the enum member names. + + @return + enum member names + */ + sequence 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 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 (xType). + + @param xType + another reflected type + @return + true, if values of this reflected type are assignable + from values of xType. + */ + 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. +
+ 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 getSuperclasses(); + + /** Deprecated. Do not call. + @deprecated + */ + sequence 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. +
+ 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. +
+ 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 getFields(); + + /** If the reflected type is an interface, then you get + a XIdlMethod interface reflecting the demanded method by name. +
+ 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. +
+ 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 getMethods(); + + /** If the reflected type is an array, then you get + a XIdlArray interface to modify instances of the array type. +
+ 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 any can not be passed using an any, because + anys cannot be nested. So if the reflected type is an any, 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 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. + +

When setting an interface attribute raises a + non com::sun::star::uno::RuntimeException, it is + wrapped in a com::sun::star::lang::WrappedTargetRuntimeException.

+ + @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). + +

When setting an interface attribute raises a + non com::sun::star::uno::RuntimeException, it is + wrapped in a com::sun::star::lang::WrappedTargetRuntimeException.

+ + @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 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 getParameterInfos(); + + /** Returns the declared exceptions types of the reflected method. + + @return + declared exception types of reflected method + */ + sequence 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 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. + +

This type is superseded by + XInterfaceAttributeTypeDescription2, which supports extended + attributes.

+ + 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. + +

This type supersedes XInterfaceAttributeTypeDescription, + which does not support extended attributes.

+ + @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 + raises 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 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 + raises 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 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 getParameters(); + + /** Returns declared exceptions that may occur upon invocations of the method. + + @return + declared exceptions of method + */ + sequence 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. + +

This type is superseded by XInterfaceTypeDescription2, which + supports multiple inheritance.

+ + @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. + +

This method is deprecated, as it only supports single inheritance. + See XInterfaceTypeDescription2 for a replacement that + supports multiple inheritance.

+ + @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.
+ 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 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. + +

This type supersedes XInterfaceTypeDescription, which only + supported single inheritance.

+ + @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—directly or indirectly—denotes an interface type + */ + sequence 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—directly or indirectly—denotes an interface type + */ + sequence 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. + +

This type is superseded by XParameter, which supports + parameters of service constructors as well as parameters of interface + methods.

+ + @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. + +

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. + +

This type supersedes XMethodParameter, which only supports + parameters of interface methods (which cannot have rest parameters).

+ + @since OOo 2.0 + */ +interface XParameter: XMethodParameter { + /** + Returns whether this is a rest parameter. + +

A rest parameter must always come last in a parameter list.

+ +

Currently, only service constructors can have rest parameters, and + those rest parameters must be in parameters of type `any`.

+ + @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. + +

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. + +

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.
+ 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. + +

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.)

+ +

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:

+
    +
  • 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–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.
  • + +
  • 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.
  • +
+ + @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 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 raises 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 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. + +

This type is superseded by XServiceTypeDescription2, which + supports single-interface–based services, in addition to the obsolete, + accumulation-based services.

+ +

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–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–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–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–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–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–based services. + +

This type supersedes XServiceTypeDescription, which only + supports obsolete, accumulation-based services.

+ + @since OOo 2.0 + */ +interface XServiceTypeDescription2: XServiceTypeDescription { + /** + Returns whether this object reflects a single-interface–based + service. + + @return `TRUE` if this object reflects a single-interface–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–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 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. + +

This type is superseded by XSingletonTypeDescription2, which + supports interface-based singletons, in addition to the obsolete, + service-based singletons.

+ +

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. + +

This type supersedes XSingletonTypeDescription, which only + supports obsolete, service-based singletons.

+ + @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. + +

This type supersedes XCompoundTypeDescription, which only + supports plain struct types.

+ +

This type is used to reflect all of the following:

+
    +
  • Polymorphic struct type templates, like + Struct<T, U>. For these, + com::sun::star::reflection::XStructTypeDescription::getTypeParameters() + returns a non-empty sequence, while + com::sun::star::reflection::XStructTypeDescription::getTypeArguments() + returns an empty sequence.
  • + +
  • Instantiated polymorphic struct types, like Struct<long, + hyper>. For these, + com::sun::star::reflection::XStructTypeDescription::getTypeParameters() + returns an empty sequence, while + com::sun::star::reflection::XStructTypeDescription::getTypeArguments() + returns a non-empty sequence.
  • + +
  • Plain struct types. For these, both + com::sun::star::reflection::XStructTypeDescription::getTypeParameters() + and + com::sun::star::reflection::XStructTypeDescription::getTypeArguments() + return an empty sequence.
  • +
+ + @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 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 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. + +

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. + +

Valid types classes are: +

    +
  • com::sun::star::uno::TypeClass::MODULE +
  • com::sun::star::uno::TypeClass::INTERFACE +
  • com::sun::star::uno::TypeClass::SERVICE +
  • com::sun::star::uno::TypeClass::STRUCT +
  • com::sun::star::uno::TypeClass::ENUM +
  • com::sun::star::uno::TypeClass::EXCEPTION +
  • com::sun::star::uno::TypeClass::TYPEDEF +
  • com::sun::star::uno::TypeClass::CONSTANT +
  • com::sun::star::uno::TypeClass::CONSTANTS +
  • com::sun::star::uno::TypeClass::SINGLETON +
+ + @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. + +

The enumeration returns implementations of + XTypeDescription. Following concrete UNOIDL parts + represented by specialized interfaces derived from + XTypeDescription can be returned by the enumerator: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDLinterface
enumXEnumTypeDescription
structXCompoundTypeDescription (the returned + object should actually implement + XStructTypeDescription)
exceptionXCompoundTypeDescription
interfaceXInterfaceTypeDescription (the returned + object should actually implement + XInterfaceTypeDescription2)
serviceXServiceTypeDescription (the returned + object should actually implement + XServiceTypeDescription2)
singletonXSingletonTypeDescription (the returned + object should actually implement + XSingletonTypeDescription2)
moduleXModuleTypeDescription
typedefXIndirectTypeDescription
constantXConstantTypeDescription
constantsXConstantsTypeDescription
+ + @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:
+

    +
  • the component cannot be found or cannot be loaded (missing path or classpath) +
  • 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)). +

+ + */ +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 open, close, and destroy + from XSimpleRegistry are not supported and throw an exception + if they are used. + + Functions of XSimpleRegistry: +
+
getURL +
+
returns the name of the local registry. +
+
isValid +
+
checks if the local registry is valid. If the interface is not `NULL` + the local registry should always be valid. +
+
isReadOnly
+
checks if the local registry has write protection. +
+
mergeKey +
+
merges all information from the specified registry in the local registry. +
+
getRootKey +
+
returns a virtual rootkey of both registries. +
+
+ + Functions of XRegistryKey: +
+
openKey +
+
returns a virtual key which is specified in the local or the system + registry. +
+
deleteKey +
+
deletes the key only if it is present in the local registry. +
+
setLongValue, setAsciiValue, setStringValue, setBinaryValue +
+
sets the value at the specified key in the local registry. +
+
getLongValue, getAsciiValue, getStringValue, getBinaryValue +
+
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. +
+
openKeys +
+
returns a sequence of all subkeys in both registries. +
+
getKeyNames +
+
returns a sequence with the names of all subkeys in both registries. +
+
+ Note: all write functions only work on the local registry. +
+
+ + How to find the registries: +
+
search for the system registry: +
+
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. +
+
Search for the user registry using the following rules: +
+
+
    +
  1. 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". +
  2. +
  3. 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". +
  4. +
  5. 3. If not found, a new user registry with name user.rdb will be created in the user + config directory. +
  6. +
+
+
+

Guarantees:

+ +
    +
  • -thread safe
  • +
+ */ +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: +
    +
  • -thread safe
  • +
+ */ +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 open, close, + and destroy from XSimpleRegistry are not supported and + throw an exception if they are used. + + Functions of XSimpleRegistry: +
+
getURL +
+
returns the name of registry1. + +
+
isValid +
+
checks if registry1 is valid. If the interface is not `NULL` + then registry1 should always be valid. + +
+
isReadOnly +
+
checks if registry1 has write protection. +
+
mergeKey +
+
merges all information from the specified registry in registry1. + +
+
getRootKey +
+
returns a virtual rootkey of both registries. +
+
+ + Functions of XRegistryKey: +
+
openKey +
+
returns a virtual key which is specified in registry1 or registry2. + +
+
deleteKey +
+
deletes the key only if it is present in registry1. + +
+
setLongValue, setAsciiValue, setStringValue, setBinaryValue +
+
sets the value at the specified key in registry1. + +
+
getLongValue, getAsciiValue, getStringValue, getBinaryValue +
+
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. + +
+
openKeys +
+
returns a sequence of all subkeys in both registries. + +
+
getKeyNames +
+
returns a sequence with the names of all subkeys in both + registries. + +
+
+ Note: all write functions only work on registry1. +
+
+ + How to initialize the registries:
+ 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.
+ Two different ways are possible:
+
    +
  • 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. +
  • 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. +
+
+ + + Guarantees: +
    +
  • -thread safe
  • +
+ */ +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. + +

A key can be a normal key with a value and subkeys, or it can be a + link which references another key.

+ */ +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. + +

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.

+ */ +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: +
    +
  • -thread safe
  • +
+ */ +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 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 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. + +

This is the main interface for registry keys.

+ + @see XSimpleRegistry +*/ +published interface XRegistryKey: com::sun::star::uno::XInterface +{ + /** This is the key of the entry relative to its parent.

+ +

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. + +

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 getLongListValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets a long list value to the key. + +

If the key already has a value, the value will be + overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setLongListValue( [in] sequence 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. + +

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 getAsciiListValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets an ASCII string list value to the key. + +

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 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. + +

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 getStringListValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets a unicode string value to the key. + +

If the key already has a value, the value will be overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setStringListValue( [in] sequence 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 getBinaryValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets a binary value to the key. + +

If the key already has a value, the value will be + overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setBinaryValue( [in] sequence value ) + raises( com::sun::star::registry::InvalidRegistryException ); + + /** opens a sub key of the key. + +

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.

+ +

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 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 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. + +

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. + +

Usually the original event is the first argument in the + array of arguments.

+ */ +published struct AllEventObject: com::sun::star::lang::EventObject +{ + /** A helper value for the implementation that can be used arbitrarily. + +

This field reflects the third parameter of the method + XAllListenerAdapterService::createAllListerAdapter(). +

+ */ + 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 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 ).

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.

+*/ + +struct ArrayWrapper +{ + /** Indicates whether the Array should be have 1 or 0 based indexing. + */ + boolean IsZeroIndex; + /** Contains the Array to be passed. +

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.

+ */ + 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. + +

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.

+ + @see XLibraryAccess::getModuleCode + @see XLibraryAccess::getFunctionCode + */ + long StartLine; + + /** contains the first column in the StartLine 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 EndLine that is NOT + associated with the context. + */ + long EndColumn; + + /** Get all names of the local variable in this context. + */ + sequence 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. + +

What is possible? +

    +
  • byte: byte, (short *1), (long *1), (hyper *1), (float *1), (double *1), (enum *2), (any *3), boolean, (char *4), (string *5)
  • +
  • short: byte, short, (long *1), (hyper *1), (float *7), (double *7), (enum *2), (any *3), boolean, char, (string *5)
  • +
  • long: byte, short, long, (hyper *1), (float *7), (double *7), enum, (any *3), boolean, char, (string *5)
  • +
  • hyper: byte, short, long, hyper, (float *7), (double *7), enum, (any *3), boolean, char, (string *5)
  • +
  • float: byte, short, long, hyper, float, (double *7), (enum *8), (any *3), boolean, char, (string *5)
  • +
  • double: byte, short, long, hyper, float, double, enum, (any *3), boolean, char, (string *5)
  • +
  • enum: (byte *9), (short *9), (long *9), (hyper *9), (float *9), (double *9), (enum *10), (any *3), (string *11)
  • +
  • void: ok for all types
  • +
  • any: ok for all types
  • +
  • boolean: byte, short, long, hyper, float, double, (any *3), boolean, char, (string *12). 0 => false, != 0 => true
  • +
  • char: byte, short, (long *1), (hyper *1), (float *7), (double *7), enum, (any *3), boolean, char, (string *13)
  • +
  • string: byte, short, long, hyper, float, double, enum, (any *3), boolean, char, string
  • +
  • struct: (any *3), (struct *14)
  • +
  • interface: (any *3), (struct *14)
  • +
  • exception: (any *3), (exception *14)
  • +
  • union: (any *3), (union *14)
  • +
  • sequence: (any *3), (sequence *15)
  • +
+ rules: +
    +
  • 1: only converts if the value is in the range of the target type.
  • +
  • 2: only converts if the value, not the position, of the enum is in the range of the target type.
  • +
  • 3: get value until it is not an any. Then convert it with the other rules.
  • +
  • 4: only converts if the value of the character is between 0 - 255.
  • +
  • 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.
  • +
  • 7: only converts if the value is in the range of the target type. + The value is rounded to an integer.
  • +
  • 8: only converts if the float can be converted back to the same enum value.
  • +
  • 9: only converts if the number is one of the enumeration type values. Normally you need + reflection information of the enum type.
  • +
  • 10: only converts if it is the same enumeration type.
  • +
  • 11: only converts if the string contains the name of an enumeration type value. Normally you need + core reflection information of the enum type.
  • +
  • 12: only converts if the value of the string is "1", "true" or "0", "false". The comparison + is case insensitive.
  • +
  • 13: only converts if the length of the string is 1 or 0.
  • +
  • 14: only converts if the types are equal or the source type is derived from the destination + type.
  • +
  • 15: only converts if each element of the source sequence can be converted to an element + of the destination sequence.
  • +
+*/ +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. + +

The implementation of this + interface should supply the interfaces com.sun.star.script.XDebugging2 and + interface com.sun.star.script.XInvocation.

+ @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. + +

Only valid if Reason is RuntimeError or CompileError.

+ */ + string ErrorMessage; + + /** contains the return value. + +

This field is only valid if FinishEngineEvent::Finish is + FinishReason::OK.

+ */ + 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. + +

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.

+ */ + string Name; + + /** source code of the Module affected by the event that took place. + +

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 that is affected + by the event that took place. + + + +

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.

+ + @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. +

Only valid if Reason is RuntimeError or CompileError.

+ */ + 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. + +

Invoke createInstanceWithArguments() of XSingleServiceFactory + to create an Invocation adapter for the passed object (Invoking + createInstance() will fail).

+

+ The adapter has to support com::sun::star::script::XInvocation. + The adapter may also support com::sun::star::script::XInvocation2. +

+ */ +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. + +

+ 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. +

+ +

+ The adapter has to support + com::sun::star::script::XInvocationAdapterFactory. + The adapter may also support + com::sun::star::script::XInvocationAdapterFactory2. +

+ */ +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. +

+ */ +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. + +

The interpreter should be similar to JavaScript 1.1. The exact + behavior will be specified in future.

+ @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. +

For that to happen, a "ScriptEventDescriptor" must be registered at + and attached to an object by an XEventAttacherManager.

+ */ +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. + +

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/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. +

If the type of this parameter is different from string, + it will be converted, when added.

+ */ + 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. + +

Without any output parameters, it is possible to adapt any interface + if the XAllListenerAdapterService can generate an adapter.

+ */ +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. + +

That happens when the listener method raises an exception, + or has a return value declared.

+ */ + 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 + xListenerType 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 aParams, [out] sequence aOutParamIndex, [out] sequence aOutParam ) raises( com::sun::star::lang::IllegalArgumentException, com::sun::star::script::CannotConvertException, com::sun::star::reflection::InvocationTargetException ); + any invokePutProperty( [in] string aFunctionName, [in] sequence aParams, [out] sequence aOutParamIndex, [out] sequence 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. + +

The value can differ from the parameter + nSourceCodeLine 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 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. + +

To continue with the execution, call XDebugging::doContinue(). + */ + void stop(); + + /** executes the next and only the next statement. + +

If the next statement is a function call, the function is + executed completely.

+ */ + void stepOver(); + + /** executes the next and only the next statement. + +

If the next statement is a function call, only the function + entered.

+ */ + 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. +

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

"ExampleObject( Param1 ... ParamN )"

+ which would be equivalent to writing +

"ExampleObject.defaultMethod( Param1 ... ParamN )"

+*/ +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. +

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

ExampleObject = "foo"

+ which would be equivalent to writing +

ExampleObject.Value = "foo"

+ or +

bar = ExampleObject

+ which would be equivalent to writing +

bar = ExampleObject.Value

+*/ +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 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. + +

If the root object implements the XInvocation interface, + then the engine uses this interface to set/get properties and + call methods. +

+ */ + 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. + +

The arguments given in aArgs can be ignored by + the engine. The Script is executed synchronously.

+ */ + any run( [in] string aScript, + [in] com::sun::star::uno::XInterface xThis, + [in] sequence aArgs ); + + /** runs the script specified by a string and makes callbacks. + +

The arguments given in aArgs can be ignored by + the engine. The script is executed asynchronously. + +

+ */ + void runAsync( [in] string acript, + [in] com::sun::star::uno::XInterface xThis, + [in] sequence args, + [in] com::sun::star::script::XEngineListener xCallback ); + + /** terminates the execution of the running script. + +

The waiting queue is cleared too.

+ */ + void cancel(); + + /** adds an engine listener. + +

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. + +

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. + +

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. +

+ */ + 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. + +

Only the event corresponding to the given event method + will be delegated to xAllListener.

+ */ + 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. + +

This method can and should be used as a contrary method + to the two attach methods.

+ */ + 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 + attachMultipleEventListeners( + [in] com::sun::star::uno::XInterface xTarget, + [in] sequence 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. + +

If any object is attached under this index, then this + event is attached automatically.

+

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.

+ */ + 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. + +

The result is the same as if the method registerScriptEvent() + was called once for each ScriptEventDescriptor + in the sequence.

+ +

If any object is attached under this index, then this + event is attached automatically (see attach())

+ +

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.

+ + @see registerScriptEvent + @see attach + */ + void registerScriptEvents( [in] long nIndex, + [in] sequence aScriptEvents ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** revokes the registration of an event. + +

The parameters ListenerType and + EventMethod 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()).

+ +

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.

+ + @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. + +

If the events at this index have been attached to any + object, they are detached automatically. + (see attach()).

+ + @see attach + */ + void revokeScriptEvents( [in] long nIndex ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** creates an empty entry at the given position. + +

The index n of all entries with n &gt;= + nIndex will be increased by one.

+ */ + void insertEntry( [in] long nIndex ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** removes the entry at the given position. + +

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()).

+ + @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 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. + +

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.

+ */ + 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. + +

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.

+ */ + 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. + +

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. + +

Nothing happens if the listener is not registered. + +

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. +

+ */ +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 aParams, + [out] sequence aOutParamIndex, + [out] sequence 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. + +

If the underlying object implements an + com::sun::star::container::XNameContainer, + then this method will insert the value if there is no such + aPropertyName. + +

+ */ + 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`. + +

This optimizes the calling sequence + ( XInvocation::hasMethod(), + XInvocation::invoke() )!

+ + @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`. + +

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. +

+ */ +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. + +

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.

+ @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 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 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 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. + +

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().

+ */ + 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. + +

The code has to correspond with the language + defined by Language.

+ */ + 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 aFrom to the specified type + xDestinationType. + Throws a CannotConvertException if the conversion + failed. + @param aFrom + source value + @param xDestinationType + destination type + @return + converted value (any carrying value of type xDestinationType + */ + any convertTo( + [in] any aFrom, + [in] type xDestinationType ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::script::CannotConvertException ); + + /** Converts the value aFrom to the specified simple type + aDestinationType. + 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 aDestinationType + */ + 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. +

+ 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. +

+ + @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. +

+ 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. +

+ + @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. +

+ 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. +

+ + @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. +

+ If the specified XAccessControlContext is null, then the action is performed + with unmodified permissions, i.e. the call makes no sense. +

+ + @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. +

+ If the given XAccessControlContext is null, then the action is performed + only with the permissions of the security policy currently in effect. +

+ + @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. +

+ This context may then be checked at a later point, possibly in another thread. +

+ @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. +

Different sub-interfaces of this interface specify different ways of + continuing.

+ */ +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. + +

This interface extends the interface XInteractionHandler + the way that a caller can determine whether an interaction request was + actually handled by the interaction handler.

+ + @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 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 + +

All exceptions defined in UNO idl should derive from this exception.

+ */ +published exception Exception +{ + /** gives a detailed description of the reason, why the exception was thrown. +

+ The description should be as detailed as possible. + + */ + string Message; + + + /** should contain a reference to the original, which raised the exception. +

May be NULL.

+ */ + 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. +

+ 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. + +

+ Example: + A type reflecting the interface XInterface is of type class + INTERFACE and its name is "com.sun.star.uno.XInterface". +

+*/ +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. + +

The implementation of XAdapter must know + but not hold the adapted object, because it must not + affect the lifetime of the adapted object. + +

@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. + + + +

All added references are called when the adapted object dies. + +

+ */ + 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. + +

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). + +

The following rules are to be observed: +

    +
  1. 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 + xAggregation->setDelegator(NULL). + +
  2. 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. + +
  3. 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. +
+ + @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 pDelegator 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. + +

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 + /singletons/com.sun.star.lang.theServiceManager. + 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. +

+ You have to use UNO runtime functions to obtain the current context + in your target language. +

+ @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 + +

It provides lifetime control by reference counting and the + possibility of querying for other + interfaces of the same logical object. + + +

+ "Logical Object" in this case means that the + interfaces actually can be supported by internal (e.g. aggregated) physical objects.

+ +

Deriving from this interface is mandatory for all UNO interfaces. +

Each language binding (Java, C++, StarBasic, Python, ... ) may + provide a different mapping of this interface, please look into the language + dependent documentation. + +

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. +

+ 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. + +

+ There are certain specifications, a queryInterface() implementation must not violate. +

+ 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. +

+ 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. +

+ 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. +

+ 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). + +

The reason for the strong specification is, that a Uno Runtime Environment (URE) + may choose to cache queryInterface() calls. +

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 +

+ 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. + +

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. + +

+ It is only allowed to invoke a method on a UNO object, when you keep + a hard reference to it. + +

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. +

When the reference counter reaches 0, the object gets deleted.

+

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. + +

If any object is registered before, then this + object is revoked automatically. + +

+ */ + void registerObject( [in]string Name, [in]com::sun::star::uno::XInterface Object ) + raises (Exception); + + + /** revokes the registration of an object.

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. + + + +

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.

+ */ + 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. + + + +

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. + +

Concept of weak referencing:

+ +

+

This module specifies the interfaces for implementing and using + weak references.

+

+ +

+

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. + +

+

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: + +

+
+ XWeak +
+
is the server-side interface of the referred object. This + referred object must support the XAdapter interface. + +
+
+ XReference +
+
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. + +
+
+

+ */ +published interface XWeak: com::sun::star::uno::XInterface +{ + /** queries the weak adapter. + + + +

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. + +

+ */ + 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 (“..”) + 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. + +

See RFC 3986 for a + description of URI references and related terms.

+ +

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.

+ +

Locating a scheme-specific parser works as follows: A scheme consists of + Latin capital letters + “A”–“Z”, Latin small + letters “a”–“z”, + digits “0”–“9”, + “+”, “-”, and + “.”. A scheme s is transformed into + a string s′ character-by-character, by translating + Latin capital letters to their small counterparts, translating + “+” to “PLUS”, + “-” to “HYPHEN”, + “.” to “DOT”, and copying + Latin small letters and digits unchanged. If the component context used + while creating this UriReferenceFactory instance offers a + service manager, and there is a service available at that service manager + whose name is the concatenation of + “com.sun.star.uri.UriSchemeParser_” and + s′, then that service is used. It is an error if that + service does not support + com::sun::star::uri::XUriSchemeParser.

+ + @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 “vnd.sun.star.expand” + URLs. + +

The argument scheme of method + com::sun::star::uri::XUriSchemeParser::parse() must + always be equal to the `string` + "vnd.sun.star.expand", ignoring case. The objects returned by + com::sun::star::uri::XUriSchemeParser::parse() + implement + com::sun::star::uri::XVndSunStarExpandUrlReference.

+ +

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.

+ + @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 “vnd.sun.star.script” + URLs. + +

The argument scheme of method + com::sun::star::uri::XUriSchemeParser::parse() must + always be equal to the `string` + "vnd.sun.star.script", ignoring case. The objects returned by + com::sun::star::uri::XUriSchemeParser::parse() + implement + com::sun::star::uri::XVndSunStarScriptUrlReference.

+ +

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.

+ + @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 “vnd.sun.star.pkg” 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. + +

Some URI schemes leave unspecified important aspects of how to interpret + URIs of those schemes. For example, it is unspecified for “file” + URLs how to map the byte sequences that constitute the path segments of a + “file” URL to filenames on a given platform: The UNO environment + always assumes that path segments of “file” URLs represent + UTF-8–encoded strings (which have to be mapped to filenames in a + platform-specific way), while other applications typically assume that path + segments of “file” URLs directly represent a platform's + byte-sequence filenames. This interface offers methods to translate between + such internal URIs (e.g., UTF-8–encoded “file” + URLs used within the UNO environment) and external URIs (e.g., + byte-sequence–oriented “file” URLs used by other + applications). Typically, only “file” URLs are affected by this + translation.

+ +

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.

+ + @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. + +

See RFC 3986 for a + description of URI references and related terms.

+ +

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.

+ + @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. + +

A URI is absolute if it has a scheme.

+ + @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 “:”), if this + is an absolute URI reference; otherwise, an empty `string` is + returned. + */ + string getScheme(); + + /** + returns the scheme-specific part of this URI reference. + +

For an absolute URI reference, the scheme-specific part is everything + after the scheme part and the delimiting “:”, + and before the optional “#” and fragment part. + For a relative URI reference, the scheme-specific part is everything + before the optional “#” and fragment part.

+ + @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 2396. + +

An absolute URI reference is hierarchical if its scheme-specific part + starts with “/”. A relative URI reference is + always hierarchical.

+ + @returns + `TRUE` if this URI reference is hierarchical, `FALSE` if it is opaque. + + @deprecated RFC 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. + +

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 “/” delimiters. + For a URI reference with a relative, non-empty path, the + number of path segments equals the number of “/” + delimiters, plus one.

+ + @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 “/”), + if this URI reference has that many path segments; + otherwise, and in particular if index 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 “?”), 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 “#”), 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. + +

See RFC 3986 for a + description of URI references and related terms.

+ + @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 uriReference is a + same-document reference, baseUriReference 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 3986, Sections 5.2.2 and 5.4,2) + are not supported; instead, they are interpreted as absolute + URI references. + + @param processAdditionalSpecialSegments + if `TRUE`, special segments (“.” and + “..”) within the path of the base URI (except + for the last, cut-off segment), and within an already absolute uriReference, are + processed as required by + RFC 3986. If `FALSE`, such special segments + are treated like ordinary segments. + Conformance with RFC 3986 requires `TRUE` to be passed. + + @param excessParentSegments + details how excess special parent segments + (“..”) are handled. + Conformance with RFC 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 + uriReference can be resolved + to an absolute URI reference, relative to the given + baseUriReference; otherwise, `NULL` is returned. + Especially, if baseUriReference is `NULL`, or is not an + absolute URI reference, or if uriReference 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 + baseUriReference (e.g., + “scheme://auth/a/b”) and + uriReference (e.g., + “scheme://auth//c/d”) have the same scheme and + authority components, and the path component of uriReference + starts with “//”. If `TRUE`, the generated + relative URI reference includes an authority component (e.g., + “//auth//c/d”); if `FALSE`, the generated + relative URI reference has a relative path (e.g., + “..//c/d”). + + @param preferAbsoluteOverRelativePath + controls how a relative URI reference is generated when both + baseUriReference (e.g., + “scheme://auth/a/b”) and + uriReference (e.g., + “scheme://auth/c/d”) 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., + “/c/d”); if `FALSE`, the generated relative URI + reference has a relative path (e.g., “../c/d”). + + @param encodeRetainedSpecialSegments + if `TRUE`, special segments (“.” and + “..”) that are already present in the path + component of the given uriReference and which end up in a + relative path returned from this method, are encoded (as + “%2E” and “%2E%2E”, + respectively). + + @returns + a fresh object that supports + com::sun::star::uri::XUriReference, if the given + uriReference is either already relative, or has a relative + path, or is of a different scheme than the given + baseUriReference, or can be changed to a relative URI + reference, relative to the given baseUriReference; + otherwise, `NULL` is returned. Especially, if + baseUriReference is `NULL`, or is not an absolute + URI reference, or if uriReference 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. + +

See RFC 3986 for a + description of URIs and related terms.

+ + @since OOo 2.0 + */ +published interface XUriSchemeParser: com::sun::star::uno::XInterface { + /** + parses the textual representation of an absolute URI. + +

This method is used to parse URIs (with no fragment part), not URI + references (with an optional fragment part).

+ +

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.

+ + @param scheme + the textual representation of the scheme part (without the delimiting + “:”). + + @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 “vnd.sun.star.expand” URLs. + +

These URLs are of the form
+    vnd-sun-star-expand-url = + "VND.SUN.STAR.EXPAND:" opaque_part
+ where the opaque_part is a UTF-8 string as described in + + Bootstrap Arguments and Micro Deployment. See + RFC 3986 + RFC 2234 for + details.

+ + @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 + expander 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 “vnd.sun.star.expand” URL references. + + @since OOo 2.3 + */ +published interface XVndSunStarExpandUrlReference { + /** + represents the generic features of the URL reference. + +

The behaviour of the methods of this interface will always reflect the + fact that the represented URI reference is an absolute + “vnd.sun.star.expand” URL reference.

+ */ + 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 “vnd.sun.star.pkg” URL references. + + @since OOo 2.0 + */ +published interface XVndSunStarPkgUrlReferenceFactory { + /** + creates a new “vnd.sun.star.pkg” URL reference. + +

The returned URL reference has the given authority, an empty path, and + no fragment.

+ + @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 “vnd.sun.star.pkg” 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 “vnd.sun.star.script” URLs. + +

These URLs are of the form
+    vnd-sun-star-script-url = + "VND.SUN.STAR.SCRIPT:" name ["?" + parameter *("&" parameter)]
+    name = 1*schar
+    parameter = key "=" + value
+    key = 1*schar
+    value = *schar
+    schar = unreserved / escaped / + "$" / "+" / "," / ":" / + ";" / "@" / "[" / + "]"
+ See RFC 3986 + RFC 2234 for + details.

+ +

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.

+ + @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 key 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 key 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 “vnd.sun.star.script” URL references. + */ +published interface XVndSunStarScriptUrlReference { + /** + represents the generic features of the URL reference. + +

The behaviour of the methods of this interface will always reflect the + fact that the represented URI reference is an absolute + “vnd.sun.star.script” URL reference.

+ */ + 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. + +

The concrete semantics of this attribute is to be defined + in the service implementing this interface.

+ */ + [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: */ -- cgit v1.2.3