From 267c6f2ac71f92999e969232431ba04678e7437e Mon Sep 17 00:00:00 2001
From: Daniel Baumann 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. 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. 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. 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. The value is undefined if Result is not
+ com::sun::star::beans::TolerantPropertySetResultType::SUCCESS. The value is undefined if Result is not
+ com::sun::star::beans::TolerantPropertySetResultType::SUCCESS. This problem can occur, if you use an `any`. This exception isn't specified and used anywhere This list is not necessarily complete; new constants
+ may be added. These methods have the signature These methods have the signature These methods have the signature
+ These methods have the signature
+ These methods have the signature
+ 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. 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.
+ This structure allows for conveniently packing together two values of
+ any type, and could be useful as the result type of methods.
+ The name is unique within an XPropertySet.
+ Upper and lower case are distinguished. It may be -1 if the implementation has no handle. You can use
+ this handle to get values from the XFastPropertySet. If the property has multiple types or the type is not
+ known, but not an `any`, then
+ void must be returned. It does not mean that the type of the property is void! This always implies that the property is bound, too. This attribute is not of interest for concrete property
+ implementations. It's needed for property specifications inside
+ service specifications in UNOIDL. 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 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. May be -1 if the implementation has no handle. You can use
+ this handle to get values from the XFastPropertySet. This list is not necessarily complete; new constants
+ may be added. These methods have the signature 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. May be -1 if the implementation has no handle. The state consists of two aspects: 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. 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. 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. 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. This name identifies the property uniquely within an
+ XPropertySet. Upper and lower case are distinguished. It may be -1 if the implementation has no handle. You can use this
+ handle to get values from the XFastPropertySet
+ interface. The name is unique within a sequence of PropertyValues.
+ Upper and lower case are distinguished. It may be -1 if the implementation has no handle. If available
+ it can be used for fast lookups. Such sequences are especially useful for remote interfaces. Since the property was not successful set the result will never be
+ com::sun::star::beans::TolerantPropertySetResultType::SUCCESS.
+ 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. For example if a
+ com::sun::star::beans::UnknownPropertyException
+ was caught. For example if a
+ com::sun::star::lang::IllegalArgumentException
+ was caught. For example if a
+ com::sun::star::beans::PropertyVetoException
+ was caught. 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. For example "getExactName" could be returned for "GETEXACTNAME"
+ when "GETEXACTNAME" was used by a case insensitive scripting language. 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. 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. The specification only describes the properties, it does not contain
+ any values. 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(). It identifies all properties supported by the object
+ if they are represented in one of the following ways: In addition, the inspect method identifies all listener
+ access methods in the form 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. 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. The minimum supported concepts should be: The minimum supported concepts should be: If the introspected object has the methods
+ 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.
+ 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. 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. 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. 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. The order of the values in the returned sequence will be the same
+ as the order of the names in the argument. 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 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 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 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.
+ 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. If no default exists, is not known, or is void,
+ then the return type at the corresponding position in the
+ sequence returned is `void`. Provides access to traits of this object that would
+ otherwise only be available from a containing
+ XPropertySet via its
+ XPropertySetInfo.
+ 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. All properties which are not contained in the sequence
+ aProps will be left unchanged. Some scripting engines cannot access properties directly when the
+ property set is changed. Please use XPropertySet::getPropertyValue()
+ etc. in this case. There are three types of 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. 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. 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. It is a "noop" if the listener is not registered. There are three kinds of properties:
+ The specification only describes the properties, it does not contain
+ any values. 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: The order of the states is correlating to the order of the
+ given property names. 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.
+ 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: Generally objects that implement this interface
+ also implement XProperty.
+ 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.
+ If no default exists, is not known or is void,
+ then the return value is `NULL`.
+ 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. If the names are not sorted the behaviour of the method
+ is undefined! The count and order of the values in the returned sequence
+ will be the same as the order of the names in the argument. If the names are not sorted the behaviour of the method
+ is undefined! 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. If the names are not sorted the behaviour of the method
+ is undefined! You can register an XVetoableChangeListener with
+ a source object so as to be notified of any constrained property updates. 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(). Components, that support a certain protocol, must have at least two
+ service names: 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.:
+ 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. 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.
+
+ The XBridgeSupplier2 interface provides the function The Automation types 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.
+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 The optional parameters of the method
+ com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments()
+ are reserved for future use; at this time they are ignored. 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.
+
+ 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.
+ 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: 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.
+ 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: 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. 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! The properties MUST NOT change between a requestChange and a commit change call. 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). 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.
+ 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,
+ 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.
+
+ 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
+ For Automation objects to be mapped they have to implement
+
+ 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.
+
+ A
+ When calling Automation objects from UNO the distinction between
+ `hyper` and a currency type is important. Therefore
+ Currency is declared as struct.
+
+ A
+ When calling Automation objects from UNO the distinction between
+ `double` and date type is important. Therefore Date
+ is declared as struct.
+
+ 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
+ The optional parameters of the method
+ com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments()
+ are reserved for future use; at this time they are ignored.
+
+ 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.
+
+ 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
+ When calling Automation objects from UNO the distinction between error type
+ and `long` is important. Therefore the Scode is
+ declared as struct.
+
+ 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
+
+ The possible ways to connect to the host are
+
+ 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". 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. Probably not the same element is already a member, when this exception
+ is thrown, but a member with the same id or name. For the keys put into the map using XMap::put() or createImmutable(),
+ the following rules apply:
+
+ For the values put into the map using XMap::put() or createImmutable(),
+ the following rules apply:
+
+ type get...()
+
, void set...()
or boolean is...()
+
. add...Listener()
+
or remove...Listener()
. 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.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. get...ByIndex()
,
+ insert...ByIndex()
,
+ replace...ByIndex()
, or
+ remove...ByIndex()
.
+ The method com::sun::star::container::XIndexAccess::getCount()
+ also belongs to this concept. type get...()
,
+ void set...()
or boolean is...()
.
+
+
+ @see XPropertyState
+ @see Property
+ */
+published enum PropertyState
+{
+
+ /** The value of the property is stored in the PropertySet itself.
+
+
+
+
+ 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.
+ add...Listener
/
+ remove...Listener
(except methods of interface
+ XPropertySet) where "..." stands for the listener type.
+
+
+
+ @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.
+
+
+
+
+ @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.
+ */
+ sequenceaddFooListener( 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
+
+
+
+
+
+
+
+ */
+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.
+
+
+
+
+
+
+
+ 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.
+
+ */
+ 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.
+
+
+
+ */
+ 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.
+
+ 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.
+ 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.
+
+ IUnknown
and IDispatch
.
+ The created UNO objects support com::sun::star::script::XInvocation
+ if the original COM objects support IDispatch.
+ */
+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.
+
+
+
+ */
+ 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.
+
+
+
+
+
+
+
+ CreateObject
in Visual Basic,
+ CoCreateInstance
in C++.
+ 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.
+ IDispatch
interface. Other COM interfaces, except for
+ IUnknown
, are not supported. UNO interfaces and structs are
+ mapped to IDispatch
.
+ CY
, also know
+ as CURRENCY
.
+ 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.
+ 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
.
+ 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.
+ 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.
+
+ IUnknown
and
+ IDispatch
. The created UNO objects support
+ com::sun::star::script::XInvocation if the original COM
+ objects support IDispatch
.
+ 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.
+
+ 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.
+
+
+
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.
+ 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.
+ BOOLEAN
, CHAR
, FLOAT
, DOUBLE
,
+ STRING
, TYPE
, or UNSIGNED HYPER
, then only keys of exactly this
+ type are accepted.DOUBLE
or FLOAT
, then Double.NaN
respectively
+ Float.NaN
is not accepted as key.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.
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.
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.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.
+ */ + sequenceNo 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.
+ */ + sequenceThis 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.
Implementations are free to accept any supertype of the ValueType
as values.
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 theXMap
interface to specify which special values
+ are not supported.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.
+ */ + sequenceIn 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 permissionwrite
-- write permissionexecute
-- execute permissiondelete
-- delete permission"<>"
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 +
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 +
+ 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] sequenceFor 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).
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). +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 It is up to the implementation whether this method is
+ blocking the thread or not. Note: This method offers no information on whether the EOF
+ has been reached. 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.) 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. 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. 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 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. 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. 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. 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. The termination could be done using the method
+ XActiveDataControl::terminate(). After the method is called, the close is called on the
+ connected streams. 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". 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. 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). This interfaces allows to write strings to a stream.
+ The character encoding to be used can be set by
+ setEncoding(). Default encoding is "utf8". Line breaks or delimiters that may be necessary
+ to support XTextInputStream::readLine()
+ and XTextInputStream::readString()
+ have to be added manually to the parameter string. 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.
+ 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
+ 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. This method should be called at the end of every JNI call from Java. If the VM is not already instantiated, it will be now. If the If the If the The first form (returning a JNI It is only possible to get the VM, if this method return 0. The index is either negative or greater than or equal to
+ the size of the array. The implementation normally should implement the
+ com::sun::star::lang::XComponent interface
+ to indicate this possibility. This field is -1 if the position is not known. The index is either negative or greater than or equal to
+ the count of the elements. An operation that requires a 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: 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. 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: If this field contains an empty string, the meaning depends on the
+ context. 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 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.
+ 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. An example is a Applications should throw instances of this class to indicate
+ other illegal uses of the `NULL` object.
+ 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: 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
+ The component context disposes its service manager singleton when going down
+ (i.e. when the component context is disposed).
+
+ 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.
+ Applications should throw instances of this class to indicate
+ that a needed service is not registered. 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. These are Windows XP or higher. This is Windows 3.11. 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 Normally this exception is declared for generic methods.
+ 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. 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. 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. Connectable objects support the following features: To create a connectable object, you need to implement objects
+ that provide two related interfaces: 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(). A client can use the XConnectionPointContainer interface: 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 A few 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. The interface is advised under the connection point you
+ get with 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. 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. 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.
+ It should be called directly after the object is created.
+ */
+ void initialize( [in] sequence 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. 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.
+ Common usage:
+ Getting a C++ object pointer in the same process, thus to use an
+ implementation directly, most often because of a design flaw.
+ 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 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. 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
+ Names are given in dotted notation, for example
+ For struct types, this type is superseded by
+ XStructTypeDescription, which supports polymorphic struct
+ types. 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 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:
+ 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 When setting an interface attribute raises a
+ non com::sun::star::uno::RuntimeException, it is
+ wrapped in a com::sun::star::lang::WrappedTargetRuntimeException. When setting an interface attribute raises a
+ non com::sun::star::uno::RuntimeException, it is
+ wrapped in a com::sun::star::lang::WrappedTargetRuntimeException. This type is superseded by
+ XInterfaceAttributeTypeDescription2, which supports extended
+ attributes. This type supersedes XInterfaceAttributeTypeDescription,
+ which does not support extended attributes. This type is superseded by XInterfaceTypeDescription2, which
+ supports multiple inheritance. This method is deprecated, as it only supports single inheritance.
+ See XInterfaceTypeDescription2 for a replacement that
+ supports multiple inheritance. This type supersedes XInterfaceTypeDescription, which only
+ supported single inheritance. This type is superseded by XParameter, which supports
+ parameters of service constructors as well as parameters of interface
+ methods. 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). 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`. 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. 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: 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. 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. This type supersedes XCompoundTypeDescription, which only
+ supports plain struct types. This type is used to reflect all of the following: 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:
+ The enumeration returns implementations of
+ XTypeDescription. Following concrete UNOIDL parts
+ represented by specialized interfaces derived from
+ XTypeDescription can be returned by the enumerator:
+
+ A key can be a normal key with a value and subkeys, or it can be a
+ link which references another key. 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. 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 If the key already has a value, the value will be
+ overridden.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void setLongListValue( [in] sequence 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 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 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 If the key already has a value, the value will be overridden.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void setStringListValue( [in] sequence If the key already has a value, the value will be
+ overridden.
+
+ @throws InvalidRegistryException
+ if the registry is not open.
+ */
+ void setBinaryValue( [in] sequence 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 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. This field reflects the third parameter of the method
+ XAllListenerAdapterService::createAllListerAdapter().
+ 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. 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. 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. What is possible?
+ The implementation of this
+ interface should supply the interfaces com.sun.star.script.XDebugging2 and
+ interface com.sun.star.script.XInvocation. Only valid if Reason is RuntimeError or CompileError. This field is only valid if FinishEngineEvent::Finish is
+ FinishReason::OK. 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. If the source can
+ be accessed using the ModuleName, or if the source is unknown (executing compiled
+ code), this string can be empty. 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. Only valid if Reason is RuntimeError or CompileError. 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.
+
+ 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.
+ The interpreter should be similar to JavaScript 1.1. The exact
+ behavior will be specified in future. For that to happen, a "ScriptEventDescriptor" must be registered at
+ and attached to an object by an XEventAttacherManager. The code has to correspond with the language
+ defined by ScriptType. If the type of this parameter is different from string,
+ it will be converted, when added. Without any output parameters, it is possible to adapt any interface
+ if the XAllListenerAdapterService can generate an adapter. That happens when the listener method raises an exception,
+ or has a return value declared. 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 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. If the next statement is a function call, only the function
+ entered. 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 )" "ExampleObject.defaultMethod( Param1 ... ParamN )" 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" ExampleObject.Value = "foo" bar = ExampleObject bar = ExampleObject.Value If the root object implements the XInvocation interface,
+ then the engine uses this interface to set/get properties and
+ call methods.
+ The arguments given in aArgs can be ignored by
+ the engine. The Script is executed synchronously. The arguments given in aArgs can be ignored by
+ the engine. The script is executed asynchronously.
+
+ The waiting queue is cleared too. 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.
+ Only the event corresponding to the given event method
+ will be delegated to xAllListener. This method can and should be used as a contrary method
+ to the two attach methods. 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. 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. 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. If the events at this index have been attached to any
+ object, they are detached automatically.
+ (see attach()). The index n of all entries with 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()). 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. 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. 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.
+ If the underlying object implements an
+ com::sun::star::container::XNameContainer,
+ then this method will insert the value if there is no such
+ aPropertyName.
+
+ This optimizes the calling sequence
+ ( XInvocation::hasMethod(),
+ XInvocation::invoke() )! 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.
+ 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. 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(). The code has to correspond with the language
+ defined by Language.
+ 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.
+
+ 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.
+
+ 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.
+
+ If the specified XAccessControlContext is null, then the action is performed
+ with unmodified permissions, i.e. the call makes no sense.
+
+ If the given XAccessControlContext is null, then the action is performed
+ only with the permissions of the security policy currently in effect.
+
+ This context may then be checked at a later point, possibly in another thread.
+ Different sub-interfaces of this interface specify different ways of
+ continuing. This interface extends the interface XInteractionHandler
+ the way that a caller can determine whether an interaction request was
+ actually handled by the interaction handler. All exceptions defined in UNO idl should derive from this exception.
+ The description should be as detailed as possible.
+
+ */
+ string Message;
+
+
+ /** should contain a reference to the original, which raised the exception.
+ May be NULL.
+ 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".
+ The implementation of XAdapter must know
+ but not hold the adapted object, because it must not
+ affect the lifetime of the adapted object.
+
+ All added references are called when the adapted object dies.
+
+ 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:
+ 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
+
+ You have to use UNO runtime functions to obtain the current context
+ in your target language.
+ 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.
+
+ 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. 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.
+
+ 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:
+
+ 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.
+
+ 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
+ “ The argument 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. The argument 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. 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. 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. A URI is absolute if it has a scheme. For an absolute URI reference, the scheme-specific part is everything
+ after the scheme part and the delimiting “ An absolute URI reference is hierarchical if its scheme-specific part
+ starts with “ 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 “ See RFC 3986 for a
+ description of URI references and related terms. See RFC 3986 for a
+ description of URIs and related terms. 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. These URLs are of the form 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. The returned URL reference has the given authority, an empty path, and
+ no fragment. These URLs are of the form 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. 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. The concrete semantics of this attribute is to be defined
+ in the service implementing this interface.
+ 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. 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.
+
+ 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.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.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.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.0
or 1
.
+
+ @return
+ On success, the `any` contains a pointer represented as
+ `long` or `hyper`, otherwise the `any`
+ is `VOID`.
+ */
+ any getJavaVM( [in] sequenceLocale
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.
+
+ https://iso639-3.sil.org/code_tables/639/data
.
+
+
+ https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
.
+
+
+ https://en.wikipedia.org/wiki/IETF_language_tag
and
+
+ https://www.w3.org/International/articles/language-tags/
. setParent(...)
method and the object
+ does not allow the change.
+
+ */
+ 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
.
+
+
+
+
+ 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.
+ JavaEnvironment->NewGlobalRef( ... )
+ by the callee.
+
+
+ When to Implement?
+
+
+
+
+ When to use?
+
+ 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. 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. queryConnectionPoint( id )
. 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.
+
+ 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:
+
+
+
+ "void"
,
+ "boolean"
, "byte"
, "short"
,
+ "unsigned short"
, "long"
, "unsigned
+ long"
, "hyper"
, "unsigned hyper"
,
+ "float"
, "double"
, "char"
,
+ "string"
, "type"
, and
+ "any"
."[]ComponentType"
"StructType<Parameter1,…,Parametern>"
."InterfaceType::Member"
."Struct<long>"
.)
+ 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.
+
+ "com.sun.star.uno.XInterface"
."com.sun.star.uno.TypeClass.VOID"
, though this is probably
+ best treated as an implementation obscurity.)
+ 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.
+
+ UNKNOWN
and whose name is the name of the
+ type parameter.
+
+ */
+ 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.
+
+ 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
+ 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
+ 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
+ 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
+{
+ sequenceraises
specification of the attribute's getter (if any), in
+ no particular order; all elements of the returned sequence will be
+ reflections of exception types
+ */
+ sequenceraises
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
+ 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
+ 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.
+
+
+
+
+ @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
+ */
+ sequenceraises
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
+
+
+ @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
+ */
+ sequenceStruct<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.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.
+
+
+ @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.
+
+
+
+
+ @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:
+ IDL interface
+
+ enum
+ XEnumTypeDescription
+
+
+ struct
+ XCompoundTypeDescription (the returned
+ object should actually implement
+ XStructTypeDescription)
+
+
+ exception
+ XCompoundTypeDescription
+
+
+ interface
+ XInterfaceTypeDescription (the returned
+ object should actually implement
+ XInterfaceTypeDescription2)
+
+
+ service
+ XServiceTypeDescription (the returned
+ object should actually implement
+ XServiceTypeDescription2)
+
+
+ singleton
+ XSingletonTypeDescription (the returned
+ object should actually implement
+ XSingletonTypeDescription2)
+
+
+ module
+ XModuleTypeDescription
+
+
+ typedef
+ XIndirectTypeDescription
+
+
+ constant
+ XConstantTypeDescription
+
+
+ constants
+ XConstantsTypeDescription
+
+
+
+
+ */
+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:
+
+
+
+ Functions of XRegistryKey:
+
+
+
+ How to find the registries:
+
+
+
+
+ Guarantees:
+
+
+
+ */
+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:
+
+
+ */
+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:
+
+
+
+ Functions of XRegistryKey:
+
+
+
+ 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:
+
+
+
+
+
+ Guarantees:
+
+
+ */
+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.
+
+
+
+ */
+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
+
+ rules:
+
+
+*/
+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.
+
+ n >=
+ nIndex
will be increased by one.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.
+
+
+
+ @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.
+
+ xAggregation->setDelegator(NULL)
.
+
+ /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.
+ Concept of weak referencing:
+
+
+
+ ..
”)
+ 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.
+
+ 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.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.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.:
”), if this
+ is an absolute URI reference; otherwise, an empty `string` is
+ returned.
+ */
+ string getScheme();
+
+ /**
+ returns the scheme-specific part of this URI reference.
+
+ :
”,
+ and before the optional “#
” and fragment part.
+ For a relative URI reference, the scheme-specific part is everything
+ before the optional “#
” and fragment part./
”. A relative URI reference is
+ always hierarchical./
” delimiters.
+ For a URI reference with a relative, non-empty path, the
+ number of path segments equals the number of “/
”
+ delimiters, plus one./
”),
+ 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.
+
+ 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.
+
+ :
”).
+
+ @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.
+
+
+ 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.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.
+
+
+ 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.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.
+
+