diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 05:54:39 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 05:54:39 +0000 |
commit | 267c6f2ac71f92999e969232431ba04678e7437e (patch) | |
tree | 358c9467650e1d0a1d7227a21dac2e3d08b622b2 /udkapi/com | |
parent | Initial commit. (diff) | |
download | libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.tar.xz libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.zip |
Adding upstream version 4:24.2.0.upstream/4%24.2.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'udkapi/com')
417 files changed, 24827 insertions, 0 deletions
diff --git a/udkapi/com/sun/star/beans/Ambiguous.idl b/udkapi/com/sun/star/beans/Ambiguous.idl new file mode 100644 index 0000000000..ce29b05a07 --- /dev/null +++ b/udkapi/com/sun/star/beans/Ambiguous.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module beans { + +/** + A value of a given type that can be ambiguous. + + <p>This structure is used as the type of interface attributes corresponding + to instances of com::sun::star::beans::Property that + have the com::sun::star::beans::PropertyAttribute::MAYBEAMBIGUOUS.</p> + */ +struct Ambiguous<T> { + /** + The underlying value of this structure instance. + + <p>Even if this structure instance is ambiguous, this member should + contain a useful value. If there is no useful value for an ambiguous + structure instance, com::sun::star::beans::Optional + can be used as the type of this member.</p> + */ + T Value; + + /** + Marks this structure instance as ambiguous. + */ + boolean IsAmbiguous; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/Defaulted.idl b/udkapi/com/sun/star/beans/Defaulted.idl new file mode 100644 index 0000000000..bad991b7b0 --- /dev/null +++ b/udkapi/com/sun/star/beans/Defaulted.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module beans { + +/** + A value of a given type that can be defaulted. + + <p>This structure is used as the type of interface attributes corresponding + to instances of com::sun::star::beans::Property that + have the com::sun::star::beans::PropertyAttribute::MAYBEDEFAULT.</p> + */ +struct Defaulted<T> { + /** + The underlying value of this structure instance. + + <p>Even if this structure instance is defaulted, this member should + contain a useful value. If there is no useful value for a defaulted + structure instance, com::sun::star::beans::Optional + can be used as the type of this member.</p> + */ + T Value; + + /** + Marks this structure instance as defaulted. + */ + boolean IsDefaulted; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/GetDirectPropertyTolerantResult.idl b/udkapi/com/sun/star/beans/GetDirectPropertyTolerantResult.idl new file mode 100644 index 0000000000..ef21ea8edc --- /dev/null +++ b/udkapi/com/sun/star/beans/GetDirectPropertyTolerantResult.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** specifies information being retrieved about a single property. + + This type is used for the elements in the sequence returned by + com::sun::star::beans::XTolerantMultiPropertySet::GetDirectPropertyTolerantResult. + + @see com::sun::star::beans::XTolerantMultiPropertySet + */ +published struct GetDirectPropertyTolerantResult : com::sun::star::beans::GetPropertyTolerantResult +{ + /** specifies the name of the property. + */ + + string Name; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/GetPropertyTolerantResult.idl b/udkapi/com/sun/star/beans/GetPropertyTolerantResult.idl new file mode 100644 index 0000000000..54d3fabe5e --- /dev/null +++ b/udkapi/com/sun/star/beans/GetPropertyTolerantResult.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** specifies information being retrieved about a single property. + + @see com::sun::star::beans::XTolerantMultiPropertySet + */ +published struct GetPropertyTolerantResult +{ + /** specifies a success or error code for the retrieval operation. + + @see com::sun::star::beans::TolerantPropertySetResultType + */ + + short Result; + + + /** contains the state of the property. + + <p>The value is undefined if <var>Result</var> is not + com::sun::star::beans::TolerantPropertySetResultType::SUCCESS.</p> + */ + com::sun::star::beans::PropertyState State; + + + /** contains the value of the property. + + <p>The value is undefined if <var>Result</var> is not + com::sun::star::beans::TolerantPropertySetResultType::SUCCESS.</p> + */ + any Value; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/IllegalTypeException.idl b/udkapi/com/sun/star/beans/IllegalTypeException.idl new file mode 100644 index 0000000000..085dd95b72 --- /dev/null +++ b/udkapi/com/sun/star/beans/IllegalTypeException.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** This exception is thrown to indicate the use of a type which is + not appropriate. + + <p>This problem can occur, if you use an `any`. </p> + @see PropertyContainer + */ +published exception IllegalTypeException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/Introspection.idl b/udkapi/com/sun/star/beans/Introspection.idl new file mode 100644 index 0000000000..360d46f483 --- /dev/null +++ b/udkapi/com/sun/star/beans/Introspection.idl @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module beans { + +/** A legacy (single-instance) service variant of theIntrospection singleton. + + @deprecated Use theIntrospection instead. +*/ +published service Introspection : com::sun::star::beans::XIntrospection; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/IntrospectionException.idl b/udkapi/com/sun/star/beans/IntrospectionException.idl new file mode 100644 index 0000000000..895903e488 --- /dev/null +++ b/udkapi/com/sun/star/beans/IntrospectionException.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module beans { + +/** This exception is thrown when an exception happens during + introspection. + @deprecated + + <p>This exception isn't specified and used anywhere</p> + */ +published exception IntrospectionException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/MethodConcept.idl b/udkapi/com/sun/star/beans/MethodConcept.idl new file mode 100644 index 0000000000..22f77c4a0a --- /dev/null +++ b/udkapi/com/sun/star/beans/MethodConcept.idl @@ -0,0 +1,106 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module beans { + +/** These constants are used to specify concepts of the + introspection which apply to methods. + + <p>This list is not necessarily complete; new constants + may be added.</p> + @see Introspection + @see XIntrospection + @see XIntrospectionAccess + +*/ +published constants MethodConcept +{ + /** This value is used to query for all methods, see + XIntrospectionAccess::getMethod() and + XIntrospectionAccess::getMethods() + */ + const long ALL = -1; + + /** specifies methods which can result in an unstable state + (i.e. deadlock, application crash, security hole, etc.) + when called directly by the user. + */ + const long DANGEROUS = 1; + + /** specifies methods which are used to set and get the + value of properties/attributes. + + <p>These methods have the signature <code>type get...() + </code>, <code>void set...()</code> or <code>boolean is...() + </code>. </p> + */ + const long PROPERTY = 2; + + /** specifies methods of the <em>listener concept</em>. + + <p>These methods have the signature <code>add...Listener() + </code> or <code>remove...Listener()</code>. </p> + */ + const long LISTENER = 4; + + /** specifies methods of the <em>enumeration concept</em>. + + <p>These methods have the signature + <code>create...Enumeration</code> and return an interface + that is derived from com::sun::star::container::XEnumeration. + Additionally, the method + com::sun::star::container::XEnumerationAccess::getElementType() + belongs to this concept.</p> + */ + const long ENUMERATION = 8; + + /** specifies methods of the <em>name container concept</em>. + + <p>These methods have the signature + <code>get...ByName()</code>, + <code>set...ByName()</code>, + <code>replace...ByName()</code>, + <code>remove...ByName()</code>, + <code>has...ByName()</code>, or + <code>get...Names</code>. In addition, the method + com::sun::star::container::XEnumerationAccess::getElementType() + belongs to this concept. </p> + */ + const long NAMECONTAINER = 16; + + /** specifies methods of the <em>index container concept</em>. + + <p>These methods have the signature + <code>get...ByIndex()</code>, + <code>insert...ByIndex()</code>, + <code>replace...ByIndex()</code>, or + <code>remove...ByIndex()</code>. + The method com::sun::star::container::XIndexAccess::getCount() + also belongs to this concept. </p> + */ + const long INDEXCONTAINER = 32; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/NamedValue.idl b/udkapi/com/sun/star/beans/NamedValue.idl new file mode 100644 index 0000000000..cd1b6aefb0 --- /dev/null +++ b/udkapi/com/sun/star/beans/NamedValue.idl @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + module com { module sun { module star { module beans { + + +/** specifies a pair assembled from a name and a value. + */ +published struct NamedValue +{ + /** specifies the name part of the pair + */ + string Name; + + + /** specifies the value part of the pair. + */ + any Value; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/NotRemoveableException.idl b/udkapi/com/sun/star/beans/NotRemoveableException.idl new file mode 100644 index 0000000000..5636241987 --- /dev/null +++ b/udkapi/com/sun/star/beans/NotRemoveableException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module beans { + + +/** This exception is thrown to indicate that removing a property from an + XPropertyContainer is not allowed. + */ +published exception NotRemoveableException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/Optional.idl b/udkapi/com/sun/star/beans/Optional.idl new file mode 100644 index 0000000000..6e3392a50d --- /dev/null +++ b/udkapi/com/sun/star/beans/Optional.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module beans { + +/** + An optional value of a given type. + + <p>This structure is used as the type of interface attributes corresponding + to instances of com::sun::star::beans::Property that + have the com::sun::star::beans::PropertyAttribute::MAYBEVOID. It might + also be useful in other situations, for example as the return type of an + interface method.</p> + */ +struct Optional<T> { + /** + Marks this structure instance as having an actual value. + */ + boolean IsPresent; + + /** + The actual value of this structure instance. + + <p>If no actual value is present, a producer of such a structure instance + should leave this member defaulted, and a consumer of such a structure + instance should ignore the specific value stored in this member.</p> + */ + T Value; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/Pair.idl b/udkapi/com/sun/star/beans/Pair.idl new file mode 100644 index 0000000000..13c08b4a2a --- /dev/null +++ b/udkapi/com/sun/star/beans/Pair.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module beans { + +/** A tuple, or pair. + + <p> + This structure allows for conveniently packing together two values of + any type, and could be useful as the result type of methods. + </p> + + @since OOo 3.0 + */ +struct Pair<T, U> { + + /// first object. + T First; + + /// second object. + U Second; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/Property.idl b/udkapi/com/sun/star/beans/Property.idl new file mode 100644 index 0000000000..3b619ace13 --- /dev/null +++ b/udkapi/com/sun/star/beans/Property.idl @@ -0,0 +1,71 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** This structure describes a property. + + There are three types of properties: + - bound properties + - constrained properties + - free properties + + */ +published struct Property +{ + /** specifies the name of the property. + + <p>The name is unique within an XPropertySet. + Upper and lower case are distinguished.</p> + */ + string Name; + + + /** contains an implementation-specific handle for the property. + + <p>It may be -1 if the implementation has no handle. You can use + this handle to get values from the XFastPropertySet.</p> + */ + long Handle; + + + /** contains an object that identifies the declared type for + the property. + + <p>If the property has multiple types or the type is not + known, <strong>but not an `any`</strong>, then + void must be returned.</p> + */ + type Type; + + + /** This field may contain zero or more constants of the + PropertyAttribute constants group. + */ + short Attributes; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/PropertyAttribute.idl b/udkapi/com/sun/star/beans/PropertyAttribute.idl new file mode 100644 index 0000000000..bddfd1cd25 --- /dev/null +++ b/udkapi/com/sun/star/beans/PropertyAttribute.idl @@ -0,0 +1,98 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module beans { + + +/** These values are used to specify the behavior of a Property. + */ +published constants PropertyAttribute +{ + + /** indicates that a property value can be void. + + <p>It does not mean that the type of the property is void!</p> + */ + const short MAYBEVOID = 1; + + + /** indicates that a PropertyChangeEvent will be fired + to all registered XPropertyChangeListeners whenever the + value of this property changes. + */ + const short BOUND = 2; + + + /** indicates that a PropertyChangeEvent will be fired + to all registered XVetoableChangeListeners whenever the + value of this property is about to change. + + <p>This always implies that the property is <em>bound</em>, too. </p> + */ + const short CONSTRAINED = 4; + + + /** indicates that the value of the property is not persistent. + */ + const short TRANSIENT = 8; + + + /** indicates that the value of the property is read-only. + */ + const short READONLY = 16; + + + /** indicates that the value of the property can be ambiguous. + */ + const short MAYBEAMBIGUOUS = 32; + + + /** indicates that the property can be set to default. + */ + const short MAYBEDEFAULT = 64; + + + /** indicates that the property can be removed + (i.e., by calling XPropertyContainer::removeProperty()). + */ + const short REMOVABLE = 128; + + /** @deprecated + same as PropertyAttribute::REMOVABLE. + */ + const short REMOVEABLE = 128; + + /** indicates that a property is optional. + + <p>This attribute is not of interest for concrete property + implementations. It's needed for property specifications inside + service specifications in UNOIDL.</p> + + @see com::sun::star::reflection::XPropertyTypeDescription + @see com::sun::star::reflection::XServiceTypeDescription + @since OOo 1.1.2 + */ + const short OPTIONAL = 256; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/PropertyBag.idl b/udkapi/com/sun/star/beans/PropertyBag.idl new file mode 100644 index 0000000000..426ef751c3 --- /dev/null +++ b/udkapi/com/sun/star/beans/PropertyBag.idl @@ -0,0 +1,42 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** Implementation of this service can keep any properties and is useful + when an XPropertySet is to be used, for example, as parameters for a method call. + + <p>Scripting engines might not be able to use such objects as normal + property sets, giving direct access to the properties. In this case, + use the methods like XPropertySet::getPropertyValue(). + */ +published service PropertyBag : XPropertyBag +{ + createDefault(); + + createWithTypes( [in] sequence<type> AllowedTypes, [in] boolean AllowEmptyPropertyName, [in] boolean AutomaticAddition ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/PropertyChangeEvent.idl b/udkapi/com/sun/star/beans/PropertyChangeEvent.idl new file mode 100644 index 0000000000..00662b2a96 --- /dev/null +++ b/udkapi/com/sun/star/beans/PropertyChangeEvent.idl @@ -0,0 +1,72 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module beans { + + +/** gets delivered whenever a "bound" or "constrained" property is changed. + + <p>A PropertyChangeEvent object is sent as an + argument to the methods of XPropertyChangeListener + and XVetoableChangeListener. </p> + + <p>Normally such events contain the name and the old and new + value of the changed property. </p> + + <p>Void values may be provided for the old and new values if their + true values are not known. </p> + */ +published struct PropertyChangeEvent: com::sun::star::lang::EventObject +{ + + /** contains the unique name of the property which changes its value. + */ + string PropertyName; + + + /** contains `TRUE` if further events in the same transaction occur. + */ + boolean Further; + + + /** contains the implementation handle for the property. + + <p>May be -1 if the implementation has no handle. You can use + this handle to get values from the XFastPropertySet.</p> + */ + long PropertyHandle; + + + /** contains the old value of the property. + */ + any OldValue; + + + /** contains the new value of the property. + */ + any NewValue; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/PropertyConcept.idl b/udkapi/com/sun/star/beans/PropertyConcept.idl new file mode 100644 index 0000000000..b216000bd8 --- /dev/null +++ b/udkapi/com/sun/star/beans/PropertyConcept.idl @@ -0,0 +1,75 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + +/** These constants are used to specify concepts of the + introspection which apply to properties and to the + methods which represent attributes. + + <p>This list is not necessarily complete; new constants + may be added.</p> + + @see Introspection + @see XIntrospection + @see XIntrospectionAccess + */ +published constants PropertyConcept +{ + /** This value is used to query for all properties. + + See + XIntrospectionAccess::getProperty() and + XIntrospectionAccess::getProperties() + */ + const long ALL = -1; + + /** specifies that the change or retrieval of this + property directly by the user can result in an unstable + state (deadlock, application crash, security hole, etc.) + */ + const long DANGEROUS = 1; + + /** specifies all properties which are reachable by + XPropertySet, XFastPropertySet or + XMultiPropertySet. + */ + const long PROPERTYSET = 2; + + + /** specifies all properties which are actually attributes of interfaces. + */ + const long ATTRIBUTES = 4; + + + /** specifies all properties which are represented by getter or setter methods. + + <p>These methods have the signature <code>type get...()</code>, + <code>void set...()</code> or <code>boolean is...()</code>.</p> + */ + const long METHODS = 8; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/PropertyExistException.idl b/udkapi/com/sun/star/beans/PropertyExistException.idl new file mode 100644 index 0000000000..55295d5e57 --- /dev/null +++ b/udkapi/com/sun/star/beans/PropertyExistException.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module beans { + + +/** This exception is thrown to indicate that a property with this name already + exists in the object. + + @see PropertyContainer + */ +published exception PropertyExistException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/PropertySet.idl b/udkapi/com/sun/star/beans/PropertySet.idl new file mode 100644 index 0000000000..6442ffe478 --- /dev/null +++ b/udkapi/com/sun/star/beans/PropertySet.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module beans { + + +/** This is a generic service which should be supported by all services + which have properties. + + <p>It specifies several, mostly optional ways to access properties. + */ +published service PropertySet +{ + interface com::sun::star::beans::XPropertySet; + + [optional] interface com::sun::star::beans::XFastPropertySet; + [optional] interface com::sun::star::beans::XMultiPropertySet; + [optional] interface com::sun::star::beans::XPropertyAccess; + [optional] interface com::sun::star::beans::XPropertyState; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/PropertySetInfoChange.idl b/udkapi/com/sun/star/beans/PropertySetInfoChange.idl new file mode 100644 index 0000000000..8338456a62 --- /dev/null +++ b/udkapi/com/sun/star/beans/PropertySetInfoChange.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module beans { + + +/** specifies reasons for sending PropertySetInfoChangeEvents. + + @see PropertySetInfoChangeEvent + @see XPropertySetInfo + */ +published constants PropertySetInfoChange +{ + + /** A property was inserted into a XPropertySetInfo. + */ + const long PROPERTY_INSERTED = 0; + + + /** A property was removed from a XPropertySetInfo. + */ + const long PROPERTY_REMOVED = 1; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/PropertySetInfoChangeEvent.idl b/udkapi/com/sun/star/beans/PropertySetInfoChangeEvent.idl new file mode 100644 index 0000000000..399ad5dfb4 --- /dev/null +++ b/udkapi/com/sun/star/beans/PropertySetInfoChangeEvent.idl @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** gets delivered whenever an XPropertySetInfo is + changed. + + <p>A PropertySetInfoChangeEvent object is sent + to XPropertySetInfoChangeListeners.</p> + */ +published struct PropertySetInfoChangeEvent: com::sun::star::lang::EventObject +{ + + /** contains the name of the property. + */ + string Name; + + + /** contains the implementation handle for the property. + + <p>May be -1 if the implementation has no handle.</p> + */ + long Handle; + + + /** contains the reason for the event. + + @see PropertySetInfoChange + */ + long Reason; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/PropertyState.idl b/udkapi/com/sun/star/beans/PropertyState.idl new file mode 100644 index 0000000000..1c5c0d133f --- /dev/null +++ b/udkapi/com/sun/star/beans/PropertyState.idl @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** This enumeration lists the states that a property value can have. + + <p>The state consists of two aspects: </p> + <ol> + <li>whether a value is available or void, </li> + <li>whether the value is stored in the property set itself or is a + default, or ambiguous. </li> + </ol> + + @see XPropertyState + @see Property + */ +published enum PropertyState +{ + + /** The value of the property is stored in the PropertySet itself. + + <p>The property value must be available and of the specified type. + If the PropertyAttribute field in the struct + Property contains PropertyAttribute::MAYBEVOID, + then the value may be void. </p> + */ + DIRECT_VALUE, + + + /** The value of the property is available from a master (e.g., template). + + <p>The PropertyAttribute field in the struct + Property must contain the + PropertyAttribute::MAYBEDEFAULT flag. The property + value must be available and of the specified type. If the + PropertyAttribute field in the struct Property + contains PropertyAttribute::MAYBEVOID, then the + value may be void. </p> + */ + DEFAULT_VALUE, + + + /** The value of the property is only a recommendation because there + are multiple values for this property (e.g., from a multi selection). + + <p>The PropertyAttribute field in the struct + Property must contain the + PropertyAttribute::MAYBEAMBIGUOUS flag. The + property value must be available and of the specified type. + If the Attribute field in the struct Property contains + PropertyAttribute::MAYBEVOID, then the value + may be void. </p> + */ + AMBIGUOUS_VALUE + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/PropertyStateChangeEvent.idl b/udkapi/com/sun/star/beans/PropertyStateChangeEvent.idl new file mode 100644 index 0000000000..d77327afc2 --- /dev/null +++ b/udkapi/com/sun/star/beans/PropertyStateChangeEvent.idl @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** is delivered whenever the state of a "bound" property is changed. + + <p>It is sent as an argument to the method of + XPropertyStateChangeListener. </p> + + <p>Normally these events are accompanied by the name, and the old + and new values of the changed property. </p> + + <p>Void values may be provided for the old and new values if their + true values are not known. </p> + */ +published struct PropertyStateChangeEvent: com::sun::star::lang::EventObject +{ + + /** specifies the name of the property which changes its value. + + <p>This name identifies the property uniquely within an + XPropertySet. Upper and lower case are distinguished.</p> + */ + string PropertyName; + + + /** contains the implementation handle for the property. + + <p>It may be -1 if the implementation has no handle. You can use this + handle to get values from the XFastPropertySet + interface.</p> + */ + long PropertyHandle; + + + /** contains the old value of the property. + */ + com::sun::star::beans::PropertyState OldValue; + + + /** contains the new value of the property. + */ + com::sun::star::beans::PropertyState NewValue; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/PropertyValue.idl b/udkapi/com/sun/star/beans/PropertyValue.idl new file mode 100644 index 0000000000..c4b8516000 --- /dev/null +++ b/udkapi/com/sun/star/beans/PropertyValue.idl @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module beans { + + +/** specifies a property value. + */ +published struct PropertyValue +{ + /** specifies the name of the property. + + <p>The name is unique within a sequence of PropertyValues. + Upper and lower case are distinguished.</p> + */ + string Name; + + + /** contains an implementation-specific handle for the property. + + <p>It may be -1 if the implementation has no handle. If available + it can be used for fast lookups.</p> + */ + long Handle; + + + /** contains the value of the property or `VOID`, + if no value is available. + */ + any Value; + + + /** determines if the value comes from the object itself or from + a default and if the value cannot be determined exactly. + */ + com::sun::star::beans::PropertyState State; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/PropertyValues.idl b/udkapi/com/sun/star/beans/PropertyValues.idl new file mode 100644 index 0000000000..3b6142373c --- /dev/null +++ b/udkapi/com/sun/star/beans/PropertyValues.idl @@ -0,0 +1,32 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module beans { + +/** specifies a sequence of PropertyValue instances. + + <p>Such sequences are especially useful for remote interfaces. </p> +*/ +published typedef sequence<PropertyValue> PropertyValues; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/PropertyVetoException.idl b/udkapi/com/sun/star/beans/PropertyVetoException.idl new file mode 100644 index 0000000000..86739e42c1 --- /dev/null +++ b/udkapi/com/sun/star/beans/PropertyVetoException.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** This exception is thrown when a proposed change to a + property represents an unacceptable value. + + @see XPropertySet + */ +published exception PropertyVetoException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/SetPropertyTolerantFailed.idl b/udkapi/com/sun/star/beans/SetPropertyTolerantFailed.idl new file mode 100644 index 0000000000..13715d5507 --- /dev/null +++ b/udkapi/com/sun/star/beans/SetPropertyTolerantFailed.idl @@ -0,0 +1,52 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** specifies information about a single property failed to be set. + + @see com::sun::star::beans::XTolerantMultiPropertySet + */ +published struct SetPropertyTolerantFailed +{ + /** specifies the name of the property. + */ + string Name; + + + /** specifies the success or error code for setting the + properties value. + + <p>Since the property was not successful set the result will never be + com::sun::star::beans::TolerantPropertySetResultType::SUCCESS. + </p> + + @see com::sun::star::beans::TolerantPropertySetResultType + */ + short Result; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/StringPair.idl b/udkapi/com/sun/star/beans/StringPair.idl new file mode 100644 index 0000000000..f75caabbfd --- /dev/null +++ b/udkapi/com/sun/star/beans/StringPair.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module beans { + + +/** specifies a pair of two strings. + */ +published struct StringPair +{ + /** specifies the first of the two strings. + */ + string First; + + + /** specifies the second of the two strings. + */ + string Second; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/TolerantPropertySetResultType.idl b/udkapi/com/sun/star/beans/TolerantPropertySetResultType.idl new file mode 100644 index 0000000000..8179131056 --- /dev/null +++ b/udkapi/com/sun/star/beans/TolerantPropertySetResultType.idl @@ -0,0 +1,77 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** specifies the possible failure types when using the + com::sun::star::beans::XTolerantMultiPropertySet + interface. + + <p>It usually matches one of the exception types that may occur when + using the + com::sun::star::beans::XPropertySet or + com::sun::star::beans::XMultiPropertySet interfaces.</p> +*/ +constants TolerantPropertySetResultType +{ + /** the property has been successfully set or retrieved. + */ + const short SUCCESS = 0; + + /** the property is not available. + + <p>For example if a + com::sun::star::beans::UnknownPropertyException + was caught.</p> + */ + const short UNKNOWN_PROPERTY = 1; + + /** the value used with the property is not valid. + + <p>For example if a + com::sun::star::lang::IllegalArgumentException + was caught.</p> + */ + const short ILLEGAL_ARGUMENT = 2; + + /** the property could not be changed at that time. + + <p>For example if a + com::sun::star::beans::PropertyVetoException + was caught.</p> + */ + const short PROPERTY_VETO = 3; + + /** a com::sun::star::lang::WrappedTargetException + did occur. + */ + const short WRAPPED_TARGET = 4; + + /** the operation failed and the reason is not known. + */ + const short UNKNOWN_FAILURE = 5; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/UnknownPropertyException.idl b/udkapi/com/sun/star/beans/UnknownPropertyException.idl new file mode 100644 index 0000000000..35a5079c23 --- /dev/null +++ b/udkapi/com/sun/star/beans/UnknownPropertyException.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module beans { + + +/** This exception is thrown to indicate that the property name is unknown to + the implementation. + + @see XPropertySet + */ +published exception UnknownPropertyException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XExactName.idl b/udkapi/com/sun/star/beans/XExactName.idl new file mode 100644 index 0000000000..0f32374cff --- /dev/null +++ b/udkapi/com/sun/star/beans/XExactName.idl @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** provides a method of changing names for converting + an approximate name to an existing name. + + <p> One field of application is the conversion of case-insensitive + names to the existing names. </p> + + <p>Example: A basic interpreter ignores the case of the names. So + it must query the XExactName interface and then call + the method. </p> + + @see com::sun::star::beans::XPropertySet + @see com::sun::star::beans::XIntrospectionAccess + @see com::sun::star::container::XNameAccess + */ +published interface XExactName: com::sun::star::uno::XInterface +{ + + /** @returns + the exact name for a given approximate name. + + <p>For example "getExactName" could be returned for "GETEXACTNAME" + when "GETEXACTNAME" was used by a case insensitive scripting language. </p> + */ + string getExactName( [in] string aApproximateName ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XFastPropertySet.idl b/udkapi/com/sun/star/beans/XFastPropertySet.idl new file mode 100644 index 0000000000..2e3aa7c041 --- /dev/null +++ b/udkapi/com/sun/star/beans/XFastPropertySet.idl @@ -0,0 +1,91 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** provides a fast way of accessing and changing property values. + + <p>This interface is an extension to the XPropertySet + interface. The get and set methods use handles to access the + property values instead of character strings.</p> + */ +published interface XFastPropertySet: com::sun::star::uno::XInterface +{ + + /** sets the value to the property with the specified name. + + @param nHandle + contains the implementation handle of the + implementation for the property. + + @param aValue + contains the new value of the property. + + @throws UnknownPropertyException + if the property does not exist. + + @throws PropertyVetoException + if a vetoable listener does not approve the change of + a property value. + + @throws IllegalArgumentException + if the new value cannot be converted to the type of the + underlying property by an identity or widening conversion. + + @throws com::sun::star::lang::WrappedTargetException + if the implementation has an internal reason for the exception. + In this case the original exception is wrapped into this + com::sun::star::lang::WrappedTargetException. + + */ + void setFastPropertyValue( [in] long nHandle, + [in] any aValue ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::beans::PropertyVetoException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + + + /** @returns + the value of the property with the name PropertyName. + + @param nHandle + contains the implementation handle of the implementation for the property. + + @throws UnknownPropertyException + if the property does not exist. + + @throws com::sun::star::lang::WrappedTargetException + if the implementation has an internal reason for the exception. + In this case the original exception is wrapped into that + com::sun::star::lang::WrappedTargetException. + */ + any getFastPropertyValue( [in] long nHandle ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XHierarchicalPropertySet.idl b/udkapi/com/sun/star/beans/XHierarchicalPropertySet.idl new file mode 100644 index 0000000000..9c75f75a3e --- /dev/null +++ b/udkapi/com/sun/star/beans/XHierarchicalPropertySet.idl @@ -0,0 +1,134 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** provides information about and access to the + a hierarchy of properties from an implementation. + + <p> Usually an object that implements this interface + also implements XPropertySet and at + least some of the properties have subproperties. </p> + + <p> This interface allows direct access to subsubproperties, ... + up to an arbitrary nesting depth. Often the intermediate + elements of the hierarchy implement XProperty. </p> + + <p> Each implementation specifies how the + hierarchical property names, that are + used to access the elements of the hierarchy, + are formed. </p> + + <p> Commonly a notation similar to filesystem paths + (separated by '/' slashes) or nested module names + (separated by dots '.' or '::') is used. </p> + + */ +published interface XHierarchicalPropertySet: com::sun::star::uno::XInterface +{ + + /** retrieve information about the hierarchy of properties + + @returns + the XHierarchicalPropertySetInfo interface, + which describes the property hierarchy of the object which + supplies this interface. + + @returns + `NULL` if the implementation cannot or will + not provide information about the properties; otherwise the + interface XHierarchicalPropertySetInfo is returned. + */ + com::sun::star::beans::XHierarchicalPropertySetInfo + getHierarchicalPropertySetInfo(); + + + /** sets the value of the property with the specified nested name. + + @param aHierarchicalPropertyName + This parameter specifies the name of the property. + + @param aValue + This parameter specifies the new value for the property. + + @throws UnknownPropertyException + if the property does not exist. + + @throws PropertyVetoException + if the property is constrained and the change is vetoed by a + XVetoableChangeListener. + + @throws com::sun::star::uno::lang::IllegalArgumentException + if <var>aValue</var> is not a legal value for this property or + if <var>aHierarchicalPropertyName</var> is not a well-formed + nested name for this hierarchy. + An implementation is not required to detect the latter condition. + + @throws com::sun::star::lang::WrappedTargetException + if the implementation has an internal reason for the exception. + In this case the original exception is wrapped into that + com::sun::star::lang::WrappedTargetException. + + @see XPropertySet::setPropertyValue + */ + void setHierarchicalPropertyValue( [in] string aHierarchicalPropertyName, + [in] any aValue ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::beans::PropertyVetoException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + + + /** @returns + the value of the property with the specified nested name. + + @param aHierarchicalPropertyName + This parameter specifies the name of the property. + + @throws UnknownPropertyException + if the property does not exist. + + @throws com::sun::star::uno::lang::IllegalArgumentException + if <var>aHierarchicalPropertyName</var> is not a well-formed + nested name for this hierarchy. + An implementation is not required to detect this + condition. + + @throws com::sun::star::lang::WrappedTargetException + if the implementation has an internal reason for the exception. + In this case the original exception is wrapped into that + com::sun::star::lang::WrappedTargetException. + + @see XPropertySet::getPropertyValue + */ + any getHierarchicalPropertyValue( [in] string aHierarchicalPropertyName ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XHierarchicalPropertySetInfo.idl b/udkapi/com/sun/star/beans/XHierarchicalPropertySetInfo.idl new file mode 100644 index 0000000000..8770e3fb01 --- /dev/null +++ b/udkapi/com/sun/star/beans/XHierarchicalPropertySetInfo.idl @@ -0,0 +1,73 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** specifies a hierarchy of properties. + + <p>The specification only describes the properties, it does not contain + any values.</p> + */ +published interface XHierarchicalPropertySetInfo: com::sun::star::uno::XInterface +{ + + /** @returns + the property with the specified name from the hierarchy. + + @param aHierarchicalName + specifies the nested name of the property. + + @throws UnknownPropertyException + if the property does not exist. + + @throws com::sun::star::lang::IllegalArgumentException + if <var>aHierarchicalName</var> is not a well-formed + nested name for this hierarchy. + An implementation is not required to detect this + condition. + + */ + com::sun::star::beans::Property getPropertyByHierarchicalName( [in] string aHierarchicalName ) + raises( com::sun::star::beans::UnknownPropertyException ); + + + /** @returns + `TRUE` if a property with the specified name exists; + otherwise `FALSE` is returned. + + @param aHierarchicalName + specifies the name of the property. + + @throws com::sun::star::lang::IllegalArgumentException + if <var>aHierarchicalName</var> is not a well-formed + nested name for this hierarchy. + An implementation is not required to detect this + condition. + */ + boolean hasPropertyByHierarchicalName( [in] string aHierarchicalName ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XIntrospection.idl b/udkapi/com/sun/star/beans/XIntrospection.idl new file mode 100644 index 0000000000..edbe1bd43a --- /dev/null +++ b/udkapi/com/sun/star/beans/XIntrospection.idl @@ -0,0 +1,95 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module beans { + +/** allows the inspection of an object's properties and methods. + + <p><strong>Important note:</strong>An object can only be + inspected completely if it supports the com::sun::star::lang::XTypeProvider + interface.</p> + + <p>For details see method XIntrospection::inspect(). </p> + + @see XIntrospectionAccess + */ +published interface XIntrospection: com::sun::star::uno::XInterface +{ + /** inspects the given object. + + <p>It identifies all properties supported by the object + if they are represented in one of the following ways: </p> + + <dl> + <dt>property set </dt> + <dd>If the object supports an XPropertySet + interface, all its properties are adopted. + </dd> + + <dt>attributes </dt> + <dd>All of an object's attributes are considered as properties + with same name. If an attribute is read-only, the property + also is read-only. + </dd> + + <dt>get/set methods </dt> + <dd>Every method <code>RetType getX()</code> defines a + property where "X" stands for the property name and + "RetType" for its type. The method must not have any + parameters, or there is no property access method + and "X" has no property. If there is also a method + <code>void setX( [in] RetType )</code>, the property + "X" also allows write access; otherwise it is read-only. + </dd> + + <dt> <strong>Important note:</strong></dt> + <dd>If an object implements com::sun::star::container::XNameAccess, + the items that can be accessed are not considered as properties + of the object and so are not included in the property list offered by + com::sun::star::beans::XIntrospectionAccess::getProperties(). + com::sun::star::container::XNameAccess items have to be + accessed separately by com::sun::star::beans::XIntrospectionAccess::getNameAccess(). + </dd> + </dl> + + <p>In addition, the inspect method identifies all listener + access methods in the form <code>add...Listener</code>/ + <code>remove...Listener</code> (except methods of interface + XPropertySet) where "..." stands for the listener type. + </p> + + <p>Methods which do not belong to a property nor which represent + a listener access nor which are methods of XPropertySet, + com::sun::star::container::XNameAccess, + com::sun::star::container::XIndexAccess, or + com::sun::star::container::XEnumerationAccess, are considered to be normal + methods. </p> + + @see XIntrospectionAccess + */ + com::sun::star::beans::XIntrospectionAccess inspect( [in] any aObject ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XIntrospectionAccess.idl b/udkapi/com/sun/star/beans/XIntrospectionAccess.idl new file mode 100644 index 0000000000..629d26ddfe --- /dev/null +++ b/udkapi/com/sun/star/beans/XIntrospectionAccess.idl @@ -0,0 +1,260 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module beans { + + +/** represents the result of an introspection operation done by + the inspect method of XIntrospection. + + <p>This interface gives information about an object's + properties and methods as detected in the introspection + process. It's not possible to access properties or call + methods directly using this interface but it provides + access to other interfaces to do so. + See com::sun::star::beans::XIntrospectionAccess::queryAdapter()</p> + + <p>The XExactName interface has to be supported + in order to implement inaccurate name access for all objects + which implement the com::sun::star::container::XNameAccess interface + or XPropertySet.</p> + + <p>The XMaterialHolder interface has to be + supported to give access to the inspected object.</p> + + @see XPropertySet + @see com::sun::star::beans::XExactName + */ +published interface XIntrospectionAccess: com::sun::star::uno::XInterface +{ + /** returns information about which method concepts described in + the MethodConcept constants group are supported + by this XIntrospectionAccess implementation. + + <p>The minimum supported concepts should be:</p> + + <ul> + <li> MethodConcept::PROPERTY, </li> + <li> MethodConcept::LISTENER, </li> + <li> MethodConcept::ENUMERATION, </li> + <li> MethodConcept::NAMECONTAINER</li> + <li> MethodConcept::INDEXCONTAINER; </li> + </ul> + + @returns + zero or more constants of the MethodConcept + constants group combined by an arithmetical or-operation. + */ + long getSuppliedMethodConcepts(); + + /** returns information about which property concepts described in + the PropertyConcept constants group are supported + by this XIntrospectionAccess implementation. + + <p>The minimum supported concepts should be:</p> + + <ul> + <li> PropertyConcept::PROPERTYSET, </li> + <li> PropertyConcept::ATTRIBUTES and </li> + <li> PropertyConcept::METHODS. </li> + </ul> + + @returns + zero or more constants of the PropertyConcept + constants group.combined by an arithmetical or-operation. + */ + long getSuppliedPropertyConcepts(); + + /** returns information about a property if a property with + the demanded name exists and if it accords to one of the + demanded PropertyConcepts. The information + is provided as Property struct. + + @returns + A Property struct providing + information about the demanded property, + if a corresponding property exists. + + @param aName + the name of the property. + + @param nPropertyConcepts + zero or more constants of the PropertyConcept + constants group combined by an arithmetical + or-operation. + + @throws NoSuchElementException + when a property with the demanded name doesn't exist + or if it accords to a wrong PropertyConcept. + */ + com::sun::star::beans::Property getProperty( [in] string aName, + [in] long nPropertyConcepts ) + raises( com::sun::star::container::NoSuchElementException ); + + /** allows to ask if a property with the demanded name exists + and if it accords to one of the demanded PropertyConcept. + + @returns + `TRUE` if the property exists and accords to one of + the demanded PropertyConcepts, otherwise + `FALSE` is returned. + + @param aName + the name of the property. + + @param nPropertyConcepts + zero or more constants of the PropertyConcept + constants group combined by an arithmetical + or-operation. + */ + boolean hasProperty( [in] string aName, + [in] long nPropertyConcepts ); + + /** returns a sequence of properties of the introspected object + + @returns + all properties of the introspected object which accord + to the demanded PropertyConcepts. + + @param nPropertyConcepts + zero or more constants of the PropertyConcept + constants group combined by an arithmetical + or-operation. + */ + sequence<com::sun::star::beans::Property> getProperties( + [in] long nPropertyConcepts ); + + /** returns information about a method if a method with + the demanded name exists and if it accords to one of + the demanded MethodConcepts. The information is + provided as com::sun::star::reflection::XIdlMethod. + + @returns + A com::sun::star::reflection::XIdlMethod providing + information about and + access to the demanded method if a corresponding + method exists. + + @param aName + the name of the method. + + @param nMethodConcepts + zero or more constants of the MethodConcept + constants group combined by an arithmetical + or-operation. + + @throws NoSuchElementException + when a method with the demanded name doesn't exist + or if it accords to a wrong MethodConcept. + */ + com::sun::star::reflection::XIdlMethod getMethod( [in] string aName, + [in] long nMethodConcepts ) + raises( com::sun::star::lang::NoSuchMethodException ); + + /** allows to ask if a method with the demanded name exists + and if it accords to one of the demanded MethodConcept. + + @returns + `TRUE` if the method exists and accords to one of + the demanded MethodConcepts, otherwise + `FALSE` is returned. + + @param aName + the name of the method. + + @param nMethodConcepts + zero or more constants of the MethodConcept + constants group combined by an arithmetical + or-operation. + */ + boolean hasMethod( [in] string aName, + [in] long nMethodConcepts ); + + /** returns a sequence of methods of the introspected object. + + @returns + all methods of the introspected object which accord + to the demanded MethodConcepts. + + @param nMethodConcepts + zero or more constants of the MethodConcept + constants group combined by an arithmetical + or-operation. + */ + sequence<com::sun::star::reflection::XIdlMethod> getMethods( + [in] long nMethodConcepts ); + + /** returns the listener types supported by the introspected + object. + + <p>If the introspected object has the methods + <code>addFooListener( XFooListener xFoo )</code> and + <code>removeFooListener( XFooListener xFoo )</code> + the type of XFooListener will be one of the elements + in the returned sequence. + + @returns + a sequence of the types of listener interfaces + which are supported by the introspected object. + */ + sequence<type> getSupportedListeners(); + + /** creates an adapter that implements an interface with the + specified type. + + <p>To access properties, query for the XPropertySet + interface. If the XPropertySet can + be queried, the XFastPropertySet interface + must be supported too. </p> + + <p>If the introspected object implements a name container, + the introspection should return the + com::sun::star::container::XNameAccess and + com::sun::star::container::XNameContainer interfaces.</p> + + <p>If the introspected object implements an index container, + the introspection should return the + com::sun::star::container::XIndexAccess and + com::sun::star::container::XIndexContainer interfaces.</p> + + <p>If the introspected object implements an enumeration + container, the introspection should return the + com::sun::star::container::XEnumerationAccess interface.</p> + + <p>If the introspected object implements the + com::sun::star::reflection::XIdlArray interface, + the introspection should return this.</p> + + <p>To implement inaccurate name access, at all objects, + which implement the com::sun::star::container::XNameAccess or + XPropertySet interface, the XExactName interface has to be supported. + </p> + + @see com::sun::star::beans::XExactName + */ + com::sun::star::uno::XInterface queryAdapter( [in] type aInterfaceType ) + raises( com::sun::star::beans::IllegalTypeException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XMaterialHolder.idl b/udkapi/com/sun/star/beans/XMaterialHolder.idl new file mode 100644 index 0000000000..00545b55cb --- /dev/null +++ b/udkapi/com/sun/star/beans/XMaterialHolder.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module beans { + +/** gives access to the material a (tool-) object is working on. + + <p>Example: The introspection service allows the inspection of an + object's properties and methods. The result is represented as + XIntrospectionAccess interface. The inspected object then is the + material attached to the introspection tool and an implementation + of XIntrospectionAccess should also support + XMaterialHolder to give access to this material.</p> + + @see XIntrospectionAccess + */ +published interface XMaterialHolder: com::sun::star::uno::XInterface +{ + /** returns the material that is connected to this (tool-) object + + @returns + the material that is connected to this (tool-) object. + */ + any getMaterial(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XMultiHierarchicalPropertySet.idl b/udkapi/com/sun/star/beans/XMultiHierarchicalPropertySet.idl new file mode 100644 index 0000000000..c81adbf009 --- /dev/null +++ b/udkapi/com/sun/star/beans/XMultiHierarchicalPropertySet.idl @@ -0,0 +1,124 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module beans { + + +/** provides access to multiple properties which form a hierarchy. + + @see XHierarchicalPropertySet + */ +published interface XMultiHierarchicalPropertySet: com::sun::star::uno::XInterface +{ + + /** retrieve information about the hierarchy of properties + + @returns + the XHierarchicalPropertySetInfo interface, + which describes the property hierarchy of the object which + supplies this interface. + + @returns + `NULL` if the implementation cannot or will + not provide information about the properties; otherwise the + interface XHierarchicalPropertySetInfo is returned. + + @see XHierarchicalPropertySet::getHierarchicalPropertySetInfo + */ + com::sun::star::beans::XHierarchicalPropertySetInfo getHierarchicalPropertySetInfo(); + + + /** sets the values of the properties with the specified nested names. + + <p> The values of the properties must change before bound + events are fired. The values of constrained properties + should change after the vetoable events are fired, if no + exception occurs. </p> + + <p> Unknown properties are ignored. </p> + + @param aHierarchicalPropertyNames + This parameter specifies the names of the properties. + + @param Values + This parameter specifies the new values for the properties. + + @throws PropertyVetoException + if one of the properties is constrained and the change is + vetoed by a XVetoableChangeListener. + + @throws com::sun::star::lang::IllegalArgumentException + if one of the values is not a legal value for the + corresponding property or if one of the names + is not a well-formed nested name for this hierarchy. + An implementation is not required to detect the latter + condition. + + @throws com::sun::star::lang::WrappedTargetException + if the implementation has an internal reason for the exception. + In this case the original exception is wrapped into that + com::sun::star::lang::WrappedTargetException. + + @see XHierarchicalPropertySet::setHierarchicalPropertyValue + @see XMultiPropertySet::setPropertyValues + */ + + + void setHierarchicalPropertyValues( [in] sequence<string> aHierarchicalPropertyNames, + [in] sequence<any> Values ) + raises( com::sun::star::beans::PropertyVetoException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + + + /** @returns + a sequence of all values of the properties which are specified + by their nested names. + + <p> The order of the values in the returned sequence will be the same + as the order of the names in the argument. </p> + + <p> Unknown properties are ignored, in their place `NULL` will be returned. </p> + + @throws com::sun::star::lang::IllegalArgumentException + if one of the names is not a well-formed + nested name for this hierarchy. + An implementation is not required to detect this + condition. + + @throws com::sun::star::lang::WrappedTargetException + if the implementation has an internal reason for the exception. + In this case the original exception is wrapped into that + com::sun::star::lang::WrappedTargetException. + + @see XHierarchicalPropertySet::getHierarchicalPropertyValue + @see XMultiPropertySet::setPropertyValues + */ + sequence<any> getHierarchicalPropertyValues( [in] sequence<string> aPropertyNames ) + raises( com::sun::star::lang::IllegalArgumentException , + com::sun::star::lang::WrappedTargetException ); + + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XMultiPropertySet.idl b/udkapi/com/sun/star/beans/XMultiPropertySet.idl new file mode 100644 index 0000000000..407a6e449b --- /dev/null +++ b/udkapi/com/sun/star/beans/XMultiPropertySet.idl @@ -0,0 +1,138 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** provides access to multiple properties with a single call. + */ +published interface XMultiPropertySet: com::sun::star::uno::XInterface +{ + + /** @returns + the XPropertySetInfo interface, which describes + all properties of the object to which this interface belongs. + NULL is returned if the object cannot or will + not provide information about the properties. + + @see XPropertySet::getPropertySetInfo + */ + com::sun::star::beans::XPropertySetInfo getPropertySetInfo(); + + + /** sets the values to the properties with the specified names. + + <p>The values of the properties must change before the bound + events are fired. The values of the constrained properties + should change after the vetoable events are fired and only if no + exception occurred. Unknown properties are ignored. </p> + + @param aPropertyNames + specifies the names of the properties. All names must be unique. + This sequence must be alphabetically sorted. + + @param aValues + contains the new values of the properties. The order is the same + as in <var>aPropertyNames</var>. + + @throws IllegalArgumentException + if one of the new values cannot be converted to the type + of the underlying property by an identity or widening conversion. + + @throws com::sun::star::lang:WrappedTargetException + if the implementation has an internal reason for the exception. + In this case the original exception is wrapped. + */ + void setPropertyValues( [in] sequence<string> aPropertyNames, + [in] sequence<any> aValues ) + raises( com::sun::star::beans::PropertyVetoException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + + + /** @returns + a sequence of all values of the properties which are specified by their names. + + <p>The order of the values in the returned sequence will be the same + as the order of the names in the argument. </p> + + @param aPropertyNames + specifies the names of the properties. + This sequence must be alphabetically sorted. + */ + sequence<any> getPropertyValues( [in] sequence<string> aPropertyNames ); + + + /** adds an XPropertiesChangeListener to the + specified property with the specified names. + + <p>The implementation can ignore the names of the properties + and fire the event on all properties. </p> + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + + @param aPropertyNames + specifies the names of the properties. + + @param xListener + contains the listener for the property change events. + + @see removePropertiesChangeListener + */ + void addPropertiesChangeListener( [in] sequence<string> aPropertyNames, + [in] com::sun::star::beans::XPropertiesChangeListener xListener ); + + + /** removes an XPropertiesChangeListener from the listener list. + + <p>It is a "noop" if the listener is not registered. </p> + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + + @param xListener + contains the listener to be removed. + + @see addPropertiesChangeListener + */ + void removePropertiesChangeListener( + [in] com::sun::star::beans::XPropertiesChangeListener xListener ); + + + /** fires a sequence of PropertyChangeEvents to the specified + listener. + + @param aPropertyNames + specifies the sorted names of the properties. + + @param xListener + contains the listener for the property change events. + */ + void firePropertiesChangeEvent( [in] sequence<string> aPropertyNames, + [in] com::sun::star::beans::XPropertiesChangeListener xListener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XMultiPropertyStates.idl b/udkapi/com/sun/star/beans/XMultiPropertyStates.idl new file mode 100644 index 0000000000..c1ba6c30ff --- /dev/null +++ b/udkapi/com/sun/star/beans/XMultiPropertyStates.idl @@ -0,0 +1,103 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + +/** makes it possible to query information about the state of + one or more properties. + + <p>The state of a property contains information about the source of + the value, e.g. the object itself, a default or a stylesheet. + For more information see PropertyState. +*/ +published interface XMultiPropertyStates: com::sun::star::uno::XInterface +{ + /** @returns + a sequence of the states of the properties which are specified + by their names. + + <p>The order of the states is correlating to the order of the + given property names. + + @param aPropertyName + specifies the names of the properties. All names must be unique. + This sequence must be alphabetically sorted. + */ + sequence<com::sun::star::beans::PropertyState> getPropertyStates( + [in] sequence<string> aPropertyName ) + raises( com::sun::star::beans::UnknownPropertyException ); + + /** sets all properties to their default values. + + <p>Each value depends on the implementation of this interface. + If it is a bound property, you must change the value before + the change events are fired. If it is a constrained property, you + must fire the vetoable event before you change the property value. + </p> + */ + void setAllPropertiesToDefault(); + + /** sets the specified properties to their default values. + + <p>Each value depends on the implementation of this interface. + If it is a bound property, you must change the value before + the change events are fired. If it is a constrained property, you + must fire the vetoable event before you change the property value. </p> + + @param aPropertyNames + specifies the names of the properties. All names must be unique. + This sequence must be alphabetically sorted. + + @throws UnknownPropertyException + if one of the properties does not exist. + */ + void setPropertiesToDefault( [in] sequence<string> aPropertyNames ) + raises( com::sun::star::beans::UnknownPropertyException ); + + /** @returns + the default values of the properties with the specified names. + + <p>If no default exists, is not known, or is void, + then the return type at the corresponding position in the + sequence returned is `void`. </p> + + @param aPropertyNames + specifies the names of the properties. All names must be unique. + This sequence must be alphabetically sorted. + + @throws UnknownPropertyException + if one of the properties does not exist. + + @throws com::sun::star::lang::WrappedTargetException + if the implementation has an internal reason for the exception. + In this case the original exception is wrapped into that + com::sun::star::lang::WrappedTargetException. + */ + sequence<any> getPropertyDefaults( + [in] sequence<string> aPropertyNames ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::lang::WrappedTargetException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XPropertiesChangeListener.idl b/udkapi/com/sun/star/beans/XPropertiesChangeListener.idl new file mode 100644 index 0000000000..02d1932a8c --- /dev/null +++ b/udkapi/com/sun/star/beans/XPropertiesChangeListener.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** receives events which get fired whenever a bound property is changed. + */ +published interface XPropertiesChangeListener: com::sun::star::lang::XEventListener +{ + + /** gets called when bound properties are changed. + + @param aEvent + contains a sequence of PropertyChangeEvent objects + which describe the event source and the properties that have + changed. + */ + void propertiesChange( [in] sequence<com::sun::star::beans::PropertyChangeEvent> aEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XPropertiesChangeNotifier.idl b/udkapi/com/sun/star/beans/XPropertiesChangeNotifier.idl new file mode 100644 index 0000000000..3d69bd6496 --- /dev/null +++ b/udkapi/com/sun/star/beans/XPropertiesChangeNotifier.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module beans { + + +/** specifies a notifier for changed property values@see XPropertiesChangeListener + */ +published interface XPropertiesChangeNotifier: com::sun::star::uno::XInterface +{ + + /** adds an XPropertiesChangeListener to the + specified properties with the specified names. + */ + void addPropertiesChangeListener( + [in] sequence<string> PropertyNames, + [in] com::sun::star::beans::XPropertiesChangeListener Listener ); + + + /** removes an XPropertiesChangeListener from the + listener list. + */ + void removePropertiesChangeListener( + [in] sequence<string> PropertyNames, + [in] com::sun::star::beans::XPropertiesChangeListener Listener ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XProperty.idl b/udkapi/com/sun/star/beans/XProperty.idl new file mode 100644 index 0000000000..21a67e3cda --- /dev/null +++ b/udkapi/com/sun/star/beans/XProperty.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module beans { + + +/** Is implemented by objects that also are a property of + some other object. + + <p> Provides access to traits of this object that would + otherwise only be available from a containing + XPropertySet via its + XPropertySetInfo. + </p> + + */ +published interface XProperty: com::sun::star::uno::XInterface +{ + /** @returns + the specification of this object as Property. + + */ + com::sun::star::beans::Property getAsProperty(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XPropertyAccess.idl b/udkapi/com/sun/star/beans/XPropertyAccess.idl new file mode 100644 index 0000000000..8de04a7dff --- /dev/null +++ b/udkapi/com/sun/star/beans/XPropertyAccess.idl @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** makes it possible to access all property values and to set them at once. + + <p>In most cases this interface will be in addition to + XPropertySet. It is especially useful for remote + communication because it lessens the number of calls for getting + property values; that is especially important because these calls + are necessarily synchronous. </p> + + <p>Another advantage of this method is that conflicts are avoided + if property value restrictions depend on the value of other properties.</p> + */ +published interface XPropertyAccess: com::sun::star::uno::XInterface +{ + + /** @returns + a sequence of all property values within the object in a single call. + */ + sequence<com::sun::star::beans::PropertyValue> getPropertyValues(); + + + /** sets the values of given properties. + + <p>All properties which are not contained in the sequence + <var>aProps</var> will be left unchanged.</p> + */ + void setPropertyValues( [in] sequence<com::sun::star::beans::PropertyValue> aProps ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::beans::PropertyVetoException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XPropertyBag.idl b/udkapi/com/sun/star/beans/XPropertyBag.idl new file mode 100644 index 0000000000..f6c90c77ae --- /dev/null +++ b/udkapi/com/sun/star/beans/XPropertyBag.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module beans { + + +/** + @since LibreOffice 4.1 + */ +published interface XPropertyBag +{ + interface com::sun::star::beans::XPropertySet; + + interface com::sun::star::beans::XPropertyContainer; + + interface com::sun::star::beans::XPropertyAccess; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XPropertyChangeListener.idl b/udkapi/com/sun/star/beans/XPropertyChangeListener.idl new file mode 100644 index 0000000000..d5cb1b4a18 --- /dev/null +++ b/udkapi/com/sun/star/beans/XPropertyChangeListener.idl @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** is used to receive PropertyChangeEvents + whenever a bound property is changed. + */ +published interface XPropertyChangeListener: com::sun::star::lang::XEventListener +{ + + /** is called when a bound property is changed. + */ + void propertyChange( [in] com::sun::star::beans::PropertyChangeEvent evt ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XPropertyContainer.idl b/udkapi/com/sun/star/beans/XPropertyContainer.idl new file mode 100644 index 0000000000..002027ce8f --- /dev/null +++ b/udkapi/com/sun/star/beans/XPropertyContainer.idl @@ -0,0 +1,75 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module beans { + + +/** makes it possible to add and remove properties to or from an object. + + <p>Some scripting engines cannot access properties directly when the + property set is changed. Please use XPropertySet::getPropertyValue() + etc. in this case. </p> + */ +published interface XPropertyContainer: com::sun::star::uno::XInterface +{ + + /** adds a property to the object. + + @param Name + specifies the name of the new property. + + @param Attributes + specifies the property attributes, see PropertyAttribute. + + @param DefaultValue + specifies the type of the new property and a potential default value. + + @throws PropertyExistException + if a property with the same name already exists. + + @throws IllegalTypeException + if the specified type is not allowed. + + */ + void addProperty( [in] string Name, + [in] short Attributes, + [in] any DefaultValue ) + raises( com::sun::star::beans::PropertyExistException, + com::sun::star::beans::IllegalTypeException, + com::sun::star::lang::IllegalArgumentException ); + + + /** removes a property from the object. + + @param Name + specified the name of the property. + + @throws UnknownPropertyException + if the property does not exist. + */ + void removeProperty( [in] string Name ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::beans::NotRemoveableException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XPropertySet.idl b/udkapi/com/sun/star/beans/XPropertySet.idl new file mode 100644 index 0000000000..3daff54e81 --- /dev/null +++ b/udkapi/com/sun/star/beans/XPropertySet.idl @@ -0,0 +1,165 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** provides information about and access to the + properties from an implementation. + + <p>There are three types of properties: </p> + + <ul> + <li>bound properties </li> + <li>constrained properties </li> + <li>free properties </li> + </ul> + + <p>You can listen to changes of bound properties with the + XPropertyChangeListener and you can veto changes + of constrained properties with the XVetoableChangeListener. </p> + + <p>To implement inaccurate name access, you must support the + interface XExactName. </p> + + @see com::sun::star::beans::XExactName + */ +published interface XPropertySet: com::sun::star::uno::XInterface +{ + + /** @returns + the XPropertySetInfo interface, which + describes all properties of the object which supplies this + interface. + + @returns + NULL if the implementation cannot or will + not provide information about the properties; otherwise the + interface XPropertySetInfo is returned. + */ + com::sun::star::beans::XPropertySetInfo getPropertySetInfo(); + + + /** sets the value of the property with the specified name. + + <p>If it is a bound property the value will be changed before + the change event is fired. If it is a constrained property + a vetoable event is fired before the property value can be + changed. </p> + + @throws com::sun::star::beans::PropertyVetoException + if the property is read-only or vetoable + and one of the listeners throws this exception + because of an unaccepted new value. + */ + void setPropertyValue( [in] string aPropertyName, + [in] any aValue ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::beans::PropertyVetoException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + + + /** @returns + the value of the property with the specified name. + + @param PropertyName + This parameter specifies the name of the property. + + @throws UnknownPropertyException + if the property does not exist. + + @throws com::sun::star::lang::WrappedTargetException + if the implementation has an internal reason for the exception. + In this case the original exception is wrapped into that + com::sun::star::lang::WrappedTargetException. + */ + any getPropertyValue( [in] string PropertyName ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::lang::WrappedTargetException ); + + + /** adds an XPropertyChangeListener to the specified property. + + <p>An empty name ("") registers the listener to all bound + properties. If the property is not bound, the behavior is + not specified. </p> + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + + @see removePropertyChangeListener + */ + void addPropertyChangeListener( [in] string aPropertyName, + [in] com::sun::star::beans::XPropertyChangeListener xListener ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::lang::WrappedTargetException ); + + + /** removes an XPropertyChangeListener from + the listener list. + + <p>It is a "noop" if the listener is not registered. </p> + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + + @see addPropertyChangeListener + */ + void removePropertyChangeListener( [in] string aPropertyName, + [in] com::sun::star::beans::XPropertyChangeListener aListener ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::lang::WrappedTargetException ); + + + /** adds an XVetoableChangeListener to the specified + property with the name PropertyName. + + <p>An empty name ("") registers the listener to all + constrained properties. If the property is not constrained, + the behavior is not specified. </p> + + @see removeVetoableChangeListener + */ + void addVetoableChangeListener( [in] string PropertyName, + [in] com::sun::star::beans::XVetoableChangeListener aListener ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::lang::WrappedTargetException ); + + + /** removes an XVetoableChangeListener from the + listener list. + + <p>It is a "noop" if the listener is not registered. </p> + + @see addVetoableChangeListener + */ + void removeVetoableChangeListener( [in] string PropertyName, + [in] com::sun::star::beans::XVetoableChangeListener aListener ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XPropertySetInfo.idl b/udkapi/com/sun/star/beans/XPropertySetInfo.idl new file mode 100644 index 0000000000..eb39710cfe --- /dev/null +++ b/udkapi/com/sun/star/beans/XPropertySetInfo.idl @@ -0,0 +1,74 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** specifies a set of properties. + + <p>There are three kinds of properties: + <ul> + <li>bound properties</li> + <li>constrained properties</li> + <li>free properties</li> + </ul> + + <p>The specification only describes the properties, it does not contain + any values.</p> + */ +published interface XPropertySetInfo: com::sun::star::uno::XInterface +{ + + /** @returns + a sequence with all property descriptors which are specified + within this XPropertySetInfo. + */ + sequence<com::sun::star::beans::Property> getProperties(); + + + /** @returns + the property with the specified name from the object. + + @param aName + specifies the name of the property. + + @throws UnknownPropertyException + if the property does not exist. + */ + com::sun::star::beans::Property getPropertyByName( [in] string aName ) + raises( com::sun::star::beans::UnknownPropertyException ); + + + /** @returns + `TRUE` if a property with the specified name exist; + otherwise `FALSE` is returned. + + @param Name + specifies the name of the property. + */ + boolean hasPropertyByName( [in] string Name ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XPropertySetInfoChangeListener.idl b/udkapi/com/sun/star/beans/XPropertySetInfoChangeListener.idl new file mode 100644 index 0000000000..26b81dd936 --- /dev/null +++ b/udkapi/com/sun/star/beans/XPropertySetInfoChangeListener.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module beans { + + +/** a listener for events related to XPropertySetInfos. + + @see PropertySetInfoChangeEvent + @see XPropertySetInfoChangeNotifier + */ +published interface XPropertySetInfoChangeListener: com::sun::star::lang::XEventListener +{ + + /** is called whenever changes of a XPropertySetInfo shall + be propagated. + */ + void propertySetInfoChange( [in] PropertySetInfoChangeEvent evt ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XPropertySetInfoChangeNotifier.idl b/udkapi/com/sun/star/beans/XPropertySetInfoChangeNotifier.idl new file mode 100644 index 0000000000..368ea11238 --- /dev/null +++ b/udkapi/com/sun/star/beans/XPropertySetInfoChangeNotifier.idl @@ -0,0 +1,53 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module beans { + + +/** a notifier for changes of XPropertySetInfos. + + @see PropertySetInfoChangeEvent + @see XPropertySetInfoChangeListener + */ +published interface XPropertySetInfoChangeNotifier: com::sun::star::uno::XInterface +{ + + /** registers a listener for PropertySetInfoChangeEvents. + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + */ + void addPropertySetInfoChangeListener( + [in] XPropertySetInfoChangeListener Listener ); + + + /** removes a listener for PropertySetInfoChangeEvents. + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + */ + void removePropertySetInfoChangeListener( + [in] XPropertySetInfoChangeListener Listener ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XPropertySetOption.idl b/udkapi/com/sun/star/beans/XPropertySetOption.idl new file mode 100644 index 0000000000..d397396c03 --- /dev/null +++ b/udkapi/com/sun/star/beans/XPropertySetOption.idl @@ -0,0 +1,24 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +module com { module sun { module star { module beans { + +interface XPropertySetOption: com::sun::star::uno::XInterface +{ + /** + * Turn on or off notifying change listeners on property value change. + * This option is turned on by default. + */ + void enableChangeListenerNotification( [in] boolean bEnable ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XPropertyState.idl b/udkapi/com/sun/star/beans/XPropertyState.idl new file mode 100644 index 0000000000..6c86b7a429 --- /dev/null +++ b/udkapi/com/sun/star/beans/XPropertyState.idl @@ -0,0 +1,114 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** makes it possible to query information about the state of + one or more properties. + + <p>The state contains the information if:</p> + <ul> + <li>a value is available or void</li> + <li>the value is stored in the object itself, or if a default value is to be used</li> + <li>and if the value cannot be determined, due to ambiguity + (multi selection with multiple values).</li> + </ul> + */ +published interface XPropertyState: com::sun::star::uno::XInterface +{ + + /** @returns + the state of the property. + + @param PropertyName + specifies the name of the property. + + @throws UnknownPropertyException + if the property does not exist. + */ + com::sun::star::beans::PropertyState getPropertyState( + [in] string PropertyName ) + raises( com::sun::star::beans::UnknownPropertyException ); + + + /** @returns + a sequence of the states of the properties which are specified + by their names. + + <p>The order of the states is correlating to the order of the + given property names. </p> + + @param aPropertyName + contains the sequence of property names. + + @throws UnknownPropertyException + if one property does not exist. + */ + sequence<com::sun::star::beans::PropertyState> getPropertyStates( + [in] sequence<string> aPropertyName ) + raises( com::sun::star::beans::UnknownPropertyException ); + + + /** Sets the property to default value. + + <p>The value depends on the implementation of this interface. + If it is a bound property, you must change the value before + the change events are fired. If it is a constrained property, you + must fire the vetoable event before you change the property value. + </p> + + @param PropertyName + specifies the name of the property. + + @throws UnknownPropertyException + if the property does not exist. + */ + void setPropertyToDefault( [in] string PropertyName ) + raises( com::sun::star::beans::UnknownPropertyException ); + + + /** @returns + the default value of the property with the name PropertyName. + + <p>If no default exists, is not known or is void, + then the return type is `void`. + + @param aPropertyName + specifies the name of the property. + + @throws UnknownPropertyException + if the property does not exist. + + @throws com::sun::star::lang::WrappedTargetException + if the implementation has an internal reason for the exception. + In this case the original exception is wrapped into that + com::sun::star::lang::WrappedTargetException. + */ + any getPropertyDefault( [in] string aPropertyName ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::lang::WrappedTargetException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XPropertyStateChangeListener.idl b/udkapi/com/sun/star/beans/XPropertyStateChangeListener.idl new file mode 100644 index 0000000000..ec6f824808 --- /dev/null +++ b/udkapi/com/sun/star/beans/XPropertyStateChangeListener.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** receives events which get fired whenever the state of a bound + property is changed. + */ +published interface XPropertyStateChangeListener: com::sun::star::lang::XEventListener +{ + + /** is called when a bound property's state is changed. + + @param aEvent + describes the event source and the property that has changed. + */ + void propertyStateChange( [in] com::sun::star::beans::PropertyStateChangeEvent aEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XPropertyWithState.idl b/udkapi/com/sun/star/beans/XPropertyWithState.idl new file mode 100644 index 0000000000..925bed7c9a --- /dev/null +++ b/udkapi/com/sun/star/beans/XPropertyWithState.idl @@ -0,0 +1,89 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module beans { + + +/** makes it possible to query information about the state of + this object, seen as a property contained in a property set. + + <p> This interface provides direct access to operations + that are available if the containing property set + implements XPropertyState. + </p> + + <p>The state contains the information if:</p> + <ul> + <li>a value is available or void</li> + <li>the value is stored in the object itself, or if a default value is being used</li> + <li>or if the value cannot be determined, due to ambiguity + (multi selection with multiple values).</li> + </ul> + + <p> Generally objects that implement this interface + also implement XProperty. + </p> + */ +published interface XPropertyWithState: com::sun::star::uno::XInterface +{ + + /** @returns + the state of this as a property. + */ + com::sun::star::beans::PropertyState getStateAsProperty( ); + + + /** sets this to its default value. + + <p> The value depends on the implementation of this interface. + If this is a bound property, the value changes before + the change events are fired. If this is a constrained property, + the vetoable event is fired before the property value changes. + </p> + + @throws com::sun::star::lang::WrappedTargetException + if the implementation has an internal reason for the exception. + In this case the original exception is wrapped into that + com::sun::star::lang::WrappedTargetException. + */ + void setToDefaultAsProperty( ) + raises( com::sun::star::lang::WrappedTargetException ); + + + /** @returns + an object representing the default state of this object (as a property). + + <p> If no default exists, is not known or is void, + then the return value is `NULL`. + </p> + + @throws com::sun::star::lang::WrappedTargetException + if the implementation has an internal reason for the exception. + In this case the original exception is wrapped into that + com::sun::star::lang::WrappedTargetException. + */ + com::sun::star::uno::XInterface getDefaultAsProperty( ) + raises( com::sun::star::lang::WrappedTargetException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XTolerantMultiPropertySet.idl b/udkapi/com/sun/star/beans/XTolerantMultiPropertySet.idl new file mode 100644 index 0000000000..0c31c4b53d --- /dev/null +++ b/udkapi/com/sun/star/beans/XTolerantMultiPropertySet.idl @@ -0,0 +1,127 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + +module com { module sun { module star { module beans { + + +/** provides access to multiple iformation of + a set of properties with a single call. + + <p>The speciality of this interface is that none of the functions + will throw the usual exceptions associated with setting and retrieving + of property values. Instead the data for the failures is collected and + returned.</p> + + <p>Note: There is no support for property change listeners in this + interface.</p> + + @see com::sun::star::beans::XPropertySet + @see com::sun::star::beans::XMultiPropertySet + */ +published interface XTolerantMultiPropertySet : com::sun::star::uno::XInterface +{ + + /** sets the values to the properties with the specified names. + + @param aPropertyNames + specifies the names of the properties. + The property names must be sorted ascending. + + <p>If the names are not sorted the behaviour of the method + is undefined!</p> + + @param aValues + specifies the values of the properties. + The order of the values has to be the same as in the + <var>aPropertyNames</var> parameter int order to match + the property name with its value. + + @returns + An empty sequence if all properties are successful set. + + Otherwise for every property value that could not successfully + be set an entry of the + com::sun::star::beans::SetPropertyTolerantFailed + will be present in this sequence. + The order of the properties is also alphabetically ascending. + + @throws IllegalArgumentException + if the number of property names and values do not match. + + */ + sequence< com::sun::star::beans::SetPropertyTolerantFailed > setPropertyValuesTolerant( + [in] sequence< string > aPropertyNames, + [in] sequence< any > aValues ) + raises( com::sun::star::lang::IllegalArgumentException ); + + + /** retrieve the values of the specified properties + + <p>The count and order of the values in the returned sequence + will be the same as the order of the names in the argument.</p> + + @param aPropertyNames + specifies the names of the properties. + The property names must be sorted ascending. + + <p>If the names are not sorted the behaviour of the method + is undefined!</p> + + @returns + a sequence of type + com::sun::star::beans::GetPropertyTolerantResult + for each of the properties listed in <var>aPropertyNames</var>. + */ + sequence< com::sun::star::beans::GetPropertyTolerantResult > getPropertyValuesTolerant( + [in] sequence< string > aPropertyNames ); + + + + /** retrieve only those values of the specified properties which + are direct values. + + <p>Since the count of returned elements may be different from + the number of supplied property names the returned elements + will also state the name of the property.</p> + + @param aPropertyNames + specifies the names of the properties. + The property names must be sorted ascending. + + <p>If the names are not sorted the behaviour of the method + is undefined!</p> + + @returns + a sequence of type + com::sun::star::beans::GetDirectPropertyTolerantResult + but only for those properties supplied whose state is + com::sun::star::beans::PropertyState::DIRECT_VALUE. + */ + sequence< com::sun::star::beans::GetDirectPropertyTolerantResult > getDirectPropertyValuesTolerant( + [in] sequence< string > aPropertyNames ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/XVetoableChangeListener.idl b/udkapi/com/sun/star/beans/XVetoableChangeListener.idl new file mode 100644 index 0000000000..5391865f6e --- /dev/null +++ b/udkapi/com/sun/star/beans/XVetoableChangeListener.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module beans { + + +/** is used to receive PropertyChangeEvents + whenever a "constrained" property is changed. + + <p>You can register an XVetoableChangeListener with + a source object so as to be notified of any constrained property updates.</p> + */ +published interface XVetoableChangeListener: com::sun::star::lang::XEventListener +{ + + /** gets called when a constrained property is changed. + */ + void vetoableChange( [in] com::sun::star::beans::PropertyChangeEvent aEvent ) + raises( com::sun::star::beans::PropertyVetoException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/beans/theIntrospection.idl b/udkapi/com/sun/star/beans/theIntrospection.idl new file mode 100644 index 0000000000..477c83dfb3 --- /dev/null +++ b/udkapi/com/sun/star/beans/theIntrospection.idl @@ -0,0 +1,29 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +module com { module sun { module star { module beans { + +published interface XIntrospection; + +/** provides functionality to get information about an object's + properties and methods. + + <p><strong>Important note:</strong>An object can only be inspected + completely if it supports the com::sun::star::lang::XTypeProvider + interface.</p> + + <p>For details, see method XIntrospection::inspect().</p> + + @since LibreOffice 4.3 +*/ +published singleton theIntrospection: XIntrospection; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/Bridge.idl b/udkapi/com/sun/star/bridge/Bridge.idl new file mode 100644 index 0000000000..7977ce33d2 --- /dev/null +++ b/udkapi/com/sun/star/bridge/Bridge.idl @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module bridge { + + +/** This meta service allows the bridgefactory service to instantiate an + interprocess bridge using a certain transfer protocol. + + <p> Components, that support a certain protocol, must have at least two + service names: </p> + + <ul> + <li> com.sun.star.bridge.Bridge </li> + <li> arbitrary-module-path.ProtocolnameBridge </li> + </ul> + + <p>The protocol name should be written as common servicenames, first letter is a + capital letter, the rest in small letters postfixed by Bridge (e.g.: + <code>com.sun.star.bridge.UrpBridge</code> would be correct servicename for the + "urp" protocol). However, the protocol names are compared case insensitive. + If there exist two services supporting the same protocol, it is arbitrary + which one is chosen, so this should be omitted. </p> + */ +published service Bridge +{ + /** allows to initialize the bridge service with the necessary + arguments. The sequence<any> must have 4 members. + + <ol> + <li> String: The unique name of the bridge or an empty string</li> + <li> String: The protocol, that shall be instantiated</li> + <li> XConnection: The bidirectional connection, the bridge should work on</li> + <li> XInstanceProvider: + The instance provider, that shall be called to access the initial object.</li> + </ol> + */ + interface com::sun::star::lang::XInitialization; + + /** The main interface of the service + */ + interface com::sun::star::bridge::XBridge; + + /** This interface allows to terminate the interprocess bridge. + */ + interface com::sun::star::lang::XComponent; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/BridgeExistsException.idl b/udkapi/com/sun/star/bridge/BridgeExistsException.idl new file mode 100644 index 0000000000..5969f669dc --- /dev/null +++ b/udkapi/com/sun/star/bridge/BridgeExistsException.idl @@ -0,0 +1,32 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module bridge { + +/** Indicates, that it was tried to create a remote bridge with a name, + which already existed. + */ +published exception BridgeExistsException: com::sun::star::uno::Exception +{ +}; + + +};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/BridgeFactory.idl b/udkapi/com/sun/star/bridge/BridgeFactory.idl new file mode 100644 index 0000000000..513bf4e69f --- /dev/null +++ b/udkapi/com/sun/star/bridge/BridgeFactory.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module bridge { + + +/** allows to create new or access existing interprocess bridges. + + <p> It enumerates at the servicemanager all services supporting + the meta service com.sun.star.bridge.Bridge to get all known, possible + protocols. + + @see com::sun::star::bridge::Bridge + */ +published service BridgeFactory : com::sun::star::bridge::XBridgeFactory2; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/IiopBridge.idl b/udkapi/com/sun/star/bridge/IiopBridge.idl new file mode 100644 index 0000000000..6ec717a6de --- /dev/null +++ b/udkapi/com/sun/star/bridge/IiopBridge.idl @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module bridge { + +/** Concrete service of the meta service Bridge for iiop. + + <p> This bridge works with the iiop protocol. </p> + + @see com::sun::star::bridge::Bridge + */ +published service IiopBridge +{ + /** This interface allows to initialize the bridge service with the necessary + arguments. The sequence<any> must have 4 members. + + <ol> + <li> String: The unique name of the bridge or an empty string</li> + <li> String: iiop</li> + <li> XConnection: The bidirectional connection, the bridge should work on</li> + <li> XInstanceProvider: + The instance provider, that shall be called to access the initial object.</li> + </ol> + */ + interface com::sun::star::lang::XInitialization; + + /** The main interface of the service. + */ + interface com::sun::star::bridge::XBridge; + + /** allows to terminate the interprocess bridge. + */ + interface com::sun::star::lang::XComponent; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/InvalidProtocolChangeException.idl b/udkapi/com/sun/star/bridge/InvalidProtocolChangeException.idl new file mode 100644 index 0000000000..9e862db013 --- /dev/null +++ b/udkapi/com/sun/star/bridge/InvalidProtocolChangeException.idl @@ -0,0 +1,42 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module bridge { + + +/** Indicates, that a requested property change could not be executed by the + remote counterpart. + + @see XProtocolProperties +*/ +published exception InvalidProtocolChangeException : com::sun::star::uno::Exception +{ + /** The first invalid property. + */ + ProtocolProperty invalidProperty; + + /** Contains 1, if the property name is unknown to the thrower; + or contains 2, if the property's value can't be accepted by the thrower. + */ + long reason; +}; + +};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/ModelDependent.idl b/udkapi/com/sun/star/bridge/ModelDependent.idl new file mode 100644 index 0000000000..19cbe30cf2 --- /dev/null +++ b/udkapi/com/sun/star/bridge/ModelDependent.idl @@ -0,0 +1,42 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module bridge { + +/** These constants are used to specify model-dependent representations. + + <p>They are only used for creating bridges to other component models. + + @see com::sun::star::bridge::XBridgeSupplier2 + */ +published constants ModelDependent +{ + const short UNO = 1; + const short OLE = 2; + const short JAVA = 3; + const short CORBA = 4; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/OleApplicationRegistration.idl b/udkapi/com/sun/star/bridge/OleApplicationRegistration.idl new file mode 100644 index 0000000000..255d719a86 --- /dev/null +++ b/udkapi/com/sun/star/bridge/OleApplicationRegistration.idl @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module bridge { + + +/** registers UNO objects as COM objects. + + <p> + That is, COM class factories are registered with COM at runtime. The required + EXE server is the application which deploys this service. In order to access the + factories by COM API functions, there need to be proper registry entries. This service + does not provide for writing those entries.<p> + The instantiation of the registered objects can be carried out by any ordinary mechanism + which is used in a certain language to create COM components. For example, CreateObject + in Visual Basic, CoCreateInstance in C++. + </p><p> + Currently only a factory for the service com.sun.star.long.MultiServiceFactory is registered + by this service. The CLSID is {82154420-0FBF-11d4-8313-005004526AB4} and the ProgId is + com.sun.star.ServiceManager. + </p> + + <p>OleApplicationRegistration does not provide any particular interface because the UNO objects + are registered while instantiating this service and deregistered + if the implementation, which makes use of this service, is being released.</p> + <p> + @deprecated + */ +published service OleApplicationRegistration +{ + + interface com::sun::star::uno::XInterface; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/OleBridgeSupplier.idl b/udkapi/com/sun/star/bridge/OleBridgeSupplier.idl new file mode 100644 index 0000000000..8a2fd5b141 --- /dev/null +++ b/udkapi/com/sun/star/bridge/OleBridgeSupplier.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module bridge { + + + +/** makes it possible to generate OLE bridges to UNO objects and vice versa. + + <p>The service implements the XBridgeSupplier interface + and handles the model types ModelDependent::UNO and + ModelDependent::OLE. The service does not specify any + requirements on registering OLE objects and class factories. </p> + @deprecated + */ +published service OleBridgeSupplier +{ + interface com::sun::star::bridge::XBridgeSupplier; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/OleBridgeSupplier2.idl b/udkapi/com/sun/star/bridge/OleBridgeSupplier2.idl new file mode 100644 index 0000000000..4f24ff1498 --- /dev/null +++ b/udkapi/com/sun/star/bridge/OleBridgeSupplier2.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module bridge { + +/** maps UNO types to oleautomation types and vice versa.<p> + + The XBridgeSupplier2 interface provides the function <code>createBridge</code> which + maps a value of a UNO or Automation type to the desired target type. If a UNO interface + was mapped to IDispatch, then all objects (interfaces, structs) and other + types which + are obtained from that Automation object are automatically mapped to the corresponding + Automation types. Hence, if one provides an initial object which forms the root of all + other objects, such as a service manager, then only that object needs to be explicitly + mapped by a call to <code>createBridge</code>. The same holds true if an automation + object is mapped to a UNO interface.<br> + <p>The Automation types <code>VT_CY</code> and <code>VT_DATE</code> are not supported. + For Automation objects to be mapped they have to implement IDispatch interface. Other + COM interfaces, + except for IUnknown, are not supported.UNO interfaces and structs are mapped to IDispatch. + + <p>The service implements the XBridgeSupplier2 interface + and handles the model types + com::sun::star::bridge::ModelDependent::UNO and + com::sun::star::bridge::ModelDependent::OLE. + The service does not specify any + requirements for registering OLE objects and class factories. </p> + + @deprecated +*/ +published service OleBridgeSupplier2 +{ + interface com::sun::star::bridge::XBridgeSupplier2; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/OleBridgeSupplierVar1.idl b/udkapi/com/sun/star/bridge/OleBridgeSupplierVar1.idl new file mode 100644 index 0000000000..cc744c816f --- /dev/null +++ b/udkapi/com/sun/star/bridge/OleBridgeSupplierVar1.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module bridge { + + +/** maps UNO types to COM types and vice versa. It is optimized for use in a + remote scenario. <p> +The functionality is basically the same as +com::sun::star::bridge::OleBridgeSupplier2. +However, the implementation should be optimized for remote access. For example, it could +try to reduce the calls into the remote process. Also it could create components on its own behalf in the remote process, if this increases performance. + +@deprecated +*/ +published service OleBridgeSupplierVar1 +{ + service OleBridgeSupplier2; + +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/OleObjectFactory.idl b/udkapi/com/sun/star/bridge/OleObjectFactory.idl new file mode 100644 index 0000000000..87647e9935 --- /dev/null +++ b/udkapi/com/sun/star/bridge/OleObjectFactory.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module bridge { + + +/** makes it possible to create COM objects as UNO objects. + + <p>A COM object must have a ProgId since the ProgId is used as argument for + XMultiServiceFactory::createInstance. The only interfaces which are mapped + are <code>IUnknown</code> and <code>IDispatch</code>. + The created UNO objects support com::sun::star::script::XInvocation + if the original COM objects support IDispatch. </p> + + <p>The optional parameters of the method + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + are reserved for future use; at this time they are ignored. </p> + + @deprecated + */ +published service OleObjectFactory +{ + interface com::sun::star::lang::XMultiServiceFactory; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/ProtocolProperty.idl b/udkapi/com/sun/star/bridge/ProtocolProperty.idl new file mode 100644 index 0000000000..a05f8e4927 --- /dev/null +++ b/udkapi/com/sun/star/bridge/ProtocolProperty.idl @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module bridge { + +/** string/value pair + */ +published struct ProtocolProperty +{ + string Name; + + any Value; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/UnoUrlResolver.idl b/udkapi/com/sun/star/bridge/UnoUrlResolver.idl new file mode 100644 index 0000000000..5828ed09c8 --- /dev/null +++ b/udkapi/com/sun/star/bridge/UnoUrlResolver.idl @@ -0,0 +1,35 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module bridge { + +published interface XUnoUrlResolver; + + +/** provides the ability to access remote processes, + resolving them by a UNO url. + <br> + */ +published service UnoUrlResolver: XUnoUrlResolver; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/UrpBridge.idl b/udkapi/com/sun/star/bridge/UrpBridge.idl new file mode 100644 index 0000000000..28bbd687b5 --- /dev/null +++ b/udkapi/com/sun/star/bridge/UrpBridge.idl @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module bridge { + +/** Concrete service of the meta service Bridge for the urp protocol. + + <p>This bridge works with the urp protocol. + + @see com::sun::star::bridge::Bridge + */ +published service UrpBridge +{ + /** This interface allows to initialize the bridge service with the necessary + arguments. The sequence<any> must have 4 members. + + <ol> + <li> String: The unique name of the bridge or an empty string</li> + <li> String: urp</li> + <li> XConnection: The bidirectional connection, the bridge should work on</li> + <li> XInstanceProvider: + The instance provider, that shall be called to access the initial object.</li> + </ol> + */ + interface com::sun::star::lang::XInitialization; + + /** The main interface of the service. + */ + interface com::sun::star::bridge::XBridge; + + /** allows to terminate the interprocess bridge. + */ + interface com::sun::star::lang::XComponent; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/XBridge.idl b/udkapi/com/sun/star/bridge/XBridge.idl new file mode 100644 index 0000000000..4baa420c31 --- /dev/null +++ b/udkapi/com/sun/star/bridge/XBridge.idl @@ -0,0 +1,52 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module bridge { + +/** main interface for an interprocess bridge. + */ +published interface XBridge: com::sun::star::uno::XInterface +{ + /** tries to get an interface from the remote that is known by this name. + + <p>In general, this method is called once to get the initial object from the + remote, but it is allowed to call the method multiple times. </p> + + @param sInstanceName The name of the object, that shall be retrieved from the + remote process. The call is delegated to + com.sun.star.bridge.XInstanceProvider.getInstance() in the + remote process. + @see com::sun::star::bridge::XInstanceProvider + */ + com::sun::star::uno::XInterface getInstance( [in] string sInstanceName ); + + + /** name that the bridge got when it was created. + */ + string getName(); + + + /** a unique descriptive string: protocol + ":" + XConnection.getDescription() + */ + string getDescription(); +}; + +};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/XBridgeFactory.idl b/udkapi/com/sun/star/bridge/XBridgeFactory.idl new file mode 100644 index 0000000000..2ba8873550 --- /dev/null +++ b/udkapi/com/sun/star/bridge/XBridgeFactory.idl @@ -0,0 +1,78 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + module com { module sun { module star { module bridge { + +/** factory to create interprocess bridges. + */ +published interface XBridgeFactory: com::sun::star::uno::XInterface +{ + /** tries to create a UNO interprocess bridge. + + @param sName + The name of the bridge. This allows other components to reuse + an already created bridge (using getBridge). + <p> + If empty, an anonymous bridge is created, which cannot be retrieved with + getBridge(). No BridgeExistsException can be thrown in this case. + + @param sProtocol + The protocol, that will be used on the connection (e.g., urp) plus additional + comma separated name=value protocol properties. + + @param aConnection + The connection, which is used to transfer the calls. The bridge expects to + own the connection, thus it will close the connection, in case it does not + need it anymore. + + @param anInstanceProvider + gets called, when a request from remote comes in. You can pass a null reference + in case you don't want to export any objects. + + @throws BridgeExistsException + There is already a bridge registered with this name. Use getBridge instead. + + @throws IllegalArgumentException + The protocol is unknown or the connection is null. + */ + XBridge createBridge( + [in] string sName, + [in] string sProtocol , + [in] com::sun::star::connection::XConnection aConnection , + [in] XInstanceProvider anInstanceProvider ) + raises ( BridgeExistsException , com::sun::star::lang::IllegalArgumentException ); + + + /** tries to get a bridge by this name. + <p> Cannot be retrieved, when the bridge got disposed before. + + @return An existing remote bridge or a null reference. + */ + XBridge getBridge( [in] string sName ); + + /** returns the sequence of all named and unnamed UNO interprocess + bridges that are instantiated at the time the call is made. + */ + sequence < XBridge > getExistingBridges( ); +}; + + +};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/XBridgeFactory2.idl b/udkapi/com/sun/star/bridge/XBridgeFactory2.idl new file mode 100644 index 0000000000..f74c9cb578 --- /dev/null +++ b/udkapi/com/sun/star/bridge/XBridgeFactory2.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module bridge { + + +/** + Provides a unified interface for the BridgeFactory service to implement. + + @since LibreOffice 4.0 + */ +published interface XBridgeFactory2 +{ + /** The main interface of the service + */ + interface com::sun::star::bridge::XBridgeFactory; + + /** This interface allows to break possible cyclic references. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/XBridgeSupplier.idl b/udkapi/com/sun/star/bridge/XBridgeSupplier.idl new file mode 100644 index 0000000000..4b0a95a50d --- /dev/null +++ b/udkapi/com/sun/star/bridge/XBridgeSupplier.idl @@ -0,0 +1,77 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module bridge { + + + +/** defines the interface for creating bridges to other object models. + + <p>Because bridges sometimes can not be generated in an address space, + the implementation needs to check the address space of the caller by + comparing the machine and process ID against its own. These IDs are + provided by the UNO runtime. </p> + + <p>All objects, whether they are part of the UNO object model or not, + are carried in an `any`. The representation of this object + is heavily model-dependent and has to be specified in the following list: </p> + + <dl> + <dt>UNO: </dt> + <dd>The any carries normal UNO types, which can be any base type, + struct, sequence, enum, or interface. </dd> + + <dt>OLE: </dt> + <dd>The any carries an `unsigned long` (on 32-bit systems) + or an `unsigned hyper` (on 64-bit systems), which is + interpreted as a variant pointer. The any does not control the + lifetime of the represented variant. That implies that the caller + has the responsibility of freeing the OLE resources represented + by the any value. </dd> + + <dt>JAVA: </dt> + <dd>not yet specified. </dd> + </dl> + + <p>Any implementation can supply its own bridges to other object + models by implementing this interface and returning the bridge + when the method is called with itself as the first parameter. </p> + + @see com::sun::star::bridge::OleBridgeSupplier + @deprecated + */ +published interface XBridgeSupplier: com::sun::star::uno::XInterface +{ + + /** creates a bridge to provide an object of one object model with another. + */ + any createBridge( [in] any modelDepObject, + [in] com::sun::star::uno::Uik MachineId, + [in] long ProcessId, + [in] short sourceModelType, + [in] short destModelType ) + raises( com::sun::star::lang::IllegalArgumentException ); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/XBridgeSupplier2.idl b/udkapi/com/sun/star/bridge/XBridgeSupplier2.idl new file mode 100644 index 0000000000..6006befd01 --- /dev/null +++ b/udkapi/com/sun/star/bridge/XBridgeSupplier2.idl @@ -0,0 +1,94 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module bridge { + + +/** defines the interface for creating bridges to other object models. + + <p> + The created bridges are transparent to the user. That is, if one maps + an interface into the target model, then the resulting target interface + is a bridge implementation, that is not being noticed by an user. During + a call on that interface, the bridge is invoked to convert the arguments + and carry out a call according to the rules of the source model. + Return values are automatically mapped to the types of the target model. + </p> + <p> + Simple types are mapped to simple target types. That is, there is no additional + bridging code involved when those types are being used. + </p> + + <p>Sometimes a bridge cannot be created, depending on whether a program uses + the XBridgeSupplier2 interface remotely. Assuming one wants to bridge an + OLE Automation object to UNO by calling createBridge on a proxy, then the UNO remote + bridge would not recognise that the Any argument contains an IDispatch interface. + Therefore it cannot marshal it as COM requires it and the bridgeing would fail. + To prevent this, implementations of this interface should be aware of this scenario and + if necessary take the appropriate steps. The process ID argument to the createBridge + function represents the calling process and may be used by the implementation to determine + if it is being accessed remotely. + </p> + <p>All objects, whether they are part of the UNO object model or not, + are carried in an `any`. The representation of this object + is heavily model-dependent and has to be specified in the following list: </p> + + <dl> + <dt>UNO: </dt> + <dd>The any carries normal UNO types, which can be any base type, + struct, sequence, enum or interface. </dd> + + <dt>OLE: </dt> + <dd>The any carries an `unsigned long` (on 32-bit systems) + or an `unsigned hyper` (on 64-bit systems), which is + interpreted as a variant pointer. The any does not control the + lifetime of the represented variant. That implies that the caller + has the responsibility of freeing the OLE resources represented + by the any value. </dd> + + <dt>JAVA: </dt> + <dd>not specified yet. </dd> + </dl> + + </p> + <p>Any implementation can supply its own bridges to other object + models by implementing this interface and returning the bridge + when the method XBridgeSupplier2::createBridge() + is called with itself as the first parameter. </p> + + @see com::sun::star::bridge::OleBridgeSupplier2 + */ +published interface XBridgeSupplier2: com::sun::star::uno::XInterface +{ + /** creates a bridge to provide an object of one object model with another. + */ + any createBridge( [in] any aModelDepObject, + [in] sequence< byte > aProcessId, + [in] short nSourceModelType, + [in] short nDestModelType ) + raises( com::sun::star::lang::IllegalArgumentException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/XInstanceProvider.idl b/udkapi/com/sun/star/bridge/XInstanceProvider.idl new file mode 100644 index 0000000000..f4c4e6c94a --- /dev/null +++ b/udkapi/com/sun/star/bridge/XInstanceProvider.idl @@ -0,0 +1,52 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + module com { module sun { module star { module bridge { + + +/** allows to export UNO objects to other processes. + + @see XBridge + */ +published interface XInstanceProvider: com::sun::star::uno::XInterface +{ + + /** gets called, when an initial object is requested from a remote process. + You may either create a new instance or return an existing object. + + @param sInstanceName + The name of the requested object. + + @returns + the object associated with the name. The return value may be null in case + there is no object to offer for this string. In this case, XBridge.getInstance() + (in the other process) will also return a null reference. + + @throws NoSuchElementException + You may throw this exception to indicate, that there is no object for this + name. Due to a specification bug, this exception will appear as a RuntimeException + at the XBridge.getInstance() method. + */ + com::sun::star::uno::XInterface getInstance( [in] string sInstanceName ) + raises ( com::sun::star::container::NoSuchElementException ); +}; + +};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/XProtocolProperties.idl b/udkapi/com/sun/star/bridge/XProtocolProperties.idl new file mode 100644 index 0000000000..a711b40082 --- /dev/null +++ b/udkapi/com/sun/star/bridge/XProtocolProperties.idl @@ -0,0 +1,89 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module bridge { + + +/** Bridge internal interface, that allows to change protocol settings of the remote + counter part. + + <p>In general, this interface is implemented by the bridge itself. It must not + be called from outside the bridge.</p> + + <p>INTERNAL INTERFACE, DO NOT USE IT ELSEWHERE!</p> +*/ +published interface XProtocolProperties : com::sun::star::uno::XInterface +{ + /** called to get a list of bridge internal properties. Which properties can be retrieved, + is protocol dependent. + + <p> The properties MUST NOT change between a requestChange and a commit change call.</p> + */ + sequence< ProtocolProperty > getProperties( ); + + /** called to initiate a protocol change. + + <p>This method should always be called in the scope of the local bridge setting object, + because the remote counter part may do such a call at the same time + (typically at startup time). </p> + + @param nRandomNumber + In case both processes call requestChange at the same time, + the caller with the higher nRandomNumber is allowed to call + commitChange. + + @returns + 1, if the caller may ( and MUST !!!) call commitChange. + 0, if the caller is not allowed to call commitChange. This can only happen, + if the other bridge has called requestChange at the same time and + nRandomNumber is smaller than the other bridge's nRandomNumber. + The remote counterpart is supposed to call commitChange within a small + time span. Please call requestChange() after the remote counterpart has + called commitChange(). + -1 if the nRandomNumber is of the same value as the previously + sent requestChange (sent by the remote counterpart). This is a draw :o). + Generate a new random number and try again. + */ + long requestChange( [in] long nRandomNumber ); + + /** called to commit a protocol change. + + <p>It is only allowed to call commitChange, if requestChange + has been called previously and the return value was true. The new properties are + valid after the reply of commitChange has been received. + Note, that this is difficult for the callee, because it must marshal the reply + with the old settings. </p> + + <p>All properties not mentioned in the list are unchanged. + Note that the bridge must be blocked for other threads, + before commitChange is sent and unblocked + after the reply has been received. This blocks the bridge.</p> + + @throws InvalidProtocolChangeException + when the remote counterpart could not change at least one of the properties. + No property has been changed. requestChange must be called + again to initiate a new change of the protocol. + */ + void commitChange( [in] sequence< ProtocolProperty > newValues ) + raises ( com::sun::star::bridge::InvalidProtocolChangeException ); +}; + +};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/XUnoUrlResolver.idl b/udkapi/com/sun/star/bridge/XUnoUrlResolver.idl new file mode 100644 index 0000000000..820a4f8b2d --- /dev/null +++ b/udkapi/com/sun/star/bridge/XUnoUrlResolver.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module bridge { + + +/** allows to resolve an object using the uno-url. + */ +published interface XUnoUrlResolver: com::sun::star::uno::XInterface +{ + + /** resolves an object using the given uno-url. + @param sUnoUrl the uno-url. The uno-url is specified + <a href="http://udk.openoffice.org/common/man/spec/uno-url.html">here</a>. + + @returns the resolved object, in general a proxy for a remote object. + You can use it the same way as you use local references. + */ + com::sun::star::uno::XInterface resolve( [in] string sUnoUrl ) + raises (com::sun::star::connection::NoConnectException, + com::sun::star::connection::ConnectionSetupException, + com::sun::star::lang::IllegalArgumentException); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/oleautomation/ApplicationRegistration.idl b/udkapi/com/sun/star/bridge/oleautomation/ApplicationRegistration.idl new file mode 100644 index 0000000000..6559a6f894 --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/ApplicationRegistration.idl @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module bridge { module oleautomation { + + +/** registers UNO objects as COM objects. + <p> + That is, COM class factories are registered with COM at runtime. The required + EXE server is the application which deploys this service. In order to access + the factories by COM API functions, there need to be proper registry entries. + This service does not provide for writing those entries. + </p> + <p> + The instantiation of the registered objects can be carried out by any + ordinary mechanism which is used in a certain language to create COM + components. For example, <code>CreateObject</code> in Visual Basic, + <code>CoCreateInstance</code> in C++. + </p> + <p> + Currently only a factory for the service + com::sun::star::lang::MultiServiceFactory is registered + by this service. The CLSID is {82154420-0FBF-11d4-8313-005004526AB4} and the + ProgId is com.sun.star.ServiceManager. + </p> + <p> + ApplicationRegistration does not provide any particular + interface because the UNO objects are registered while instantiating this + service and deregistered if the implementation, which makes use of this + service, is being released. + </p> + */ +service ApplicationRegistration +{ + + interface com::sun::star::uno::XInterface; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/oleautomation/BridgeSupplier.idl b/udkapi/com/sun/star/bridge/oleautomation/BridgeSupplier.idl new file mode 100644 index 0000000000..ae8a38fc3b --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/BridgeSupplier.idl @@ -0,0 +1,63 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module bridge { module oleautomation { + +/** maps UNO types to oleautomation types and vice versa. + <p> + The function + com::sun::star::bridge::XBridgeSupplier2::createBridge() + maps a value of a UNO or Automation type to the desired target type. If a UNO + interface was mapped to <code>IDispatch</code>, then all objects + (interfaces, structs) and other types which are obtained from that Automation + object are automatically mapped to the corresponding Automation types. Hence, + if one provides an initial object which forms the root of all other objects, + such as a service manager, then only that object needs to be explicitly + mapped by a call to + com::sun::star::bridge::XBridgeSupplier2::createBridge(). + The same holds true if an automation object is mapped to a UNO interface. + </p> + <p> + For Automation objects to be mapped they have to implement + <code>IDispatch</code> interface. Other COM interfaces, except for + <code>IUnknown</code>, are not supported. UNO interfaces and structs are + mapped to <code>IDispatch</code>. + </p> + <p> + The service implements the + com::sun::star::bridge::XBridgeSupplier2 interface and + handles the model types + com::sun::star::bridge::ModelDependent::UNO and + com::sun::star::bridge::ModelDependent::OLE. + The service does not specify any requirements for registering OLE objects and + class factories. + </p> +*/ +service BridgeSupplier +{ + interface com::sun::star::bridge::XBridgeSupplier2; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/oleautomation/Currency.idl b/udkapi/com/sun/star/bridge/oleautomation/Currency.idl new file mode 100644 index 0000000000..3279d0a938 --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/Currency.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module bridge { module oleautomation { + +/** is the UNO representation of the Automation type <code>CY</code>, also know + as <code>CURRENCY</code>. + <p> + A <code>CY</code> could actually be represented as `hyper` in UNO + and therefore a typedef from `hyper` to a currency type would do. + But a typedef cannot be expressed in all language bindings. In the case + where no typedefs are supported the actual type is used. That is, a + typedef'd currency type would be represented as <code>long</code> in Java. + The information that the <code>long</code> is a currency type is lost. + </p> + <p> + When calling Automation objects from UNO the distinction between + `hyper` and a currency type is important. Therefore + Currency is declared as struct. + </p> + + @since OOo 1.1.2 + */ +struct Currency +{ + /** corresponds to the Automation type <code>CY</code>. + */ + hyper Value; +}; + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/oleautomation/Date.idl b/udkapi/com/sun/star/bridge/oleautomation/Date.idl new file mode 100644 index 0000000000..499c57cb71 --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/Date.idl @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module bridge { module oleautomation { + +/** is the UNO representation of the Automation type <code>DATE</code>. + <p> + A <code>DATE</code> could actually be represented as `double` in + UNO and therefore a typedef from `double` to a date type would + do. But a typedef cannot be expressed in all language bindings. In the + case where no typedefs are supported the actual type is used. That is, a + typedef'd date type would be represented as <code>double</code> in Java. + The information that the `double` is a date type is lost. + </p> + <p> + When calling Automation objects from UNO the distinction between + `double` and date type is important. Therefore Date + is declared as struct. + </p> + + @since OOo 1.1.2 + */ +struct Date +{ + /** corresponds to the Automation type <code>DATE</code>. + */ + double Value; +}; + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/oleautomation/Decimal.idl b/udkapi/com/sun/star/bridge/oleautomation/Decimal.idl new file mode 100644 index 0000000000..526f7a26df --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/Decimal.idl @@ -0,0 +1,54 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module bridge { module oleautomation { + +/** is the UNO representation of the Automation type <code>DECIMAL</code>. + + + @since OOo 1.1.2 + */ +struct Decimal +{ + /** corresponds to <code>DECIMAL.scale</code>. + */ + byte Scale; + + /** corresponds to <code>DECIMAL.sign</code>. + */ + byte Sign; + + /** corresponds to <code>DECIMAL.Lo32</code>. + */ + unsigned long LowValue; + + /** corresponds to <code>DECIMAL.Mid32</code>. + */ + unsigned long MiddleValue; + + /** corresponds to <code>DECIMAL.Hi32</code>. + */ + unsigned long HighValue; +}; + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/oleautomation/Factory.idl b/udkapi/com/sun/star/bridge/oleautomation/Factory.idl new file mode 100644 index 0000000000..1ea876eef6 --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/Factory.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module bridge { module oleautomation { + + +/** makes it possible to create COM objects as UNO objects. + + <p> + A COM object must have a ProgId since the ProgId is used as argument for + com::sun::star::lang::XMultiServiceFactory::createInstance(). + The only interfaces which are mapped are <code>IUnknown</code> and + <code>IDispatch</code>. The created UNO objects support + com::sun::star::script::XInvocation if the original COM + objects support <code>IDispatch</code>. + </p> + <p> + The optional parameters of the method + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + are reserved for future use; at this time they are ignored. + </p> + */ +service Factory +{ + interface com::sun::star::lang::XMultiServiceFactory; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/oleautomation/NamedArgument.idl b/udkapi/com/sun/star/bridge/oleautomation/NamedArgument.idl new file mode 100644 index 0000000000..6dce5dad38 --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/NamedArgument.idl @@ -0,0 +1,53 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module bridge { module oleautomation { + +/** represents a named argument in a call to a method of an Automation object. + <p> + The Automation bridge accepts values of NamedArgument when a + call to an Automation object is made. The call is done through the + com::sun::star::script::XInvocation::invoke() + method, which takes all arguments in a sequence of anys. Usually the order + of the arguments must correspond to the order of arguments in the Automation + method. By using instances of NamedArgument the arguments in the + sequence can be unordered. The Automation object being called must support + named arguments, otherwise the call fails. + </p> + + @since OOo 1.1.2 + */ +struct NamedArgument +{ + /** The name of the argument, for which + NamedArgument::Value is intended. + */ + string Name; + + /** The value of the argument whose name is the one as contained in the + member #Name. + */ + any Value; +}; + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/oleautomation/PropertyPutArgument.idl b/udkapi/com/sun/star/bridge/oleautomation/PropertyPutArgument.idl new file mode 100644 index 0000000000..5f890174f4 --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/PropertyPutArgument.idl @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module bridge { module oleautomation { + +/** contains a value that is used as argument in a "property put" + operation on an Automation object. + <p> + If an Automation object is converted into a UNO object by a scripting + bridge, such as + com::sun::star::bridge::oleautomation::BridgeSupplier, + then it is accessed through the + com::sun::star::script::XInvocation interface. + The methods + com::sun::star::script::XInvocation::setValue() + and + com::sun::star::script::XInvocation::getValue() + are used to access properties which do not have additional + arguments. To access a property with additional arguments, the + method + com::sun::star::script::XInvocation::invoke() + has to be used. The method implementation must decide, if the + property is to be written or read so it can perform the proper + operation on the Automation object. To make this decision, the + caller has to provide the information if the current call is + intended to be a write or read operation. This is done by + providing either instances of PropertyPutArgument or + PropertyGetArgument as arguments to + com::sun::star::script::XInvocation::Invoke. + + @since OOo 1.1.2 +*/ +struct PropertyPutArgument +{ + /** contains the actual argument. + */ + any Value; +}; + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/oleautomation/SCode.idl b/udkapi/com/sun/star/bridge/oleautomation/SCode.idl new file mode 100644 index 0000000000..0a28c0c3af --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/SCode.idl @@ -0,0 +1,52 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module bridge { module oleautomation { + +/** <p>is the UNO representation of the Automation type SCODE. + </p> + <p> + A <code>SCODE</code> is used to express errors in Automation. + In UNO it could be represented by a `long` and therefore a typedef + from `long` to a particular error type would do. But a typedef + cannot be expressed in all language bindings. In the case where no typedefs + are supported the actual type is used. That is, a typedef'd error type would + be represented as <code>int</code> in Java. The information that the + <code>int</code> is an error type is lost. + </p> + <p> + When calling Automation objects from UNO the distinction between error type + and `long` is important. Therefore the Scode is + declared as struct. + </p> + + @since OOo 1.1.2 + */ + + +struct SCode +{ + long Value; +}; + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/bridge/oleautomation/XAutomationObject.idl b/udkapi/com/sun/star/bridge/oleautomation/XAutomationObject.idl new file mode 100644 index 0000000000..d177081d6c --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/XAutomationObject.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module bridge { module oleautomation { + + +/** a tagging interface for UNO objects which represent Automation + objects. + <p> + If an Automation object is bridged into the UNO environment, then + the resulting UNO object does not distinguish itself from any + other ordinary UNO object. However, it may be desirable to have + that distinction regardless, if a UNO client needs to take + particular Automation specific characteristics into account. + By providing XAutomationObject an object declares + to be representing an Automation object. + + @since OOo 1.1.2 + */ +interface XAutomationObject: com::sun::star::uno::XInterface +{ + +}; + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/connection/Acceptor.idl b/udkapi/com/sun/star/connection/Acceptor.idl new file mode 100644 index 0000000000..b29ce4589a --- /dev/null +++ b/udkapi/com/sun/star/connection/Acceptor.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module connection { + +published interface XAcceptor; + + +/** allows to accept connection attempts from another process. + <p> + Acceptor is a delegating service. You can add further acceptors by giving + them a service name com.sun.star.connection.Acceptor.xxx, where xxx is the + connection type used in the connection string during accept()/connect() call. + + */ +published service Acceptor: XAcceptor; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/connection/AlreadyAcceptingException.idl b/udkapi/com/sun/star/connection/AlreadyAcceptingException.idl new file mode 100644 index 0000000000..0562011a51 --- /dev/null +++ b/udkapi/com/sun/star/connection/AlreadyAcceptingException.idl @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + module com { module sun { module star { module connection { + +/** Is thrown, when there is another thread already accepting on this instance. + */ +published exception AlreadyAcceptingException: com::sun::star::uno::Exception +{ +}; + + +};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/connection/ConnectionSetupException.idl b/udkapi/com/sun/star/connection/ConnectionSetupException.idl new file mode 100644 index 0000000000..a4c1d2edc9 --- /dev/null +++ b/udkapi/com/sun/star/connection/ConnectionSetupException.idl @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + module com { module sun { module star { module connection { + +/** Is thrown, when it is not possible to accept on a local resource. + */ +published exception ConnectionSetupException: com::sun::star::uno::Exception +{ +}; + + +};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/connection/Connector.idl b/udkapi/com/sun/star/connection/Connector.idl new file mode 100644 index 0000000000..5e6801de44 --- /dev/null +++ b/udkapi/com/sun/star/connection/Connector.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module connection { + +published interface XConnector; + + +/** allows to establish a connection to another process. + <p> + Connector is a delegating service. You can add further connectors by giving + them a service name com.sun.star.connection.Connector.xxx, where xxx is the + connection type used in the connection string during accept()/connect() call. + */ +published service Connector: XConnector; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/connection/NoConnectException.idl b/udkapi/com/sun/star/connection/NoConnectException.idl new file mode 100644 index 0000000000..baa7e3da85 --- /dev/null +++ b/udkapi/com/sun/star/connection/NoConnectException.idl @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module connection { + +/** Is thrown in case no one is accepting on the specified resource. + */ +published exception NoConnectException: com::sun::star::uno::Exception +{ +}; + + +};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/connection/SocketPermission.idl b/udkapi/com/sun/star/connection/SocketPermission.idl new file mode 100644 index 0000000000..a86cb9f45d --- /dev/null +++ b/udkapi/com/sun/star/connection/SocketPermission.idl @@ -0,0 +1,91 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module connection { + + +/** This permission represents access to a network via sockets. + A SocketPermission consists of a host specification and a set of actions + specifying ways to connect to that host. The host is specified as + <pre> + host = (hostname | IPaddress)[:portrange] + portrange = portnumber | -portnumber | portnumber-[portnumber] + </pre> + The host is expressed as a DNS name, as a numerical IP address, or as + <code>"localhost"</code> (for the local machine). The wildcard <code>"*"</code> + may be included once + in a DNS name host specification. If it is included, it must be in the + leftmost position, as in <code>"*.sun.com"</code>. + <br> + The port or portrange is optional. A port specification of the form <code>"N-"</code>, + where <code>N</code> is a port number, signifies all ports numbered <code>N</code> and above, + while a specification of the form <code>"-N"</code> indicates all ports numbered + <code>N</code> and below. + + <p> + The possible ways to connect to the host are + <ul> + <li><code>accept</code></li> + <li><code>connect</code></li> + <li><code>listen</code></li> + <li><code>resolve</code></li> + </ul><br> + The <code>"listen"</code> action is only meaningful when used with <code>"localhost"</code>. + The <code>"resolve"</code> (resolve host/ip name service lookups) action is implied when + any of the other actions are present. + <br> + As an example of the creation and meaning of SocketPermissions, note that if + the following permission +<pre> +SocketPermission("foo.bar.com:7777", "connect,accept"); +</pre> + is granted, it allows to connect to port 7777 on foo.bar.com, and to + accept connections on that port. + <br> + Similarly, if the following permission +<pre> +SocketPermission("localhost:1024-", "accept,connect,listen"); +</pre> + is granted, it allows that code to accept connections on, connect to, or listen + on any port between 1024 and 65535 on the local host. + </p> + + @attention + Granting code permission to accept or make connections to remote hosts may be + dangerous because malevolent code can then more easily transfer and share + confidential data among parties who may not otherwise have access to the data. + </p> + + @since OOo 1.1.2 +*/ +published struct SocketPermission +{ + /** target host with optional portrange + */ + string Host; + /** comma separated actions list + */ + string Actions; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/connection/XAcceptor.idl b/udkapi/com/sun/star/connection/XAcceptor.idl new file mode 100644 index 0000000000..588e034706 --- /dev/null +++ b/udkapi/com/sun/star/connection/XAcceptor.idl @@ -0,0 +1,67 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module connection { + +/** allows to passively accept connection attempts from other processes. + + <p> + This is the counterpart to the XConnector interface. + */ +published interface XAcceptor: com::sun::star::uno::XInterface +{ + /** accepts an interprocess connection. Waits until someone connects to the resource. + <p> + After a successful return, the method may be called again to accept + further connections, but the parameter string MUST be left unchanged. + + + @param sConnectionDescription + contains the kind of the connection plus a + comma separated list of attributes, + e.g., <em>socket,host=localhost,port=2345</em> for a tcpip connection. + + @return null reference, + stopAccepting was called. + Otherwise a valid XConnection reference. + + @throws AlreadyAcceptingException + Only one acceptor-thread per instance allowed. + @throws ConnectionSetupException + Problems during setting up the acceptor. + (e.g., Security-reasons, socket already busy, etc.) + @throws com::sun::star::lang::IllegalArgumentException + sConnectionDescription could not be interpreted + + */ + XConnection accept( [in] string sConnectionDescription ) + raises( AlreadyAcceptingException, + ConnectionSetupException, + com::sun::star::lang::IllegalArgumentException); + + + /** pushes acceptor out of the accept-call. + */ + void stopAccepting(); +}; + +};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/connection/XConnection.idl b/udkapi/com/sun/star/connection/XConnection.idl new file mode 100644 index 0000000000..1af7b1ff67 --- /dev/null +++ b/udkapi/com/sun/star/connection/XConnection.idl @@ -0,0 +1,86 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module connection { + +/** A bidirectional bytestream. + + <p> You should additionally implement XConnection2. + + @see XConnection2 + */ +published interface XConnection: com::sun::star::uno::XInterface +{ + + /** reads a requested number of bytes from the connection. + <p> This method is blocking, meaning that it always returns a bytesequence + with the requested number of bytes, unless it has reached end of file (which + often means, that close() has been called). + + <p> please see also the readSomeBytes() method of XConnection2. + + @return The read number of bytes. + The return value and the length of the + returned sequence must be identical. + @param aReadBytes + The buffer to receive the read bytes. + @param nBytesToRead + The number of bytes to be read from the stream. + + @throws com::sun::star::io::IOException + in case an error occurred during reading from the stream. + */ + long read( [out] sequence < byte > aReadBytes , [in] long nBytesToRead ) + raises( com::sun::star::io::IOException ); + + /** writes the given bytesequence to the stream. + <p>The method blocks until the whole sequence is written. + + @throws com::sun::star::io::IOException + in case an error occurred during writing to the stream. + */ + void write( [in] sequence < byte > aData ) + raises( com::sun::star::io::IOException ); + + + /** Empties all internal buffers. + */ + void flush( ) + raises( com::sun::star::io::IOException ); + + /** Immediately terminates any ongoing read or write calls. + All subsequent read or write calls() + */ + void close( ) + raises( com::sun::star::io::IOException ); + + + /** A unique string describing the connection. + + <p>This string is different from the arguments to XConnection::accept() + and XConnector::connect(). In general, the string contains an additional + handle value. For example, "socket,host=localhost,port=2002,uniqueValue=2324". </p> + */ + string getDescription(); +}; + +};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/connection/XConnection2.idl b/udkapi/com/sun/star/connection/XConnection2.idl new file mode 100644 index 0000000000..72c836edb4 --- /dev/null +++ b/udkapi/com/sun/star/connection/XConnection2.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module connection { + + + + +/** + XConnection2 extends the <code>XConnection</code> interface + with <code>available</code> and <code>readSomeBytes</code> +*/ +published interface XConnection2: com::sun::star::connection::XConnection +{ + + /** Gives the number of bytes available via <code>read</code> + without blocking. + */ + long available() raises(com::sun::star::io::IOException); + + /** Blocks if no data is available otherwise reads at + max <var>nMaxBytesToRead</var> but at least 1 byte. + </p> + */ + long readSomeBytes([out] sequence<byte> aData, [in] long nMaxBytesToRead) + raises(com::sun::star::io::IOException); +}; + +};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/connection/XConnectionBroadcaster.idl b/udkapi/com/sun/star/connection/XConnectionBroadcaster.idl new file mode 100644 index 0000000000..175b92be44 --- /dev/null +++ b/udkapi/com/sun/star/connection/XConnectionBroadcaster.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module connection { + + + + +/** allows to add listeners to a connection. + <p> Maybe supported by connections returned from XAcceptor::accept() + or XConnector::connect(). + */ +published interface XConnectionBroadcaster: com::sun::star::uno::XInterface +{ + + /** registers an object to receive events from this connection. + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + */ + void addStreamListener( [in] com::sun::star::io::XStreamListener aListener ); + + + /** unregisters an object to receive events from this connection. + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + */ + void removeStreamListener( [in] com::sun::star::io::XStreamListener aListener ); +}; + +};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/connection/XConnector.idl b/udkapi/com/sun/star/connection/XConnector.idl new file mode 100644 index 0000000000..742068b033 --- /dev/null +++ b/udkapi/com/sun/star/connection/XConnector.idl @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module connection { + +/** + allows to actively establish an interprocess connection. + */ +published interface XConnector: com::sun::star::uno::XInterface +{ + /** creates a new connection interprocess connection. + <p> + Tries to connect to an XAcceptor. Behavior is unspecified + if a call to connect is made when another call to connect either has not + yet returned or has returned successfully without raising an exception. + + @param sConnectionDescription + contains the kind of the connection plus a + comma separated list of attributes, + e.g., <em>socket,host=localhost,port=2345</em> for a tcpip connection. + + @throws ConnectionSetupException + Problems during setting up the connector + on client side, (e.g., Security-reasons, socket already busy .. ), + or the string could not be interpreted correctly. + + @throws NoConnectException + Couldn't reach a server (e.g. network failure), + no server is listening + */ + XConnection connect( [in] string sConnectionDescription ) + raises( NoConnectException,ConnectionSetupException ); +}; + + +};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/ContainerEvent.idl b/udkapi/com/sun/star/container/ContainerEvent.idl new file mode 100644 index 0000000000..7d4205e5fd --- /dev/null +++ b/udkapi/com/sun/star/container/ContainerEvent.idl @@ -0,0 +1,53 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + + +/** This event is fired when an element is inserted in a container. + + @see XContainerListener + */ +published struct ContainerEvent: com::sun::star::lang::EventObject +{ + + /** It contains the accessor to the element which is inserted or removed. + + <p>The type and the value of the accessor depends on the service.</p> + */ + any Accessor; + + + /** This contains the element that was inserted or removed. + */ + any Element; + + + /** This contains the replaced element. + */ + any ReplacedElement; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/ElementExistException.idl b/udkapi/com/sun/star/container/ElementExistException.idl new file mode 100644 index 0000000000..fd213f5d83 --- /dev/null +++ b/udkapi/com/sun/star/container/ElementExistException.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + + +/** is thrown by container methods, if an element is added which is already + a child of the container. + + <p>Probably not the same element is already a member, when this exception + is thrown, but a member with the same id or name. </p> + + @see XNameContainer + @see XNameContainer::insertByName + */ +published exception ElementExistException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/EnumerableMap.idl b/udkapi/com/sun/star/container/EnumerableMap.idl new file mode 100644 index 0000000000..120d0fbbce --- /dev/null +++ b/udkapi/com/sun/star/container/EnumerableMap.idl @@ -0,0 +1,122 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** provides a default XEnumerableMap implementation + + <p>For the keys put into the map using XMap::put() or createImmutable(), + the following rules apply: + <a name="keyrules"></a> + <ul><li>A `VOID` key is not allowed.</li> + <li>If the key type is <code>BOOLEAN</code>, <code>CHAR</code>, <code>FLOAT</code>, <code>DOUBLE</code>, + <code>STRING</code>, <code>TYPE</code>, or <code>UNSIGNED HYPER</code>, then only keys of exactly this + type are accepted.</li> + <li>If the key type is <code>DOUBLE</code> or <code>FLOAT</code>, then <code>Double.NaN</code> respectively + <code>Float.NaN</code> is not accepted as key.</li> + <li>If the key type's class is com::sun::star::uno::TypeClass::ENUM, then only keys + of exactly this type are accepted.</li> + <li>If the key type is any of <code>BYTE</code>, <code>SHORT</code>, <code>UNSIGNED SHORT</code>, + <code>LONG</code>, <code>UNSIGNED LONG</code>, or <code>HYPER</code>, then all keys which can losslessly + be converted to this type (possibly using widening conversions) are accepted.</li> + <li>If the key type is an interface type, then all key values denoting objects which can be queried for + the given interface are accepted.</li> + <li>All other key types are rejected.</li> + </ul></p> + + <p>For the values put into the map using XMap::put() or createImmutable(), + the following rules apply: + <a name="valuerules"></a> + <ul><li>The `VOID` value will be accepted to be put into the map.</p> + <li>If the value type's class is com::sun::star::uno::TypeClass::ANY, any value + will be accepted.</li> + <li>If the value type is an interface type, then all values denoting objects which can be queried for + the given interface are accepted.</li> + <li>If the value type's class is com::sun::star::uno::TypeClass::EXCEPTION + or com::sun::star::uno::TypeClass::STRUCT, then values whose type equals the + value type, or is a sub class of the value type, are accepted.</li> + <li>For all other value types, only values whose type matches exactly are accepted.</li> + <li>If the value type is <code>DOUBLE</code> or <code>FLOAT</code>, then <code>Double.NaN</code> respectively + <code>Float.NaN</code> is not accepted.</li> + </ul></p> + + <p>The factory methods of the <code>XEnumerableMap</code> interface support both <em>isolated</em> + and <em>non-isolated</em> enumerators. The latter one will be automatically disposed when the map changes + after enumerator creation, so every attempt to use them will result in a + com::sun::star::lang::DisposedException being thrown.</p> + + @see http://udk.openoffice.org/common/man/typesystem.html +*/ +service EnumerableMap : XEnumerableMap +{ + /** creates an instance mapping from the given key type to the given value type + + @param KeyType + denotes the type of the keys in the to-be-created map + @param ValueType + denotes the type of the values in the to-be-created map + + @throws ::com::sun::star::beans::IllegalTypeException + if KeyType or ValueType are unsupported types. + For values, all type classes except com::sun::star::uno::TypeClass::VOID + and com::sun::star::uno::TypeClass::UNKNOWN are accepted. + For keys, scalar types, strings, com::sun::star::uno::Type itself, and interface + types are accepted. + */ + create( [in] type KeyType, [in] type ValueType ) + raises( ::com::sun::star::beans::IllegalTypeException ); + + /** creates an instance mapping from the given key type to the given value type + + <p>The resulting map is immutable, so later alter operations on it will fail + with a com::sun::star::lang::NoSupportException.</p> + + @param KeyType + denotes the type of the keys in the to-be-created map + @param ValueType + denotes the type of the values in the to-be-created map + @param Values + denote the values contained in the to-be-created map + + @throws ::com::sun::star::beans::IllegalTypeException + if KeyType or ValueType are unsupported types. + For values, all type classes except com::sun::star::uno::TypeClass::VOID + are accepted.<br/> + For keys, scalar types, strings, com::sun::star::uno::Type itself, and interface + types are accepted. + @throws ::com::sun::star::lang::IllegalArgumentException + if any of the given values or keys violates the <a href="#keyrules">key rules</a> or + <a href="#valuerules">value rules</a>. + */ + createImmutable( + [in] type KeyType, + [in] type ValueType, + [in] sequence< ::com::sun::star::beans::Pair< any, any > > Values + ) + raises( ::com::sun::star::beans::IllegalTypeException, + ::com::sun::star::lang::IllegalArgumentException ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/NoSuchElementException.idl b/udkapi/com/sun/star/container/NoSuchElementException.idl new file mode 100644 index 0000000000..bf30d015b1 --- /dev/null +++ b/udkapi/com/sun/star/container/NoSuchElementException.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** is thrown by child access methods of collections, if the addressed child + does not exist. + + @see XEnumeration + @see XEnumeration::nextElement + */ +published exception NoSuchElementException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XChild.idl b/udkapi/com/sun/star/container/XChild.idl new file mode 100644 index 0000000000..52733c267c --- /dev/null +++ b/udkapi/com/sun/star/container/XChild.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + + +/** provides access to the parent of the object. + + <p>This interface normally is only supported if the objects all have + exactly one dedicated parent container.</p> + */ +published interface XChild: com::sun::star::uno::XInterface +{ + + /** grants access to the object containing this content. + */ + com::sun::star::uno::XInterface getParent(); + + + /** sets the parent to this object. + + @throws com::sun::star::lang::NoSupportException + if the name of this object cannot be changed. + */ + void setParent( [in] com::sun::star::uno::XInterface Parent ) + raises( com::sun::star::lang::NoSupportException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XComponentEnumeration.idl b/udkapi/com/sun/star/container/XComponentEnumeration.idl new file mode 100644 index 0000000000..7f60fb270f --- /dev/null +++ b/udkapi/com/sun/star/container/XComponentEnumeration.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + + +/** provides a typified enumeration through components. + */ +published interface XComponentEnumeration: com::sun::star::container::XEnumeration +{ + + /** @returns + the next component of this enumeration. + + @throws NoSuchElementException + if no more elements exist. + */ + com::sun::star::lang::XComponent nextComponent() + raises( com::sun::star::container::NoSuchElementException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XComponentEnumerationAccess.idl b/udkapi/com/sun/star/container/XComponentEnumerationAccess.idl new file mode 100644 index 0000000000..2a306c5b07 --- /dev/null +++ b/udkapi/com/sun/star/container/XComponentEnumerationAccess.idl @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + + +/** provides a factory for a typified enumeration through + a collection of components. + */ +published interface XComponentEnumerationAccess: com::sun::star::container::XEnumerationAccess +{ + + /** creates a new instance of enumeration through components. + */ + com::sun::star::container::XComponentEnumeration createComponentEnumeration(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XContainer.idl b/udkapi/com/sun/star/container/XContainer.idl new file mode 100644 index 0000000000..02b4469c51 --- /dev/null +++ b/udkapi/com/sun/star/container/XContainer.idl @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + + +/** supports quick access to the information if a container currently + contains elements. + + <p>The XContainer interface is provided for containers + which need to broadcast changes within the container; that means + the actions of adding or removing elements are broadcast to the + listeners. </p> + + <p>This can be useful for UI to enable/disable some functions + without actually accessing the data. </p> + + @see XContent + @see XIndexAccess + @see XNameAccess + @see XEnumerationAccess + */ +published interface XContainer: com::sun::star::uno::XInterface +{ + + /** adds the specified listener to receive events when + elements are inserted or removed. + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + + @see XContainerListener + */ + void addContainerListener( [in] com::sun::star::container::XContainerListener xListener ); + + + /** removes the specified listener so it does not receive + any events from this container. + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + + @see XContainerListener + */ + void removeContainerListener( [in] com::sun::star::container::XContainerListener xListener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl b/udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl new file mode 100644 index 0000000000..34488d0a65 --- /dev/null +++ b/udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +interface XContainerApproveListener; + +/** allows containers to implement a vetoing mechanism for insertion, removal, and + replacement of their elements. + */ +interface XContainerApproveBroadcaster +{ + /** adds a listener which can veto changes in the container's content + */ + void addContainerApproveListener( + [in] XContainerApproveListener Listener ); + + /** removes a previously added listener + */ + void removeContainerApproveListener( + [in] XContainerApproveListener Listener ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XContainerApproveListener.idl b/udkapi/com/sun/star/container/XContainerApproveListener.idl new file mode 100644 index 0000000000..5fcebd55ca --- /dev/null +++ b/udkapi/com/sun/star/container/XContainerApproveListener.idl @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** is notified to approve changes which happen to the content of a generic container + + @see XContainerApproveBroadcaster + */ +interface XContainerApproveListener +{ + /** is called for the listener to approve an insertion into the container + + @return + an instance implementing the com::sun::star::util::XVeto interface, + if the insertion is vetoed, `NULL` otherwise. + */ + com::sun::star::util::XVeto approveInsertElement( [in] ContainerEvent Event ) + raises ( com::sun::star::lang::WrappedTargetException ); + + /** is called for the listener to approve a replacement inside the container + + @return + an instance implementing the com::sun::star::util::XVeto interface, + if the replacement is vetoed, `NULL` otherwise. + */ + com::sun::star::util::XVeto approveReplaceElement( [in] ContainerEvent Event ) + raises ( com::sun::star::lang::WrappedTargetException ); + + /** is called for the listener to approve a removal of an element from the container + + @return + an instance implementing the com::sun::star::util::XVeto interface, + if the removal is vetoed, `NULL` otherwise. + */ + com::sun::star::util::XVeto approveRemoveElement( [in] ContainerEvent Event ) + raises ( com::sun::star::lang::WrappedTargetException ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XContainerListener.idl b/udkapi/com/sun/star/container/XContainerListener.idl new file mode 100644 index 0000000000..4e60b16676 --- /dev/null +++ b/udkapi/com/sun/star/container/XContainerListener.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + + +/** receives events when the content of the related container changes. + */ +published interface XContainerListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when a container has inserted an element. + */ + void elementInserted( [in] com::sun::star::container::ContainerEvent Event ); + + + /** is invoked when a container has removed an element. + */ + void elementRemoved( [in] com::sun::star::container::ContainerEvent Event ); + + + /** is invoked when a container has replaced an element. + */ + void elementReplaced( [in] com::sun::star::container::ContainerEvent Event ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XContainerQuery.idl b/udkapi/com/sun/star/container/XContainerQuery.idl new file mode 100644 index 0000000000..f641f502e7 --- /dev/null +++ b/udkapi/com/sun/star/container/XContainerQuery.idl @@ -0,0 +1,87 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + +/** supports simple query feature on a container + + <p> + This interface makes it possible to create sub sets of container items + which serve specified search criterion. + <p> + */ +published interface XContainerQuery: com::sun::star::uno::XInterface +{ + /** creates a sub set of container items which match given query command + + <p> + Items of this sub set must match used query string. Format of query depends + from real implementation. Using of "param=value" pairs isn't necessary. + So it's possible to combine different parameters as one simple command + string. + <p> + + @param Query items of sub set must match to this query<br> + example:<br> + (1)<br> + query as parameter sequence to return all elements which match + the name pattern and supports a special feature; sort it ascending<br> + "name=*myname_??_;sort=ascending;feature=VISIBLE"<br> + (2)<br> + query as command to return all elements which support special feature + and match by name pattern;ascending sort is the default<br> + "getAllVisible(*myname_??_)"<br> + + @returns an sub set of container items as an enumeration. + */ + XEnumeration createSubSetEnumerationByQuery( [in] string Query ); + + /** creates a sub set of container items which supports searched properties as minimum + + <p> + It's not possible to use special commands or search specific parameters here. + You can match by properties only. Enumerated elements must provide queried + properties as minimum. Not specified properties will not be used for searching. + <p> + + @param Properties items of sub set must support given properties as minimum<br> + example:<br> + (supported)<br> + search for items which match the name pattern and supports the VISIBLE feature<br> + Parameters[0].Name = "name"<br> + Parameters[0].Value = "*myname_??_"<br> + Parameters[1].Name = "feature"<br> + Parameters[1].Value = "VISIBLE"<br> + ...<br> + (unsupported)<br> + "sort" isn't a property of a container item! + Parameters[0].Name = "sort"<br> + Parameters[0].Value = "ascending"<br> + ...<br> + + @returns an sub set of container items as an enumeration. + */ + XEnumeration createSubSetEnumerationByProperties( [in] sequence< com::sun::star::beans::NamedValue > Properties ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XContentEnumerationAccess.idl b/udkapi/com/sun/star/container/XContentEnumerationAccess.idl new file mode 100644 index 0000000000..64fb51bc95 --- /dev/null +++ b/udkapi/com/sun/star/container/XContentEnumerationAccess.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + + +/** allows access to the collections of all content types within the object. + + <p>This example prints the names of all tables: </p> + + @code{.bas} + xTextTableEnum = xTextDoc.createContentEnumeration( "com::sun::star::text::TextTable" ) + while xTextTableEnum.hasMoreElements() do + print xTextTableEnum.nextElement().Name + wend + @endcode + */ +published interface XContentEnumerationAccess: com::sun::star::uno::XInterface +{ + + /** @returns + a new enumeration object for the contents of the specified service type. + */ + com::sun::star::container::XEnumeration createContentEnumeration( [in] string aServiceName ); + + /** @returns + all names of services of which instances exist in this object. + + <p>XContentEnumerationAccess::createContentEnumeration() + creates an enumeration for all the service names which are + listed here. For all others it creates no enumeration. </p> + */ + sequence<string> getAvailableServiceNames(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XElementAccess.idl b/udkapi/com/sun/star/container/XElementAccess.idl new file mode 100644 index 0000000000..61b2f272e1 --- /dev/null +++ b/udkapi/com/sun/star/container/XElementAccess.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + + +/** This is the base interface of all collection interfaces. + */ +published interface XElementAccess: com::sun::star::uno::XInterface +{ + + /** @returns + the type of the elements. `void` means that it is a + multi-type container and you cannot determine the exact types + with this interface. + */ + type getElementType(); + + + /** @returns + `TRUE` if the object contain elements, + otherwise `FALSE`. + */ + boolean hasElements(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XEnumerableMap.idl b/udkapi/com/sun/star/container/XEnumerableMap.idl new file mode 100644 index 0000000000..45c02e90a7 --- /dev/null +++ b/udkapi/com/sun/star/container/XEnumerableMap.idl @@ -0,0 +1,91 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** extends XMap with enumeration capabilities. + + <p>No assumption should be made about the ordering of the elements returned by the various enumerators. + In particular, you cannot assume the elements are returned in the same order as they were inserted. Also, + you should not expect the <code>XMap</code> implementation to make use of a possibly existing strict ordering + defined on the domain of all possible key values.</p> + + <p>You can create enumerators for the keys of the map, its values, and its key-value pairs.</p> + + <p>In all cases, you can create an <em>isolated</em> enumerator, which works on a copy of the + map's content. Such an iterator is not affected by changes done to the map after creation of + the enumerator.</p> + + <p>On the contrary, an enumerator which is <em>non-isolated</em> works directly on the map data. + This is less expensive than an <em>isolated</em> enumerator, but means that changes to the map while + an enumeration is running potentially invalidate your enumerator. The concrete behavior in this + case is undefined, it's up to the service implementing the <code>XEnumerableMap</code> interface + to specify it in more detail.</p> + + <p>Implementations of this interface might decide to support only <em>isolated</em> enumerators, or + only <em>non-isolated</em> enumerators. Again, it's up to the service to specify this. Requesting an + enumerator type which is not supported will generally result in a com::sun::star::lang::NoSupportException + being thrown.</p> + */ +interface XEnumerableMap : XMap +{ + /** creates an enumerator for the keys of the map + + @param Isolated + controls whether the newly create enumerator should be isolated from the map. + + @throws ::com::sun::star::lang::NoSupportException + if the specified enumerator method is not supported by the implementation. + */ + XEnumeration createKeyEnumeration( [in] boolean Isolated ) + raises ( ::com::sun::star::lang::NoSupportException ); + + /** creates an enumerator for the values of the map + + @param Isolated + controls whether the newly create enumerator should be isolated from the map. + + @throws ::com::sun::star::lang::NoSupportException + if the specified enumerator method is not supported by the implementation. + */ + XEnumeration createValueEnumeration( [in] boolean Isolated ) + raises ( ::com::sun::star::lang::NoSupportException ); + + /** creates an enumerator for the key-value pairs of the map + + <p>The elements returned by the enumerator are instances of com::sun::star::beans::Pair, + holding the key-value-pairs which are part of the map.</p> + + @param Isolated + controls whether the newly create enumerator should be isolated from the map. + + @throws ::com::sun::star::lang::NoSupportException + if the specified enumerator method is not supported by the implementation. + */ + XEnumeration createElementEnumeration( [in] boolean Isolated ) + raises ( ::com::sun::star::lang::NoSupportException ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XEnumeration.idl b/udkapi/com/sun/star/container/XEnumeration.idl new file mode 100644 index 0000000000..e3eb4d85f4 --- /dev/null +++ b/udkapi/com/sun/star/container/XEnumeration.idl @@ -0,0 +1,74 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + + +/** provides functionality to enumerate the contents of a container. + + <p>An object that implements the XEnumeration interface + generates a series of elements, one at a time. Successive calls to + the <code>XEnumeration::nextElement</code> method return successive + elements of the series. </p> + + <p>For example (Java), to print all elements of a vector <var>aVect</var>: + </p> + + @code{.java} + for (XEnumeration xEnum = aVect.elements() ; xEnum.hasMoreElements() ; ) + { + System.out.println( xEnum.nextElement() ); + } + @endcode + + + <p> If the object changed, the behavior of the enumeration is + not specified. This is not a remote interface. </p> + */ +published interface XEnumeration: com::sun::star::uno::XInterface +{ + + /** tests whether this enumeration contains more elements. + */ + boolean hasMoreElements(); + + + /** @returns + the next element of this enumeration. + + @throws NoSuchElementException + if no more elements exist. + + @throws com::sun::star::lang::WrappedTargetException + If the implementation has internal reasons for exceptions, + then wrap these in a com::sun::star::lang::WrappedTargetException + exception. + */ + any nextElement() + raises( com::sun::star::container::NoSuchElementException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XEnumerationAccess.idl b/udkapi/com/sun/star/container/XEnumerationAccess.idl new file mode 100644 index 0000000000..92a32cb8a8 --- /dev/null +++ b/udkapi/com/sun/star/container/XEnumerationAccess.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + + +/** used to enumerate objects in a container which contains objects. + */ +published interface XEnumerationAccess: com::sun::star::container::XElementAccess +{ + + /** @returns + a new enumeration object for this container. + It returns NULL if there are no objects in this container. + */ + com::sun::star::container::XEnumeration createEnumeration(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XHierarchicalName.idl b/udkapi/com/sun/star/container/XHierarchicalName.idl new file mode 100644 index 0000000000..7d7ab1b4b2 --- /dev/null +++ b/udkapi/com/sun/star/container/XHierarchicalName.idl @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** specifies the fully qualified name of the object within a hierarchy. + + <p>The name is generally globally unique in the hierarchy. </p> + + @see com::sun::star::container::XHierarchicalNameAccess + @see com::sun::star::container::XNamed + */ +published interface XHierarchicalName: com::sun::star::uno::XInterface +{ + + /** @returns + the fully qualified hierarchical name of the object. + */ + string getHierarchicalName(); + + + /** builds the hierarchical name of an object, given a relative name + + <p>Can be used to find the name of a descendant object in the hierarchy + without actually accessing it. </p> + + @see XHierarchicalNameAccess::hasByHierarchicalName + */ + string composeHierarchicalName( [in] string aRelativeName ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::NoSupportException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XHierarchicalNameAccess.idl b/udkapi/com/sun/star/container/XHierarchicalNameAccess.idl new file mode 100644 index 0000000000..623e1b067b --- /dev/null +++ b/udkapi/com/sun/star/container/XHierarchicalNameAccess.idl @@ -0,0 +1,67 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** is used to have hierarchical access to elements within a container. + + <p>You address an object of a specific level in the hierarchy by giving its + fully qualified name, e.g., "com.sun.star.uno.XInterface". </p> + + <p>To implement inaccurate name access, support the + com::sun::star::beans::XExactName interface. </p> + + @see com::sun::star::beans::XExactName + */ +published interface XHierarchicalNameAccess: com::sun::star::uno::XInterface +{ + + /** @returns + the object with the specified name. + + @param aName + the name of the object. + + @throws NoSuchElementException + if an element under Name does not exist. + */ + any getByHierarchicalName( [in] string aName ) + raises( com::sun::star::container::NoSuchElementException ); + + + /** @returns + `TRUE` if an element with this name is in + the container, `FALSE` otherwise. + + <p>In many cases, the next call is XNameAccess::getByName(). + You should optimize this case. + + @param aName + the name of the object. + */ + boolean hasByHierarchicalName( [in] string aName ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XHierarchicalNameContainer.idl b/udkapi/com/sun/star/container/XHierarchicalNameContainer.idl new file mode 100644 index 0000000000..8a5fcfff0f --- /dev/null +++ b/udkapi/com/sun/star/container/XHierarchicalNameContainer.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module container { + + +/** + * Insertion and removal of hierarchical elements. + */ +published interface XHierarchicalNameContainer : com::sun::star::container::XHierarchicalNameReplace +{ + + /** inserts the element at the specified name. + */ + void insertByHierarchicalName( [in] string aName, + [in] any aElement ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::ElementExistException, + com::sun::star::lang::WrappedTargetException ); + + + /** removes the element at the specified name. + */ + void removeByHierarchicalName( [in] string Name ) + raises( com::sun::star::container::NoSuchElementException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XHierarchicalNameReplace.idl b/udkapi/com/sun/star/container/XHierarchicalNameReplace.idl new file mode 100644 index 0000000000..3913263f89 --- /dev/null +++ b/udkapi/com/sun/star/container/XHierarchicalNameReplace.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + + +/** + * Replacement of hierarchical elements. + */ +published interface XHierarchicalNameReplace : com::sun::star::container::XHierarchicalNameAccess +{ + + /** replaces the element at the specified name. + */ + void replaceByHierarchicalName( [in] string aName, + [in] any aElement ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::NoSuchElementException, + com::sun::star::lang::WrappedTargetException ); +}; + + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XIdentifierAccess.idl b/udkapi/com/sun/star/container/XIdentifierAccess.idl new file mode 100644 index 0000000000..d1d76b4419 --- /dev/null +++ b/udkapi/com/sun/star/container/XIdentifierAccess.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** provides access to the elements of a collection through a unique identifier. + */ +published interface XIdentifierAccess: com::sun::star::container::XElementAccess +{ + /** @returns + the element with the specified identifier + + @param Identifier + specifies the identifier of the element that should be retrieved. + + @throws com::sun::star::lang::NoSuchElementException + If the identifier is not existing. + + @throws com::sun::star::lang::WrappedTargetException + If the implementation has internal reasons for exceptions, + then wrap these in a com::sun::star::lang::WrappedTargetException + exception. + */ + any getByIdentifier( [in] long Identifier ) + raises( com::sun::star::container::NoSuchElementException, + com::sun::star::lang::WrappedTargetException ); + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + /** @returns + a sequence of all identifiers in this container. + + <p>The order of the identifiers is not specified. </p> + */ + sequence<long> getIdentifiers(); +} +; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XIdentifierContainer.idl b/udkapi/com/sun/star/container/XIdentifierContainer.idl new file mode 100644 index 0000000000..ddbb1ec64c --- /dev/null +++ b/udkapi/com/sun/star/container/XIdentifierContainer.idl @@ -0,0 +1,76 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** This is the generic interface for supporting the creation and removal of + elements with unique identifiers. + + @see XContainer + */ +published interface XIdentifierContainer: com::sun::star::container::XIdentifierReplace +{ + + /** inserts an element and creates a new unique identifier for it. + + @returns + the newly created identifier under which the element is inserted. + + @param aElement + The new element that will be inserted. + + @throws com::sun::star::lang::IllegalArgumentException + if the argument is not valid for this container. + + @throws com::sun::star::lang::WrappedTargetException + If the implementation has internal reasons for exceptions, + then wrap these in a com::sun::star::lang::WrappedTargetException + exception. + + */ + long insert( [in] any aElement ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + + + /** removes the element with the specified identifier. + + @param Identifier + The identifier that should be removed. + + @throws com::sun::star::lang::NoSuchElementException + If the identifier does not exist. + + @throws com::sun::star::lang::WrappedTargetException + If the implementation has internal reasons for exceptions, + then wrap these in a com::sun::star::lang::WrappedTargetException + exception. + */ + void removeByIdentifier( [in] long Identifier ) + raises( com::sun::star::container::NoSuchElementException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XIdentifierReplace.idl b/udkapi/com/sun/star/container/XIdentifierReplace.idl new file mode 100644 index 0000000000..f81e1a403a --- /dev/null +++ b/udkapi/com/sun/star/container/XIdentifierReplace.idl @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + + +/** This is the generic interface for supporting the replacement of elements + with unique identifiers. +*/ +published interface XIdentifierReplace: com::sun::star::container::XIdentifierAccess +{ + /** replaces the element with the specified identifier. + + @param Identifier + specifies the identifier of the element that should be retrieved. + + @param aElement + the new element that replaces the old element for the specified identifier. + + @throws com::sun::star::lang::IllegalArgumentException + If the argument is not valid for this container. + + @throws com::sun::star::lang::NoSuchElementException + If the identifier is not existing. + + @throws com::sun::star::lang::WrappedTargetException + If the implementation has internal reasons for exceptions, + then wrap these in a com::sun::star::lang::WrappedTargetException + exception. + */ + void replaceByIdentifer( [in] long Identifier, + [in] any aElement ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::NoSuchElementException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XImplicitIDAccess.idl b/udkapi/com/sun/star/container/XImplicitIDAccess.idl new file mode 100644 index 0000000000..3b95772b56 --- /dev/null +++ b/udkapi/com/sun/star/container/XImplicitIDAccess.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + +/** makes it possible to access contents through an implicit (unique) ID. + */ +published interface XImplicitIDAccess: com::sun::star::container::XElementAccess +{ + /** @returns + the element with the specified implicit ID. + */ + any getByImplicitID( [in] string ID ) raises( com::sun::star::container::NoSuchElementException ); + + /** @returns + a sequence with all existing implicit IDs. + */ + sequence<string> getImplicitIDs(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XImplicitIDContainer.idl b/udkapi/com/sun/star/container/XImplicitIDContainer.idl new file mode 100644 index 0000000000..30e629a4bc --- /dev/null +++ b/udkapi/com/sun/star/container/XImplicitIDContainer.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + +/** makes it possible to insert and remove elements in/from a container + using an implicit (unique) ID. + */ +published interface XImplicitIDContainer: com::sun::star::container::XImplicitIDReplace +{ + /** adds a new object to the container and generates an implicit (unique) + ID for this object. + + @returns + the implicit ID for the new object. + */ + string addWithImplicitID( [in] any aElement ); + + /** removes an object from the container which is specified by + an implicit (unique) identifier. + */ + void removeByImplicitID( [in] string ID ) + raises( com::sun::star::container::NoSuchElementException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XImplicitIDReplace.idl b/udkapi/com/sun/star/container/XImplicitIDReplace.idl new file mode 100644 index 0000000000..e62598beae --- /dev/null +++ b/udkapi/com/sun/star/container/XImplicitIDReplace.idl @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + +/** makes it possible to replace contents in a collection by + an implicit (unique) ID: + */ +published interface XImplicitIDReplace: com::sun::star::uno::XInterface +{ + /** replaces the content which is specified by its implicit (unique) + ID with a new content. + */ + void replaceByUniqueID( [in] string ID, [in] any aNewElement ) + raises( com::sun::star::container::NoSuchElementException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XIndexAccess.idl b/udkapi/com/sun/star/container/XIndexAccess.idl new file mode 100644 index 0000000000..bca3bd0ed2 --- /dev/null +++ b/udkapi/com/sun/star/container/XIndexAccess.idl @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module container { + + +/** provides access to the elements of a collection through an + index. + + <p>This interface should only be used if the data structure, itself, + is indexed.</p> + */ +published interface XIndexAccess: com::sun::star::container::XElementAccess +{ + + /** @returns + the number of elements in this container. + */ + long getCount(); + + /** @returns + the element at the specified index. + + @param Index + specifies the position in the array. The first index is 0. + + @throws com::sun::star::lang::IndexOutOfBoundsException + if the index is not valid. + + @throws com::sun::star::lang::WrappedTargetException + If the implementation has internal reasons for exceptions, + then wrap these in a com::sun::star::lang::WrappedTargetException + exception. + */ + any getByIndex( [in] long Index ) + raises( com::sun::star::lang::IndexOutOfBoundsException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XIndexContainer.idl b/udkapi/com/sun/star/container/XIndexContainer.idl new file mode 100644 index 0000000000..d939a7ebed --- /dev/null +++ b/udkapi/com/sun/star/container/XIndexContainer.idl @@ -0,0 +1,52 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** This is the generic interface for supporting the insertion and removal of + indexed elements.@see XContainer + */ +published interface XIndexContainer: com::sun::star::container::XIndexReplace +{ + + /** inserts the given element at the specified index. + + <p>To append an element, use the index "last index +1". </p> + */ + void insertByIndex( [in] long Index, + [in] any Element ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::IndexOutOfBoundsException, + com::sun::star::lang::WrappedTargetException ); + + + /** removes the element at the specified index. + */ + void removeByIndex( [in] long Index ) + raises( com::sun::star::lang::IndexOutOfBoundsException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XIndexReplace.idl b/udkapi/com/sun/star/container/XIndexReplace.idl new file mode 100644 index 0000000000..3b93438ac0 --- /dev/null +++ b/udkapi/com/sun/star/container/XIndexReplace.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** This is the generic interface for supporting the replacement of indexed + elements. + @see XContainer + */ +published interface XIndexReplace: com::sun::star::container::XIndexAccess +{ + + /** replaces the element at the specified index with the given element. + */ + void replaceByIndex( [in] long Index, + [in] any Element ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::IndexOutOfBoundsException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XMap.idl b/udkapi/com/sun/star/container/XMap.idl new file mode 100644 index 0000000000..cb15314744 --- /dev/null +++ b/udkapi/com/sun/star/container/XMap.idl @@ -0,0 +1,182 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** describes a map between keys and values. + + <p>Keys in the map are unique, and each key maps to exactly one value.</p> + + <p>Locating elements in the map, both values and keys, requires a notion of equality of two objects. + In conformance with the <a href="http://udk.openoffice.org/common/man/typesystem.html">UNO type system</a>, + two values are said to be equal if and only if they have the same type, and both denote the same element of this + type's value set.</p> + + @see Map for a default implementation of this interface +*/ +interface XMap +{ + interface XElementAccess; + + /** denotes the type of the keys in the map. + + <p>Implementations are free to accept any supertype of <code>KeyType</code> as keys.</p> + */ + [attribute, readonly] type KeyType; + + /** denotes the type of the values in the map. + + <p>Implementations are free to accept any supertype of the <code>ValueType</code> as values.</p> + */ + [attribute, readonly] type ValueType; + + /** clears the map, removing all key-value pairs from it. + + @throws ::com::sun::star::lang::NoSupportException + if the map is not mutable. + */ + void clear() + raises( ::com::sun::star::lang::NoSupportException ); + + /** determines whether a mapping for he given key exists in the map + + @param Key + is the key whose presence in the map is to be tested. + @return + `TRUE` if and only if the map contains a mapping for the given key. + + @throws ::com::sun::star::beans::IllegalTypeException + if the given key is not of a type which is accepted by the map + @throws ::com::sun::star::lang::IllegalArgumentException + if the given key is not supported to be put into the map. It's up to the service + implementing the <code>XMap</code> interface to specify which special values are not + supported. For instances, implementations might decide to not allow `VOID` keys, or + to reject <code>Double.NaN</code> (<em>not a number</em>) to due its problematic + behavior with respect to equality. + */ + boolean containsKey( [in] any Key ) + raises( ::com::sun::star::beans::IllegalTypeException, + ::com::sun::star::lang::IllegalArgumentException ); + + /** determines whether the map contains a mapping to a given value. + + @param Value + is the value whose presence in the map is to be tested. + @return + `TRUE` if and only one or more keys map to the given value. + + @throws ::com::sun::star::beans::IllegalTypeException + if the given value is not of a type which is accepted by the map. It's up to the service + implementing the <code>XMap</code> interface to specify which special values are not + supported. For instances, implementations might decide to not allow <code>Double.NaN</code> + (<em>not a number</em>) to due its problematic behavior with respect to equality. + @throws ::com::sun::star::lang::IllegalArgumentException + if the given value is not supported to be put into the map. + */ + boolean containsValue( [in] any Value ) + raises( ::com::sun::star::beans::IllegalTypeException, + ::com::sun::star::lang::IllegalArgumentException ); + + /** gets the value to which a given key maps. + + @param Key + they key whose associated value is to be returned. + @return + the value which is associated with the given key. + + @throws ::com::sun::star::beans::IllegalTypeException + if the given key is not of a type which is accepted by the map + @throws ::com::sun::star::lang::IllegalArgumentException + if the given key is not supported to be put into the map. It's up to the service + implementing the <code>XMap</code> interface to specify which special values are not + supported. For instances, implementations might decide to not allow `VOID` keys, or + to reject <code>Double.NaN</code> (<em>not a number</em>) to due its problematic + behavior with respect to equality. + @throws ::com::sun::star::container::NoSuchElementException + if there is no value associated with the given key + */ + any get( [in] any Key ) + raises( ::com::sun::star::beans::IllegalTypeException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException ); + + /** associates a given key with a given value + + <p>If the map already contains a mapping for the given key, then the old value is replaced by the + given new value.</p> + + @param Key + is the key which the given value should be associated with + @param Value + is the value which should be associated with the given key + @return + the value which was previously associated with the given key, or `VOID` + if there was no such previous association. + + @throws ::com::sun::star::beans::IllegalTypeException + if the given key is not of a type which is accepted by the map + @throws ::com::sun::star::lang::IllegalArgumentException + if the given key, or the given value, is not supported to be put into the map. It's up to + the service implementing the <code>XMap</code> interface to specify which special values + are not supported.<br/> + For instances, implementations might decide to not allow `VOID` keys or values, or to + reject <code>Double.NaN</code> (<em>not a number</em>) to due its problematic behavior + with respect to equality. + @throws ::com::sun::star::lang::NoSupportException + if the map does not support putting new mappings into it + */ + any put( [in] any Key, [in] any Value ) + raises( ::com::sun::star::lang::NoSupportException, + ::com::sun::star::beans::IllegalTypeException, + ::com::sun::star::lang::IllegalArgumentException ); + + /** removes a key-value mapping, given by key, from the map. + + @param Key + is the key whose mapping should be removed from the map + @return + the value which was associated with the given key before the removal + + @throws ::com::sun::star::beans::IllegalTypeException + if the given key is not of a type which is accepted by the map + @throws ::com::sun::star::lang::IllegalArgumentException + if the given key is not supported to be put into the map. It's up to the service + implementing the <code>XMap</code> interface to specify which special values are not + supported. For instances, implementations might decide to not allow `VOID` keys, or + to reject <code>Double.NaN</code> (<em>not a number</em>) to due its problematic + behavior with respect to equality. + @throws ::com::sun::star::lang::NoSupportException + if the map does not support removing mappings + @throws ::com::sun::star::container::NoSuchElementException + if there is no value associated with the given key + */ + any remove( [in] any Key ) + raises( ::com::sun::star::lang::NoSupportException, + ::com::sun::star::beans::IllegalTypeException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XNameAccess.idl b/udkapi/com/sun/star/container/XNameAccess.idl new file mode 100644 index 0000000000..7f89b242c8 --- /dev/null +++ b/udkapi/com/sun/star/container/XNameAccess.idl @@ -0,0 +1,78 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** is used to access named objects within a container. + + <p>To implement inaccurate name access, support the + com::sun::star::beans::XExactName + interface. </p> + @see com::sun::star::beans::XExactName + */ +published interface XNameAccess: com::sun::star::container::XElementAccess +{ + + /** @returns + the object with the specified name. + + @param aName + the name of the object. + + @throws NoSuchElementException + if an element under Name does not exist. + + @throws com::sun::star::lang::WrappedTargetException + If the implementation has internal reasons for exceptions, + then wrap these in a com::sun::star::lang::WrappedTargetException + exception. + */ + any getByName( [in] string aName ) + raises( com::sun::star::container::NoSuchElementException, + com::sun::star::lang::WrappedTargetException ); + + + /** @returns + a sequence of all element names in this container. + + <p>The order of the names is not specified. </p> + */ + sequence<string> getElementNames(); + + + /** @returns + `TRUE` if an element with this name is in + the container, `FALSE` otherwise. + + <p>In many cases the next call is XNameAccess::getByName(). + You should optimize this case. </p> + + @param aName + the name of the object. + */ + boolean hasByName( [in] string aName ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XNameContainer.idl b/udkapi/com/sun/star/container/XNameContainer.idl new file mode 100644 index 0000000000..14a98c06f7 --- /dev/null +++ b/udkapi/com/sun/star/container/XNameContainer.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** This is the generic interface for supporting the insertion and removal of + named elements. + @see XContainer + */ +published interface XNameContainer: com::sun::star::container::XNameReplace +{ + + /** inserts the given element at the specified name. + */ + void insertByName( [in] string aName, + [in] any aElement ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::ElementExistException, + com::sun::star::lang::WrappedTargetException ); + + + /** removes the element with the specified name. + */ + void removeByName( [in] string Name ) + raises( com::sun::star::container::NoSuchElementException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XNameReplace.idl b/udkapi/com/sun/star/container/XNameReplace.idl new file mode 100644 index 0000000000..8b82c59084 --- /dev/null +++ b/udkapi/com/sun/star/container/XNameReplace.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** This is the generic interface for supporting the replacement of named + elements. + @see XContainer + */ +published interface XNameReplace: com::sun::star::container::XNameAccess +{ + + /** replaces the element with the specified name with the given element. + */ + void replaceByName( [in] string aName, + [in] any aElement ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::NoSuchElementException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XNamed.idl b/udkapi/com/sun/star/container/XNamed.idl new file mode 100644 index 0000000000..564556fcee --- /dev/null +++ b/udkapi/com/sun/star/container/XNamed.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** specifies the name of the object. + + <p>The name is generally unique in the container of the object.</p> + */ +published interface XNamed: com::sun::star::uno::XInterface +{ + + /** @returns + the programmatic name of the object. + */ + string getName(); + + + /** sets the programmatic name of the object. + */ + void setName( [in] string aName ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XSet.idl b/udkapi/com/sun/star/container/XSet.idl new file mode 100644 index 0000000000..5377c9bf4f --- /dev/null +++ b/udkapi/com/sun/star/container/XSet.idl @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** This is the generic interface for supporting the insertion and removal of + elements.@see XContainer + */ +published interface XSet: com::sun::star::container::XEnumerationAccess +{ + + /** @returns + `TRUE` if the given element is a member of this container, + otherwise `FALSE`. + */ + boolean has( [in] any aElement ); + + + /** inserts the given element into this container. + */ + void insert( [in] any aElement ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::ElementExistException ); + + + /** removes the given element from this container. + */ + void remove( [in] any aElement ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::NoSuchElementException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XStringKeyMap.idl b/udkapi/com/sun/star/container/XStringKeyMap.idl new file mode 100644 index 0000000000..fadc09184a --- /dev/null +++ b/udkapi/com/sun/star/container/XStringKeyMap.idl @@ -0,0 +1,115 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + + +/** maps strings to anys. + + @since OOo 2.3 + */ + +interface XStringKeyMap +{ + /** reads data from the map. + + @param aKey + The key string which should be searched for. + + @return + the value matching aKey. + + @throws com::sun::star::container::NoSuchElementException + if an element under aKey does not exist. + */ + any getValue( [in] string aKey ) + raises( com::sun::star::container::NoSuchElementException ); + + + /** checks for element existence. + + @param aKey + The key string which should be searched for. + + @return + true if an element with key aKey exists. + */ + boolean hasValue( [in] string aKey ); + + + /** writes data to the map. + + @param aKey + The key string which should be used to store the value. + + @param aValue + The value that should be stored. + + @throws com::sun::star::lang::IllegalArgumentException + if the element could not be inserted. + + @throws com::sun::star::container::ElementExistException + if there is already a value stored under the key aKey. + */ + void insertValue( [in] string aKey, [in] any aValue ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::ElementExistException ); + + + /** the number of elements in the map. + */ + [attribute, readonly] long Count; + + + /** obtains the key of an element by index. + + @param nIndex + is the index of the element. + + @return + the key string matching the given index. + + @throws com::sun::star::lang::IndexOutOfBoundsException + if the specified index is greater than the number of + elements + */ + string getKeyByIndex( [in] long nIndex ) + raises( com::sun::star::lang::IndexOutOfBoundsException ); + + + /** obtains the value of an element by index. + + @param nIndex + is the index of the key. + + @return + the value matching the given index. + + @throws com::sun::star::lang::IndexOutOfBoundsException + if the specified index is greater than the number of + elements + */ + any getValueByIndex( [in] long nIndex ) + raises( com::sun::star::lang::IndexOutOfBoundsException ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/container/XUniqueIDAccess.idl b/udkapi/com/sun/star/container/XUniqueIDAccess.idl new file mode 100644 index 0000000000..cea1479227 --- /dev/null +++ b/udkapi/com/sun/star/container/XUniqueIDAccess.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module container { + +/** makes it possible to access contents via a unique ID. + */ +published interface XUniqueIDAccess: com::sun::star::uno::XInterface +{ + /** @returns + the element with the specified unique ID. + */ + any getByUniqueID( [in] string ID ) raises( com::sun::star::container::NoSuchElementException ); + + /** removes the element with the specified unique ID from this + container. + */ + void removeByUniqueID( [in] string ID ) raises( com::sun::star::container::NoSuchElementException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/AlreadyConnectedException.idl b/udkapi/com/sun/star/io/AlreadyConnectedException.idl new file mode 100644 index 0000000000..104a616854 --- /dev/null +++ b/udkapi/com/sun/star/io/AlreadyConnectedException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is thrown when a client tries to connect to a resource to which he is + already connected. + */ +exception AlreadyConnectedException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/BufferSizeExceededException.idl b/udkapi/com/sun/star/io/BufferSizeExceededException.idl new file mode 100644 index 0000000000..2b6ff58e89 --- /dev/null +++ b/udkapi/com/sun/star/io/BufferSizeExceededException.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is thrown by instances which need to buffer data. + <p>It indicates that not enough system resources are available for + extending the buffer. (May also indicate that the internal buffer + has grown to a larger size than 2G. Some current implementations do + not support larger buffers.) + </p> + */ +published exception BufferSizeExceededException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/ConnectException.idl b/udkapi/com/sun/star/io/ConnectException.idl new file mode 100644 index 0000000000..8360e9524e --- /dev/null +++ b/udkapi/com/sun/star/io/ConnectException.idl @@ -0,0 +1,35 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** Signals that an error occurred while attempting to connect a + socket to a remote address and port. Typically, the connection + was refused remotely (e.g., no process is listening on the remote + address/port). + */ +exception ConnectException: com::sun::star::io::SocketException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/DataInputStream.idl b/udkapi/com/sun/star/io/DataInputStream.idl new file mode 100644 index 0000000000..ac67e2820f --- /dev/null +++ b/udkapi/com/sun/star/io/DataInputStream.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** reads structured data from a chained XInputStream. + <p> + An implementation of this service in general does not need + to buffer data itself. + + @see com::sun::star::io::ObjectInputStream + */ +published service DataInputStream +{ + /** allows to read structured data. + */ + interface com::sun::star::io::XDataInputStream; + + /** used to plug the inputstream-data-source. + A plain input stream is sufficient. + */ + interface com::sun::star::io::XActiveDataSink; + + /** Allows to chain the DataInputStream. + */ + interface com::sun::star::io::XConnectable; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/DataOutputStream.idl b/udkapi/com/sun/star/io/DataOutputStream.idl new file mode 100644 index 0000000000..5debd8fa42 --- /dev/null +++ b/udkapi/com/sun/star/io/DataOutputStream.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** writes structured data to a chained XOutputStream. + + <p> + An implementation of this service in general does not need + to buffer data itself. + */ +published service DataOutputStream +{ + /** allows to write structured data. + */ + interface com::sun::star::io::XDataOutputStream; + + /** used to plug the outputstream-data-sink. + <p>A plain output stream is sufficient. + */ + interface com::sun::star::io::XActiveDataSource; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/DataTransferEvent.idl b/udkapi/com/sun/star/io/DataTransferEvent.idl new file mode 100644 index 0000000000..84eeba08d0 --- /dev/null +++ b/udkapi/com/sun/star/io/DataTransferEvent.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is broadcast by a filter. + @see XDataTransferEventListener + */ +published struct DataTransferEvent: com::sun::star::lang::EventObject +{ + /** specifies an occurred exception. + */ + any aException; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/FilePermission.idl b/udkapi/com/sun/star/io/FilePermission.idl new file mode 100644 index 0000000000..65a3f08be6 --- /dev/null +++ b/udkapi/com/sun/star/io/FilePermission.idl @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module io { + + +/// This permission represents access to a file or directory. +/// A FilePermission consists of a file url and a set of actions valid for that url. +/// <p> +/// The path of the file url that ends in <code>"/*"</code> indicates all the files and +/// directories contained in that directory. A path that ends with <code>"/-"</code> +/// indicates (recursively) all files and subdirectories contained in that +/// directory. A file url string consisting of the special token +/// <code>"<<ALL FILES>>"</code> matches any file. +/// <br> +/// Note: A file url string consisting of a single <code>"*"</code> indicates all the files +/// in the current directory, while a string consisting of a single <code>"-"</code> indicates +/// all the files in the current directory and (recursively) all files and +/// subdirectories contained in the current directory. +/// <br> +/// The actions to be granted is a list of one or more comma-separated keywords. +/// The possible keywords are <code>"read"</code>, <code>"write"</code>, +/// <code>"execute"</code>, and <code>"delete"</code>. +/// Their meaning is defined as follows: +/// <ul> +/// <li><code>read</code> -- read permission</li> +/// <li><code>write</code> -- write permission</li> +/// <li><code>execute</code> -- execute permission</li> +/// <li><code>delete</code> -- delete permission</li> +/// </ul><br> +/// The actions string is processed case-insensitive. +/// </p> +/// +/// @attention +/// Be careful when granting FilePermissions. Think about the implications of +/// granting read and especially write access to various files and directories. +/// The <code>"<<ALL FILES>>"</code> permission with write action is +/// especially dangerous. This grants permission to write to the entire file system. +/// +/// @since OOo 1.1.2 +published struct FilePermission +{ + /** target file url + */ + string URL; + /** comma separated actions list + */ + string Actions; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/IOException.idl b/udkapi/com/sun/star/io/IOException.idl new file mode 100644 index 0000000000..eafbd56ef6 --- /dev/null +++ b/udkapi/com/sun/star/io/IOException.idl @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is thrown when an input or output error has occurred. + */ +published exception IOException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/MarkableInputStream.idl b/udkapi/com/sun/star/io/MarkableInputStream.idl new file mode 100644 index 0000000000..97daedd5f8 --- /dev/null +++ b/udkapi/com/sun/star/io/MarkableInputStream.idl @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** allows to set marks in an inputstream and to later jump back to these + marks. + <p>The implementation reads the original data from the input stream, + that has been set previously at the XActiveDataSink + interface. In general the implementation must buffer the data. </p> + */ +published service MarkableInputStream +{ + /** allows to access the data of this stream + */ + interface com::sun::star::io::XInputStream; + + /** allows to create marks at the current position + and to set the current position. + */ + interface com::sun::star::io::XMarkableStream; + + /** allows to access to the underlying source + of this stream. + */ + interface com::sun::star::io::XActiveDataSink; + + /** allows to navigate via a chain of streams */ + interface com::sun::star::io::XConnectable; + +}; + + +}; }; }; }; + + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/MarkableOutputStream.idl b/udkapi/com/sun/star/io/MarkableOutputStream.idl new file mode 100644 index 0000000000..161d34d309 --- /dev/null +++ b/udkapi/com/sun/star/io/MarkableOutputStream.idl @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** allows to set marks in an outputstream and to later jump back to these + marks. + <p>The implementation stores the data as long as marks exists + and later writes these data into the output stream, + that has been set previously at the XActiveDataSource + interface. </p> + */ +published service MarkableOutputStream +{ + /** allows to write data at the current position. + <p> Flushing the outputstream will only flush data, + which was written before the first non-deleted mark, + because data after the first non-deleted mark + may be modified by later jumpToMark()/writeBytes() calls. + */ + interface com::sun::star::io::XOutputStream; + + /** allows to create marks at the current position + and to set the current position. + */ + interface com::sun::star::io::XMarkableStream; + + /** allows to access to the underlying sink + of this stream. + */ + interface com::sun::star::io::XActiveDataSource; + + /** allows to navigate via a chain of streams */ + interface com::sun::star::io::XConnectable; + +}; + + +}; }; }; }; + + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/NoRouteToHostException.idl b/udkapi/com/sun/star/io/NoRouteToHostException.idl new file mode 100644 index 0000000000..14ad88b7cf --- /dev/null +++ b/udkapi/com/sun/star/io/NoRouteToHostException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** Signals that an error occurred while attempting to connect a socket to + a remote address and port. Typically, the remote host cannot be reached + because of an intervening firewall, or if an intermediate router is down. + */ +exception NoRouteToHostException: com::sun::star::io::SocketException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/NotConnectedException.idl b/udkapi/com/sun/star/io/NotConnectedException.idl new file mode 100644 index 0000000000..fca04ad67a --- /dev/null +++ b/udkapi/com/sun/star/io/NotConnectedException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is thrown when a read/write operation is tried on an instance that has + not been chained properly. + */ +published exception NotConnectedException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/ObjectInputStream.idl b/udkapi/com/sun/star/io/ObjectInputStream.idl new file mode 100644 index 0000000000..fcb2b25b1c --- /dev/null +++ b/udkapi/com/sun/star/io/ObjectInputStream.idl @@ -0,0 +1,75 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module io { + +/** is a stream which allows reading the data of persistent objects. + + <p>Implementations of this service must fulfill the specifications of the + DataInputStream service. It must be chained to an + XMarkableStream. Therefore, it provides the + XMarkableStream interface, and delegates the calls to the + chained object. </p> + <p>The written objects are held until this instance is destroyed. + The references to the objects are read as four-byte integers. + Data format reads:</p> + + <pre> + short InfoLength + long ObjectReference // 0 indicates no object + UTF ServiceName // length of 0 indicates this is only a reference + long ObjectLength // 0 if it is a reference or no object, otherwise the len of the object data + Object ObjectData // the data of the object + ... // skipping additional data + </pre> + + @note + <ul> + <li>-thread safe</li> + <li>-allow buffer size is 2 ^ 31 -1</li> + <li>-maximum object reference identifier must be the number of objects. </li> + <li>-object reference identifier 0 indicates no object</li> + <li>-skip addition data</li> + <li>-set the stream position behind the object data</li> + </ul> + */ +published service ObjectInputStream +{ + /** allows to read the data from the stream. + */ + interface com::sun::star::io::XObjectInputStream; + + /** allows to set the underlying inputstream */ + interface com::sun::star::io::XActiveDataSink; + + /** allows to navigate via a chain of streams */ + interface com::sun::star::io::XConnectable; + + /** allows to set marks within the stream. The implementation + may forward calls to this interface to a chained markablestream. */ + interface com::sun::star::io::XMarkableStream; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/ObjectOutputStream.idl b/udkapi/com/sun/star/io/ObjectOutputStream.idl new file mode 100644 index 0000000000..a6479aebda --- /dev/null +++ b/udkapi/com/sun/star/io/ObjectOutputStream.idl @@ -0,0 +1,66 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is a stream which allows writing the data of persistent objects. + + <p>Implementations of this service must fulfill the specifications of the + DataOutputStream service; furthermore, the stream needs to be chained to a + XMarkableStream. Therefore, it also provides the XMarkableStream + interface, but it delegates the calls to the chained object. + The written objects are held until this instance is destroyed. + The references to the objects are written as four-byte integers + and begin at 1. Data format is written: </p> + <pre> + short InfoLength + long ObjectReference // 0 indicates no object + UTF ServiceName // length of 0 indicates this is only a reference + long ObjectLength // 0 if it is a reference or no object, otherwise the len of the object data + Object ObjectData // the data of the object + </pre> + + @note + <ul> + <li>-thread safe </li> + <li>-allow buffer size is 2 ^ 31 -1 </li> + <li>-maximum object reference identifier is the number of objects. </li> + <li>-object reference identifier 0 indicates no object </li> + </ul> + */ +published service ObjectOutputStream +{ + /** allows to write the data to the stream. + */ + interface com::sun::star::io::XObjectOutputStream; + + /** allows to set the underlying outputstream */ + interface com::sun::star::io::XActiveDataSource; + + /** allows to navigate via a chain of streams */ + interface com::sun::star::io::XConnectable; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/Pipe.idl b/udkapi/com/sun/star/io/Pipe.idl new file mode 100644 index 0000000000..80ff1ee77d --- /dev/null +++ b/udkapi/com/sun/star/io/Pipe.idl @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module io { + +/** the implementation of an output stream and an input stream. + <p> + All data written through the outputstream is buffered until it is + read again from the input stream. Often two different threads access + input and outputstream. + + <p> With the pipe-service, an outputstream can be converted into an + input stream at the cost of an additional buffer. + */ +published service Pipe : XPipe; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/Pump.idl b/udkapi/com/sun/star/io/Pump.idl new file mode 100644 index 0000000000..6fa696fd13 --- /dev/null +++ b/udkapi/com/sun/star/io/Pump.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module io { + +/** the implementation of a data source and a data sink. + <p>A thread will be created that reads from the input stream and writes + the data to the connected output stream. Data will not be buffered by + this service. </p> + + */ +published service Pump +{ + /** allows to set the outputstream + */ + interface com::sun::star::io::XActiveDataSource; + + /** allows to set the inputstream + */ + interface com::sun::star::io::XActiveDataSink; + + /** allows listener administration and starting/stopping the pump */ + interface com::sun::star::io::XActiveDataControl; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/SequenceInputStream.idl b/udkapi/com/sun/star/io/SequenceInputStream.idl new file mode 100644 index 0000000000..784e74376f --- /dev/null +++ b/udkapi/com/sun/star/io/SequenceInputStream.idl @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module io { + +/** This service allows to wrap a sequence of bytes with a stream object. + */ +published service SequenceInputStream : XSeekableInputStream +{ + /** allows to create a stream based on the sequence. + */ + createStreamFromSequence( [in] sequence<byte> aData ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/SequenceOutputStream.idl b/udkapi/com/sun/star/io/SequenceOutputStream.idl new file mode 100644 index 0000000000..1aa9ef6c98 --- /dev/null +++ b/udkapi/com/sun/star/io/SequenceOutputStream.idl @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** This service allows to wrap a sequence of bytes with an output stream object. + */ +service SequenceOutputStream : XSequenceOutputStream; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/SocketException.idl b/udkapi/com/sun/star/io/SocketException.idl new file mode 100644 index 0000000000..7e10df8077 --- /dev/null +++ b/udkapi/com/sun/star/io/SocketException.idl @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** Thrown to indicate that there is an error in the underlying + protocol, such as a TCP error. + */ +exception SocketException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/TempFile.idl b/udkapi/com/sun/star/io/TempFile.idl new file mode 100644 index 0000000000..b1ca7a4a51 --- /dev/null +++ b/udkapi/com/sun/star/io/TempFile.idl @@ -0,0 +1,30 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** This service allows to get access to temp files. + */ +service TempFile : XTempFile; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/TextInputStream.idl b/udkapi/com/sun/star/io/TextInputStream.idl new file mode 100644 index 0000000000..4d667e9e55 --- /dev/null +++ b/udkapi/com/sun/star/io/TextInputStream.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** provides functionality to read text data from a + com::sun::star::io::XInputStream + that initially has to be passed to the method + XActiveDataSink::setInputStream(). + + <p>For details about the text functionality see + com::sun::star::io::XTextInputStream. + */ +published service TextInputStream : XTextInputStream2; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/TextOutputStream.idl b/udkapi/com/sun/star/io/TextOutputStream.idl new file mode 100644 index 0000000000..f103885a1e --- /dev/null +++ b/udkapi/com/sun/star/io/TextOutputStream.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** provides functionality to write text data to a + com::sun::star::io::XOutputStream + that initially has to be passed to the method + XActiveDataSource::setOutputStream(). + + <p>For details about the text functionality see + com::sun::star::io::XTextOutputStream. + */ +published service TextOutputStream : XTextOutputStream2; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/UnexpectedEOFException.idl b/udkapi/com/sun/star/io/UnexpectedEOFException.idl new file mode 100644 index 0000000000..87333c5221 --- /dev/null +++ b/udkapi/com/sun/star/io/UnexpectedEOFException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is thrown when the <code>EOF</code> is reached during reading a datatype + (<code>long</code>, <code>string</code>, etc.). + */ +published exception UnexpectedEOFException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/UnknownHostException.idl b/udkapi/com/sun/star/io/UnknownHostException.idl new file mode 100644 index 0000000000..324724af7c --- /dev/null +++ b/udkapi/com/sun/star/io/UnknownHostException.idl @@ -0,0 +1,32 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** is thrown when the IP address of a host could not be determined. + */ +exception UnknownHostException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/WrongFormatException.idl b/udkapi/com/sun/star/io/WrongFormatException.idl new file mode 100644 index 0000000000..25c73bf1f2 --- /dev/null +++ b/udkapi/com/sun/star/io/WrongFormatException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is thrown when inconsistent data comes up while reading a complex + data type (<code>string</code> or object). + */ +published exception WrongFormatException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XActiveDataControl.idl b/udkapi/com/sun/star/io/XActiveDataControl.idl new file mode 100644 index 0000000000..bad0c32c9a --- /dev/null +++ b/udkapi/com/sun/star/io/XActiveDataControl.idl @@ -0,0 +1,69 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to control an active data source. + + <p>This interface should be supported by objects which implement + XActiveDataSource or XActiveDataSink.</p> + */ +published interface XActiveDataControl: com::sun::star::uno::XInterface +{ + /** registers an object to receive events from this data source. + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + */ + void addListener( [in] com::sun::star::io::XStreamListener aListener ); + + /** unregisters an object to receive events from this data source. + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + */ + void removeListener( [in] com::sun::star::io::XStreamListener aListener ); + + /** starts I/O. + + <p>Either XActiveDataControl::setInputStream() or + XActiveDataControl::setOutputStream() must be called beforehand. + </p> + + <p>This method does not block the thread, so reading is + generally not finished when the method returns. </p> + */ + void start(); + + /** does a weak abort. + + <p>It closes all connected resources and calls + XInputStream::close() or + XOutputStream::close() and fires the + XStreamListener::terminated()-event.</p> + */ + void terminate(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XActiveDataSink.idl b/udkapi/com/sun/star/io/XActiveDataSink.idl new file mode 100644 index 0000000000..7577fd670b --- /dev/null +++ b/udkapi/com/sun/star/io/XActiveDataSink.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to read the corresponding object from an input stream. + + <p>If you want to allow control from outside, also implement the + XActiveDataControl interface. </p> + */ +published interface XActiveDataSink: com::sun::star::uno::XInterface +{ + /** plugs the input stream. + + <p>If XConnectable is also implemented, this + method should query <var>aStream</var> for an + XConnectable and connect both.</p> + */ + void setInputStream( [in] com::sun::star::io::XInputStream aStream ); + + /** @returns + the plugged stream. + */ + com::sun::star::io::XInputStream getInputStream(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XActiveDataSource.idl b/udkapi/com/sun/star/io/XActiveDataSource.idl new file mode 100644 index 0000000000..e398d70c71 --- /dev/null +++ b/udkapi/com/sun/star/io/XActiveDataSource.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** has to be implemented if the class should be able to write into an output + stream. + @see XActiveDataControl. + */ +published interface XActiveDataSource: com::sun::star::uno::XInterface +{ + /** plugs the output stream. + + <p>If XConnectable is also implemented, this + method should query <var>aStream</var> for a + XConnectable and connect both. + </p> + */ + void setOutputStream( [in] com::sun::star::io::XOutputStream aStream ); + + /** @returns + the plugged stream. + */ + com::sun::star::io::XOutputStream getOutputStream(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XActiveDataStreamer.idl b/udkapi/com/sun/star/io/XActiveDataStreamer.idl new file mode 100644 index 0000000000..0b0dbc2621 --- /dev/null +++ b/udkapi/com/sun/star/io/XActiveDataStreamer.idl @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to read and write the corresponding stream. + + + <p>If you want to allow control from outside, also implement the + XActiveDataControl interface. </p> + */ +published interface XActiveDataStreamer: com::sun::star::uno::XInterface +{ + /** plugs the input/output stream. + + <p>If XConnectable is also implemented, this + method should query <var>aStream</var> for a + XConnectable and connect both.</p> + */ + void setStream( [in] com::sun::star::io::XStream aStream ); + + /** @returns + the plugged stream. + */ + com::sun::star::io::XStream getStream(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XAsyncOutputMonitor.idl b/udkapi/com/sun/star/io/XAsyncOutputMonitor.idl new file mode 100644 index 0000000000..6b5e3ca0c3 --- /dev/null +++ b/udkapi/com/sun/star/io/XAsyncOutputMonitor.idl @@ -0,0 +1,76 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module io { + +/** + An optional companion interface to + com::sun::star::io::XOutputStream that supports scenarios + where com::sun::star::io::XOutputStream::writeBytes() + operates asynchronously and does not necessarily report any errors. + + <p>A typical scenario where this interface is useful is when an + com::sun::star::io::XOutputStream is used to write to a + file via NFS. Normally, any calls to + com::sun::star::io::XOutputStream::writeBytes() will + execute asynchronously then, in that any potential errors might only be + reported by later calls to + com::sun::star::io::XOutputStream::writeBytes() or + com::sun::star::io::XOutputStream::closeOutput(). If + such an output stream shall not be closed immediately after one or more calls + to com::sun::star::io::XOutputStream::writeBytes(), but + the client wants to know as soon as possible whether writing was successful, + then + com::sun::star::io::XAsyncOutputMonitor::waitForCompletion() + should be called after the series of calls to + com::sun::star::io::XOutputStream::writeBytes().</p> + + @since OOo 2.0 +*/ +interface XAsyncOutputMonitor { + /** + waits for the completion of any previous calls to + com::sun::star::io::XOutputStream::writeBytes(), + and reports potentially pending errors. + + <p>Calling this method is potentially expensive (even if the associated + com::sun::star::io::XOutputStream represents a local + file not accessed via NFS, for example). This method has a similar + description to + com::sun::star::io::XOutputStream::flush(). + However, where the semantics of <code>flush</code> are rather vague, + <code>waitForCompletion</code> has very specific semantics—it just + blocks long enough so that any errors encountered during previous calls + to com::sun::star::io::XOutputStream::writeBytes() + can reliably be reported. It specifically does not guarantee that any + data have safely been stored on a stable physical medium, like a hard + disk (and it is completely unspecified whether <code>flush</code> should + give this guarantee).</p> + + @throws com::sun::star::io::IOException + if any previous call to com::sun::star::io::XOutputStream::writeBytes() + encountered such an error, but has not yet reported it (in cases where + <code>writeBytes</code> operates asynchronously). + */ + void waitForCompletion() raises (IOException); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XConnectable.idl b/udkapi/com/sun/star/io/XConnectable.idl new file mode 100644 index 0000000000..0f0e0de7a8 --- /dev/null +++ b/udkapi/com/sun/star/io/XConnectable.idl @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module io { + +/** makes it possible to connect data sinks and sources. + + <p>The predecessor-member is the element in the connection that is + nearer to the source of the data. The successor-member is the element + that is further away from the source of the data. (Note that this + classification does not depend on whether the class implements + XInputStream or XOutputStream; it only + depends on the direction of data flow.) </p> + <p>This interface allows generic services to navigate between + arbitrary elements of a connection.</p> + */ +published interface XConnectable: com::sun::star::uno::XInterface +{ + /** sets the source of the data flow for this object. + */ + void setPredecessor( [in] com::sun::star::io::XConnectable aPredecessor ); + + /** @returns + the predecessor of this object. + */ + com::sun::star::io::XConnectable getPredecessor(); + + /** sets the sink of the data flow for this object. + */ + void setSuccessor( [in] com::sun::star::io::XConnectable aSuccessor ); + + /** @returns + the successor of this object. + */ + com::sun::star::io::XConnectable getSuccessor(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XDataExporter.idl b/udkapi/com/sun/star/io/XDataExporter.idl new file mode 100644 index 0000000000..cacb6949c5 --- /dev/null +++ b/udkapi/com/sun/star/io/XDataExporter.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to export data from a component into a data sink. + + <p>Exporter objects are registered for specific components and data types. + </p> + */ +published interface XDataExporter: com::sun::star::uno::XInterface +{ + /** exports data for a component into an output stream. + */ + void exportData( [in] com::sun::star::io::XOutputStream aOutputStream, + [in] com::sun::star::lang::XComponent Component, + [in] com::sun::star::io::XDataTransferEventListener aListener ); + + /** cancels the export process. + */ + void cancel(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XDataImporter.idl b/udkapi/com/sun/star/io/XDataImporter.idl new file mode 100644 index 0000000000..bb483fbb7f --- /dev/null +++ b/udkapi/com/sun/star/io/XDataImporter.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to import data from a data source into a component. + + <p>Importer objects are registered for specific components and data types.</p> + */ +published interface XDataImporter: com::sun::star::uno::XInterface +{ + /** imports data for a component from an active data source. + */ + void importData( [in] com::sun::star::io::XActiveDataSource aActiveSource, + [in] com::sun::star::lang::XComponent Component, + [in] com::sun::star::io::XDataTransferEventListener aListener ); + + /** cancels the import process. + */ + void cancel(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XDataInputStream.idl b/udkapi/com/sun/star/io/XDataInputStream.idl new file mode 100644 index 0000000000..26710fb108 --- /dev/null +++ b/udkapi/com/sun/star/io/XDataInputStream.idl @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to read machine-independent simple data types from a + stream. + @see com::sun::star::io::XDataOutputStream + */ +published interface XDataInputStream: com::sun::star::io::XInputStream +{ + /** reads in a boolean. It is an 8-bit value. 0 means FALSE; all + other values mean TRUE. + */ + byte readBoolean() + raises( com::sun::star::io::IOException ); + + /** reads an 8-bit byte. + */ + byte readByte() + raises( com::sun::star::io::IOException ); + + /** reads a 16-bit unicode character. + */ + char readChar() + raises( com::sun::star::io::IOException ); + + /** reads a 16-bit big endian integer. + */ + short readShort() + raises( com::sun::star::io::IOException ); + + /** reads a 32-bit big endian integer. + */ + long readLong() + raises( com::sun::star::io::IOException ); + + /** reads a 64-bit big endian integer. + */ + hyper readHyper() + raises( com::sun::star::io::IOException ); + + /** reads a 32-bit IEEE float. + */ + float readFloat() + raises( com::sun::star::io::IOException ); + + /** reads a 64-bit IEEE double. + */ + double readDouble() + raises( com::sun::star::io::IOException ); + + /** reads a string of UTF encoded characters. + */ + string readUTF() + raises( com::sun::star::io::IOException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XDataOutputStream.idl b/udkapi/com/sun/star/io/XDataOutputStream.idl new file mode 100644 index 0000000000..0c5df021fc --- /dev/null +++ b/udkapi/com/sun/star/io/XDataOutputStream.idl @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to write machine-independent simple data types to a + stream. + @see com::sun::star::io::XDataInputStream + */ +published interface XDataOutputStream: com::sun::star::io::XOutputStream +{ + /** writes a boolean. It is an 8-bit value. 0 means FALSE; all other + values mean TRUE. + */ + void writeBoolean( [in] boolean Value ) + raises( com::sun::star::io::IOException ); + + /** writes an 8-bit byte. + */ + void writeByte( [in] byte Value ) + raises( com::sun::star::io::IOException ); + + /** writes a 16-bit character. + */ + void writeChar( [in] char Value ) + raises( com::sun::star::io::IOException ); + + /** writes a 16-bit big endian integer. + */ + void writeShort( [in] short Value ) + raises( com::sun::star::io::IOException ); + + /** writes a 32-bit big endian integer. + */ + void writeLong( [in] long Value ) + raises( com::sun::star::io::IOException ); + + /** writes a 64-bit big endian integer. + */ + void writeHyper( [in] hyper Value ) + raises( com::sun::star::io::IOException ); + + /** writes a 32-bit IEEE float. + */ + void writeFloat( [in] float Value ) + raises( com::sun::star::io::IOException ); + + /** writes a 64-bit IEEE double. + */ + void writeDouble( [in] double Value ) + raises( com::sun::star::io::IOException ); + + /** writes a string in UTF format. + */ + void writeUTF( [in] string Value ) + raises( com::sun::star::io::IOException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XDataTransferEventListener.idl b/udkapi/com/sun/star/io/XDataTransferEventListener.idl new file mode 100644 index 0000000000..c407c24aa0 --- /dev/null +++ b/udkapi/com/sun/star/io/XDataTransferEventListener.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** is used to receive callbacks from an importer or exporter. + */ +published interface XDataTransferEventListener: com::sun::star::lang::XEventListener +{ + /** is called when an import or export process has finished. + */ + void finished( [in] com::sun::star::io::DataTransferEvent aEvent ); + + /** is called when an import or export process has been cancelled. + */ + void cancelled( [in] com::sun::star::io::DataTransferEvent aEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XInputStream.idl b/udkapi/com/sun/star/io/XInputStream.idl new file mode 100644 index 0000000000..39810e78bb --- /dev/null +++ b/udkapi/com/sun/star/io/XInputStream.idl @@ -0,0 +1,135 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** This is the basic interface to read data from a stream. + <p> + See the <a href="http://udk.openoffice.org/common/man/concept/streams.html"> + streaming document</a> for further information on chaining and piping streams. + */ +published interface XInputStream: com::sun::star::uno::XInterface +{ + /** reads the specified number of bytes in the given sequence. + + <p>The return value specifies the number of bytes which have been + put into the sequence. A difference between <var>nBytesToRead</var> + and the return value indicates that EOF has been reached. This means + that the method blocks until the specified number of bytes are + available or the EOF is reached. </p> + + @param aData + after the call, the byte sequence contains the requested number + of bytes (or less as a sign of EOF). + <br> + C++ only : Note that for unbridged (e.g., in-process) + calls, using the same sequence for repetitive readBytes()-calls + can bear a performance advantage. The callee can put the data + directly into the sequence so that no buffer reallocation is + necessary. + But this holds only when + <ol> + <li> neither caller nor callee keep a second reference to the same + sequence. + <li> the sequence is pre-allocated with the requested number of bytes. + <li> the same sequence is reused (simply preallocating a new + sequence for every call bears no advantage). + <li> the call is not bridged (e.g., between different compilers + or different processes). + </ol> + <br> + If the same 'optimized' code runs against an interface in a different process, + there is an unnecessary memory allocation/deallocation (the out parameter + is of course NOT transported over the connection), but this should + be negligible compared to a synchron call. + + @param nBytesToRead + the total number of bytes to read + */ + long readBytes( [out] sequence<byte> aData, + [in] long nBytesToRead ) + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::BufferSizeExceededException, + com::sun::star::io::IOException); + + /** reads the available number of bytes, at maximum + <var>nMaxBytesToRead</var>. + + <p>This method is very similar to the readBytes method, except that + it has different blocking behaviour. + The method blocks as long as at least 1 byte is available or + EOF has been reached. EOF has only been reached, when the method + returns 0 and the corresponding byte sequence is empty. + Otherwise, after the call, aData contains the available, + but no more than nMaxBytesToRead, bytes. + + @param aData contains the data read from the stream. + @param nMaxBytesToRead The maximum number of bytes to be read from this + stream during the call. + @see com::sun::star::io::XInputStream::readBytes + */ + long readSomeBytes( [out] sequence<byte> aData, + [in] long nMaxBytesToRead ) + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::BufferSizeExceededException, + com::sun::star::io::IOException ); + + /** skips the next <var>nBytesToSkip</var> bytes (must be positive). + + <p>It is up to the implementation whether this method is + blocking the thread or not. </p> + + @param nBytesToSkip + number of bytes to skip + */ + void skipBytes( [in] long nBytesToSkip ) + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::BufferSizeExceededException, + com::sun::star::io::IOException ); + + /** states how many bytes can be read or skipped without blocking. + + <p>Note: This method offers no information on whether the EOF + has been reached. </p> + */ + long available() + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::IOException + ); + + /** closes the stream. + + <p>Users must close the stream explicitly when no further + reading should be done. (There may exist ring references to + chained objects that can only be released during this call. + Thus not calling this method would result in a leak of memory or + external resources.) </p> + */ + void closeInput() + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::IOException); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XInputStreamProvider.idl b/udkapi/com/sun/star/io/XInputStreamProvider.idl new file mode 100644 index 0000000000..43e380ce74 --- /dev/null +++ b/udkapi/com/sun/star/io/XInputStreamProvider.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + + +/** Interface for providing an input stream. + + <p>Every time createInputStream() is called a new input stream + is returned, always pointing to the begin of the same data. All + input streams returned by createInputStream() + are completely independent from each other.</p> +*/ +published interface XInputStreamProvider : com::sun::star::uno::XInterface +{ + /** Creates a new input stream, every time providing + the same data. + + @return + a new input stream + */ + com::sun::star::io::XInputStream createInputStream(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XMarkableStream.idl b/udkapi/com/sun/star/io/XMarkableStream.idl new file mode 100644 index 0000000000..15eeb98926 --- /dev/null +++ b/udkapi/com/sun/star/io/XMarkableStream.idl @@ -0,0 +1,84 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to set and remove seekable marks to a stream. + */ +published interface XMarkableStream: com::sun::star::uno::XInterface +{ + /** creates a mark of the current position and returns an identifier to it. + */ + long createMark() + raises( com::sun::star::io::IOException ); + + /** deletes the mark that you previously created with + XMarkableStream::createMark(). + + <p>It is an error to delete a mark if other marks after this + exist. In this case, for reasons of robustness, the + implementation must delete this mark and all others after + this mark. </p> + */ + void deleteMark( [in] long Mark ) + raises( com::sun::star::io::IOException, + com::sun::star::lang::IllegalArgumentException ); + + /** jumps to a previously created mark. + */ + void jumpToMark( [in] long nMark ) + raises( com::sun::star::io::IOException, + com::sun::star::lang::IllegalArgumentException ); + + + /** jumps to the furthest position of the stream. + <p> In the inputstream case, a subsequent read call returns + data, that was never read or skipped over before. In the + outputstream case, a subsequent write call will add + new data at the end of the stream without overwriting existing data. + */ + void jumpToFurthest() + raises( com::sun::star::io::IOException ); + + /** @returns + the offset from the current stream position to the + mark ("current position" - "mark position"). + + @param nMark + identifies the mark which is used as a base + to calculate the offset of the current position. + + @throws IllegalArgumentException + if the mark does not exist or is deleted. + + @throws IOException + if an I/O error has occurred. + */ + long offsetToMark( [in] long nMark ) + raises( com::sun::star::io::IOException, + com::sun::star::lang::IllegalArgumentException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XObjectInputStream.idl b/udkapi/com/sun/star/io/XObjectInputStream.idl new file mode 100644 index 0000000000..c2e8490761 --- /dev/null +++ b/udkapi/com/sun/star/io/XObjectInputStream.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + + +/** reads XPersistObject implementations from a stream + */ +published interface XObjectInputStream: com::sun::star::io::XDataInputStream +{ + + /** reads an object from the stream. In general, it + reads the service name, instantiates the object and + calls read on the XPersistObject interface with itself + as argument. + */ + com::sun::star::io::XPersistObject readObject() + raises( com::sun::star::io::IOException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XObjectOutputStream.idl b/udkapi/com/sun/star/io/XObjectOutputStream.idl new file mode 100644 index 0000000000..caa2c0c776 --- /dev/null +++ b/udkapi/com/sun/star/io/XObjectOutputStream.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + + published interface XPersistObject; + + +/** stores XPersistObject implementations into the stream + + <p>An implementation of the type XPersistObject + uses this interface to write its internal state into a stream. + Have a look there for the explanation of the concept. + + @see com::sun::star::io::XPersistObject + */ +published interface XObjectOutputStream: XDataOutputStream +{ + /** writes an object to the stream. + @param Object the object, which shall serialize itself into the stream. + */ + void writeObject( [in] XPersistObject Object ) + raises( IOException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XOutputStream.idl b/udkapi/com/sun/star/io/XOutputStream.idl new file mode 100644 index 0000000000..78eeedeaa8 --- /dev/null +++ b/udkapi/com/sun/star/io/XOutputStream.idl @@ -0,0 +1,66 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** This is the basic interface to write data to a stream. + <p> + See the <a href="http://udk.openoffice.org/common/man/concept/streams.html"> + streaming document</a> for further information on chaining and piping streams. + */ +published interface XOutputStream: com::sun::star::uno::XInterface +{ + /** writes the whole sequence to the stream. (blocking call) + */ + void writeBytes( [in] sequence<byte> aData ) + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::BufferSizeExceededException, + com::sun::star::io::IOException); + + /** flushes out of the stream any data that may exist in buffers. + + <p>The semantics of this method are rather vague. See + com::sun::star::io::XAsyncOutputMonitor::waitForCompletion() + for a similar method + with very specific semantics, that is useful in certain scenarios.</p> + */ + void flush() + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::BufferSizeExceededException, + com::sun::star::io::IOException); + + /** gets called to indicate that all data has been written. + + <p>If this method has not yet been called, no attached + XInputStream receives an EOF signal. No further + bytes may be written after this method has been called.</p> + */ + void closeOutput() + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::BufferSizeExceededException, + com::sun::star::io::IOException); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XPersist.idl b/udkapi/com/sun/star/io/XPersist.idl new file mode 100644 index 0000000000..8b5bfe2bad --- /dev/null +++ b/udkapi/com/sun/star/io/XPersist.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to write this object to a URL or read it from a URL. + */ +published interface XPersist: com::sun::star::uno::XInterface +{ + /** writes all the persistent data of the object to the URL. + */ + void write ( [in] string URL ) raises ( com::sun::star::io::IOException ) ; + + /** reads all the persistent data of the object from the URL. + */ + void read ( [in] string URL ) raises ( com::sun::star::io::IOException ) ; + +}; + + +}; }; }; }; + +/*============================================================================= +=============================================================================*/ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XPersistObject.idl b/udkapi/com/sun/star/io/XPersistObject.idl new file mode 100644 index 0000000000..38a3707c2e --- /dev/null +++ b/udkapi/com/sun/star/io/XPersistObject.idl @@ -0,0 +1,89 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + + published interface XObjectInputStream; + published interface XObjectOutputStream; + + +/** allows to make UNO objects persistent + + <p>Every UNO object, that wants to be serializable, should implement + this interface. The object stores stores itself, when the + write method is called. + <p> + The object needs to be created before it deserializes + itself again (by using the read method). Therefore it must be + creatable by name via a factory, which is in general + the global service manager. The create and read mechanism + is implemented by the com::sun::star::io::ObjectInputStream. + + <p>The serialization format (the series of strings, integers, objects) must + be specified at the specification of the concrete service. + + <p>The interface does not support any special versioning mechanism. + + @see com::sun::star::io::XObjectOutputStream + @see com::sun::star::io::XObjectInputStream + */ +published interface XPersistObject: com::sun::star::uno::XInterface +{ + + /** gives the service name of the object + + <p>This name is used to create such an object by a factory + during deserialization. </p> + + @returns + the service name that specifies the behavior and the + persistent data format of this implementation. + + @see com::sun::star::lang::XMultiComponentFactory::getAvailableServiceNames() + */ + string getServiceName(); + + /** writes all the persistent data of the object to the stream. + <p>The implementation + must write the data in the order documented in the service specification. + @param OutStream the stream, the data shall be written to. The stream + supports simple types and other XPersistObject implementations. + */ + void write( [in] com::sun::star::io::XObjectOutputStream OutStream ) + raises( com::sun::star::io::IOException ); + + /** reads all the persistent data of the object from the stream. + <p>In case + other XPersistObjects are read from the stream, the implementation uses a factory + to create these objects (in general the global service manager). + <p> The implementation must read the data in the order documented at + the service specification. + @param InStream the stream, the data shall be read from. + */ + void read( [in] com::sun::star::io::XObjectInputStream InStream ) + raises( com::sun::star::io::IOException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XPipe.idl b/udkapi/com/sun/star/io/XPipe.idl new file mode 100644 index 0000000000..8002c425c3 --- /dev/null +++ b/udkapi/com/sun/star/io/XPipe.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + + +/** The implementation of an output stream and an input stream. + <p> + All data written through the outputstream is buffered until it is + read again from the input stream. Often two different threads access + input and outputstream. + + <p> With the pipe-service, an outputstream can be converted into an + input stream at the cost of an additional buffer. + + @since LibreOffice 4.0 + */ +published interface XPipe +{ + interface com::sun::star::io::XOutputStream; + + interface com::sun::star::io::XInputStream; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XSeekable.idl b/udkapi/com/sun/star/io/XSeekable.idl new file mode 100644 index 0000000000..4297bbf552 --- /dev/null +++ b/udkapi/com/sun/star/io/XSeekable.idl @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** makes it possible to seek to a certain position within a stream. + + <p>This interface should be supported, if it is possible to access the + data at the new position quickly. + You should not support this interface, if you have a continuous + stream, for example, a video stream. + */ +published interface XSeekable: com::sun::star::uno::XInterface +{ + /** changes the seek pointer to a new location relative to the beginning of the stream. + + + <p> This method changes the seek pointer so subsequent reads and writes can take place at a different + location in the stream object. It is an error to seek before the beginning of the stream or after the + end of the stream. </p> + + @throws com::sun::star::lang::IllegalArgumentException in case location is negative or greater than XSeekable::getLength(). + */ + void seek( [in] hyper location ) + raises( com::sun::star::lang::IllegalArgumentException, com::sun::star::io::IOException ); + + /** returns the current offset of the stream. + @returns + the current offset in this stream. + */ + hyper getPosition() + raises( com::sun::star::io::IOException ); + + /** returns the length of the stream. + @returns + the length of the storage medium on which the stream works. + */ + hyper getLength() + raises( com::sun::star::io::IOException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XSeekableInputStream.idl b/udkapi/com/sun/star/io/XSeekableInputStream.idl new file mode 100644 index 0000000000..a689f1db10 --- /dev/null +++ b/udkapi/com/sun/star/io/XSeekableInputStream.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** This interface can be used to represent a seekable input stream. + */ +published interface XSeekableInputStream +{ + interface XInputStream; + interface XSeekable; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XSequenceOutputStream.idl b/udkapi/com/sun/star/io/XSequenceOutputStream.idl new file mode 100644 index 0000000000..64537d812c --- /dev/null +++ b/udkapi/com/sun/star/io/XSequenceOutputStream.idl @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** This interface offers access to the written bytes +*/ +interface XSequenceOutputStream +{ + interface XOutputStream; + + /** allows to get access to the written data + */ + sequence< byte > getWrittenBytes() + raises( com::sun::star::io::NotConnectedException, + com::sun::star::io::IOException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XStream.idl b/udkapi/com/sun/star/io/XStream.idl new file mode 100644 index 0000000000..29b4eda85e --- /dev/null +++ b/udkapi/com/sun/star/io/XStream.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + + +/** offers read and write access to the same stream. + */ +published interface XStream: com::sun::star::uno::XInterface +{ + /** @returns + the XInputStream part of the stream. Closing the returned + XInputStream also closes any XOutputStream part. + */ + XInputStream getInputStream(); + + + /** @returns + the XInputStream part of the stream. Closing the returned + XOutputStream also closes the XInputStream part. + */ + XOutputStream getOutputStream(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XStreamListener.idl b/udkapi/com/sun/star/io/XStreamListener.idl new file mode 100644 index 0000000000..f213abcfb5 --- /dev/null +++ b/udkapi/com/sun/star/io/XStreamListener.idl @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** makes it possible to receive events from an active data control. + */ +published interface XStreamListener: com::sun::star::lang::XEventListener +{ + /** gets called as soon as data transfer has started. + */ + void started(); + + /** gets called when data transfer terminates normally or when data + transfer is terminated from outside. + + <p>The termination could be done using the method + XActiveDataControl::terminate().</p> + */ + void closed(); + + /** gets called when XActiveDataControl::terminate() is called. + */ + void terminated(); + + /** gets called when an internal error in source or sink has occurred. + + <p>After the method is called, the close is called on the + connected streams.</p> + */ + void error( [in] any aException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XTempFile.idl b/udkapi/com/sun/star/io/XTempFile.idl new file mode 100644 index 0000000000..65a43f991b --- /dev/null +++ b/udkapi/com/sun/star/io/XTempFile.idl @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** This interface offers access to temp files. + */ +interface XTempFile +{ + // INTERFACES + /** interface XStream offers read and write access to + the same stream. + */ + interface XStream; + + /** interface XSeekable makes it possible to seek to a + certain position within a stream. + */ + interface XSeekable; + + // ATTRIBUTES + /** This attribute controls whether the file will be automatically + removed on object destruction. + */ + [attribute] boolean RemoveFile; + + /** This attribute specifies the URL of the temp file. + */ + [readonly,attribute] string Uri; + + /** This attribute specifies the temp file name. + */ + [readonly,attribute] string ResourceName; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XTextInputStream.idl b/udkapi/com/sun/star/io/XTextInputStream.idl new file mode 100644 index 0000000000..9e9ab1a627 --- /dev/null +++ b/udkapi/com/sun/star/io/XTextInputStream.idl @@ -0,0 +1,96 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** Interface to read strings from a stream. + + <p>This interfaces allows to read strings separated by + delimiters and to read lines. The character encoding + to be used can be set by setEncoding(). + Default encoding is "utf8".</p> + */ +published interface XTextInputStream: com::sun::star::io::XInputStream +{ + /** reads text until a line break (CR, LF, or CR/LF) or + EOF is found and returns it as string (without CR, LF). + + <p>The read characters are converted according to the + encoding defined by setEncoding(). If + EOF is already reached before calling this method + an empty string is returned.<p> + + @see setEncoding + @see isEOF + */ + string readLine() + raises( com::sun::star::io::IOException ); + + /** reads text until one of the given delimiter characters + or EOF is found and returns it as string (without delimiter). + + <p><strong>Important:</strong> CR/LF is not used as default + delimiter! So if no delimiter is defined or none of the + delimiters is found, the stream will be read to EOF. The + read characters are converted according to the encoding + defined by setEncoding(). If EOF is already + reached before calling this method an empty string is returned.</p> + + @see setEncoding + @see isEOF + */ + string readString( [in] sequence<char> Delimiters, [in] boolean bRemoveDelimiter ) + raises( com::sun::star::io::IOException ); + + /** Returns the EOF status. + + <p>This method has to be used to detect if the end + of the stream is reached.</p> + <p><strong>Important:</strong> + This cannot be detected by asking for an empty string + because that can be a valid return value of readLine() + (if the line is empty) and + readString() (if a delimiter is directly followed + by the next one).</p> + + @returns + `TRUE`, if the end of file is reached, so that + no next string can be read. `FALSE` otherwise + */ + boolean isEOF() + raises( com::sun::star::io::IOException ); + + /** sets character encoding. + + @param Encoding + sets the character encoding that should be used. + The character encoding names refer to the document + http://www.iana.org/assignments/character-sets. + Which character sets are supported depends on + the implementation. + */ + void setEncoding( [in] string Encoding ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XTextInputStream2.idl b/udkapi/com/sun/star/io/XTextInputStream2.idl new file mode 100644 index 0000000000..f64bde5df1 --- /dev/null +++ b/udkapi/com/sun/star/io/XTextInputStream2.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** Provides a unified interface for the new-style service TextInputStream. + + @since LibreOffice 4.1 + */ +published interface XTextInputStream2 +{ + /// Interface to read text data + interface com::sun::star::io::XTextInputStream; + + /// Interface to specify the used com::sun::star::io::XInputStream + interface com::sun::star::io::XActiveDataSink; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XTextOutputStream.idl b/udkapi/com/sun/star/io/XTextOutputStream.idl new file mode 100644 index 0000000000..fda0a695af --- /dev/null +++ b/udkapi/com/sun/star/io/XTextOutputStream.idl @@ -0,0 +1,63 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** Interface to write strings to a stream using a special + character encoding. + + <p>This interfaces allows to write strings to a stream. + The character encoding to be used can be set by + setEncoding(). Default encoding is "utf8".</p> + */ +published interface XTextOutputStream: com::sun::star::io::XOutputStream +{ + /** writes a string to the stream using the encoding + defined by setEncoding(). + + <p>Line breaks or delimiters that may be necessary + to support XTextInputStream::readLine() + and XTextInputStream::readString() + have to be added manually to the parameter string.</p> + + @see setEncoding + @see XTextInputStream::readLine + @see XTextInputStream::readString + */ + void writeString( [in] string aString ) + raises( com::sun::star::io::IOException ); + + /** sets character encoding. + + @param Encoding + sets the character encoding that should be used. + The character encoding names refer to the document + http://www.iana.org/assignments/character-sets. + Which character sets are supported depends on + the implementation. + */ + void setEncoding( [in] string Encoding ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XTextOutputStream2.idl b/udkapi/com/sun/star/io/XTextOutputStream2.idl new file mode 100644 index 0000000000..f3f2a1f3e5 --- /dev/null +++ b/udkapi/com/sun/star/io/XTextOutputStream2.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module io { + +/** Provides a unified interface for the new-style service TextOutputStream. + + @since LibreOffice 4.1 + */ +published interface XTextOutputStream2 +{ + /// Interface to write text data + interface com::sun::star::io::XTextOutputStream; + + /// Interface to specify the used com::sun::star::io::XOutputStream + interface com::sun::star::io::XActiveDataSource; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XTruncate.idl b/udkapi/com/sun/star/io/XTruncate.idl new file mode 100644 index 0000000000..2034122620 --- /dev/null +++ b/udkapi/com/sun/star/io/XTruncate.idl @@ -0,0 +1,42 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + + + +/** makes it possible to set the size of the underlying data of a stream + to zero. + */ +published interface XTruncate: com::sun::star::uno::XInterface +{ + + /** sets the size of the underlying data of the stream to zero. + */ + void truncate() + raises( IOException ); + + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/io/XXMLExtractor.idl b/udkapi/com/sun/star/io/XXMLExtractor.idl new file mode 100644 index 0000000000..032c76a0bd --- /dev/null +++ b/udkapi/com/sun/star/io/XXMLExtractor.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module io { + +/** offers the capability to extract the XML document stream from a document + storage. +*/ + +published interface XXMLExtractor : com::sun::star::uno::XInterface +{ + /** extracts the XML stream from the document storage. + + @returns + the extracted XML stream. + */ + com::sun::star::io::XInputStream extract( [in] com::sun::star::io::XInputStream aStream ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/java/InvalidJavaSettingsException.idl b/udkapi/com/sun/star/java/InvalidJavaSettingsException.idl new file mode 100644 index 0000000000..98591e110f --- /dev/null +++ b/udkapi/com/sun/star/java/InvalidJavaSettingsException.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module java { + + +/** indicates the Java settings have been modified. + + <p>The Java framework uses a configuration file, which can be used + by distributors to determine what versions are supported. If this + file is modified, then the current settings are regarded as invalid.</p> + + @since OOo 2.0 + */ +exception InvalidJavaSettingsException: JavaInitializationException +{ +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/java/JavaDisabledException.idl b/udkapi/com/sun/star/java/JavaDisabledException.idl new file mode 100644 index 0000000000..7baf5be7ba --- /dev/null +++ b/udkapi/com/sun/star/java/JavaDisabledException.idl @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module java { + + +/** indicates that Java could not be initialized because it has + been switched off.<p> + The user has switched off Java in the configuration of the office, + for example by means of the options dialog. + + @since OOo 1.1.2 + */ +published exception JavaDisabledException: JavaInitializationException +{ +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/java/JavaInitializationException.idl b/udkapi/com/sun/star/java/JavaInitializationException.idl new file mode 100644 index 0000000000..eb768494b3 --- /dev/null +++ b/udkapi/com/sun/star/java/JavaInitializationException.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module java { + + +/** indicates that there is no Java available <p> + It is presumed that Java is a vital part of an office installation. + That is, if Java does work for some reason, it is not guaranteed that + the office is functional. A JavaInitializationException is therefore + caused by some misconfiguration of Java which is closer described by + other exceptions in this namespace which inherit JavaInitializationException. + These are: + <p> + com::sun::star::java::JavaDisabledException <br> + com::sun::star::java::JavaNotConfiguredException <br> + com::sun::star::java::MissingJavaRuntimeException <br> + com::sun::star::java::JavaVMCreationFailureException <br> + + @since OOo 1.1.2 + */ +published exception JavaInitializationException: com::sun::star::uno::DeploymentException +{ +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/java/JavaNotConfiguredException.idl b/udkapi/com/sun/star/java/JavaNotConfiguredException.idl new file mode 100644 index 0000000000..7f85e907dc --- /dev/null +++ b/udkapi/com/sun/star/java/JavaNotConfiguredException.idl @@ -0,0 +1,35 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module java { + + +/** indicates that the user did not configure Java for an Office installation. <p> + This exception occurs if there is no java.ini or javarc available. This usually + happens if a user cancels the Java configuration which of the office. + + @since OOo 1.1.2 + */ +published exception JavaNotConfiguredException: JavaInitializationException +{ +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/java/JavaNotFoundException.idl b/udkapi/com/sun/star/java/JavaNotFoundException.idl new file mode 100644 index 0000000000..19d1dd8c34 --- /dev/null +++ b/udkapi/com/sun/star/java/JavaNotFoundException.idl @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module java { + + +/** indicates that no suitable JRE was found. + + @since OOo 2.0 + */ +exception JavaNotFoundException: JavaInitializationException +{ +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/java/JavaVMCreationFailureException.idl b/udkapi/com/sun/star/java/JavaVMCreationFailureException.idl new file mode 100644 index 0000000000..3030a857df --- /dev/null +++ b/udkapi/com/sun/star/java/JavaVMCreationFailureException.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module java { + + +/** indicates that the Java Virtual Machine could not be created <p> + This exception can be thrown when the creation of the Java Virtual + Machine failed, even if the runtime library could be loaded. + Possible reasons for a failure are that JNI_CreateJavaVM returns + an error code that reflects a failure, JNI_CreateJavaVM does not + return because it tries to quit the process ( _exit), the shared + library is corrupted, so that the symbols for JNI_GetDefaultVMInitArgs + or JNI_CreateJavaVM cannot be found, etc. + + @since OOo 1.1.2 + */ +published exception JavaVMCreationFailureException: JavaInitializationException +{ + /** contains an error code that reflects the returned error code of + JNI_CreateJavaVM or other errors. A negative value represents + the returned error code of JNI_CreateJavaVM. All other values + indicate a different cause. + */ + long ErrorCode; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/java/JavaVirtualMachine.idl b/udkapi/com/sun/star/java/JavaVirtualMachine.idl new file mode 100644 index 0000000000..96462fa524 --- /dev/null +++ b/udkapi/com/sun/star/java/JavaVirtualMachine.idl @@ -0,0 +1,35 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module java { + + +/** Exports interfaces to handle a Java VM. + + @deprecated + A UNO service seems to be at the wrong abstraction level for this + functionality. This should probably be replaced by an appropriate C/C++ + API. + */ +published service JavaVirtualMachine : XJavaVM; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/java/MissingJavaRuntimeException.idl b/udkapi/com/sun/star/java/MissingJavaRuntimeException.idl new file mode 100644 index 0000000000..e5d17c7fbc --- /dev/null +++ b/udkapi/com/sun/star/java/MissingJavaRuntimeException.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module java { + + +/** indicates that the Java runtime library could not be found. <p> + This happens when a user moves or deletes a Java installation after + the office has been configured to use that Java installation. + + @since OOo 1.1.2 + */ +published exception MissingJavaRuntimeException: JavaInitializationException +{ + /** contains the path to the runtime lib as file URL. + */ + string URLRuntimeLib; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/java/RestartRequiredException.idl b/udkapi/com/sun/star/java/RestartRequiredException.idl new file mode 100644 index 0000000000..f748e2603a --- /dev/null +++ b/udkapi/com/sun/star/java/RestartRequiredException.idl @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module java { + + +/** indicates that the office must be restarted before a JRE can be used. + + @since OOo 2.0 + */ +exception RestartRequiredException: JavaInitializationException +{ +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/java/WrongJavaVersionException.idl b/udkapi/com/sun/star/java/WrongJavaVersionException.idl new file mode 100644 index 0000000000..efffa54bdb --- /dev/null +++ b/udkapi/com/sun/star/java/WrongJavaVersionException.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module java { + +/** indicates that an operation involving Java (probably executing Java code) + failed due to a wrong Java version. + */ +published exception WrongJavaVersionException: com::sun::star::uno::Exception +{ + /** contains the lowest Java version for which the operation would + succeed, or is left empty if this is unknown. + */ + string LowestSupportedVersion; + + /** contains the highest Java version for which the operation would + succeed, or is left empty if this is unknown. + */ + string HighestSupportedVersion; + + /** contains the Java version that has been detected, or is left empty if + this is unknown. + */ + string DetectedVersion; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/java/XJavaThreadRegister_11.idl b/udkapi/com/sun/star/java/XJavaThreadRegister_11.idl new file mode 100644 index 0000000000..bd3af7bc01 --- /dev/null +++ b/udkapi/com/sun/star/java/XJavaThreadRegister_11.idl @@ -0,0 +1,52 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module java { + +/** must be implemented by the user of the XJavaThreadRegister_11. + + @note incomplete + @deprecated + */ +published interface XJavaThreadRegister_11: com::sun::star::uno::XInterface +{ + /** returns `TRUE` if the current thread is already attached to the VM otherwise `FALSE`. + */ + boolean isThreadAttached(); + + /** registers the current thread. + + <p>This method should be called every time a JNI function is called from Java. </p> + */ + void registerThread(); + + + /** revokes the current thread from the list of registered threads. + + <p>This method should be called at the end of every JNI call from Java. </p> + */ + void revokeThread(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/java/XJavaVM.idl b/udkapi/com/sun/star/java/XJavaVM.idl new file mode 100644 index 0000000000..b4c9905eaf --- /dev/null +++ b/udkapi/com/sun/star/java/XJavaVM.idl @@ -0,0 +1,110 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module java { + +/** must be implemented by the user of the XJavaVM. + + @deprecated + A UNO interface seems to be at the wrong abstraction level for this + functionality (also, the C++ classes <code>jvmaccess::VirtualMachine</code> + and <code>jvmaccess::UnoVirtualMachine</code> used by + com::sun::star::java::XJavaVM::getJavaVM() are not + part of the public C++ UNO runtime API). This should probably be replaced + by an appropriate C/C++ API. + */ +published interface XJavaVM: com::sun::star::uno::XInterface +{ + /** returns the address of the Java Virtual Machine. + + <p>If the VM is not already instantiated, it will be now.</p> + + <p>If the <code>processID</code> is a normal 16-byte ID, the returned + `any` contains a JNI <code>JavaVM</code> pointer as a + `long` or `hyper` integer (depending on the + platform). If the <code>processID</code> does not match the current + process, or if the VM cannot be instantiated for whatever reason, a + `VOID` `any` is returned.</p> + + <p>If the <code>processID</code> has an additional 17th byte of + value <code>0</code>, the returned `any` contains a + non–reference-counted pointer to a (reference-counted) instance of + the C++ <code>jvmaccess::VirtualMachine</code> class, always represented + as a `hyper` integer. The pointer is guaranteed to be valid + as long as the reference to this + com::sun::star::java::XJavaVM is valid (but the + pointer should be converted into a reference-counted reference as soon + as possible). Again, if the first 16 bytes of the + <code>processID</code> do not match the current process, or if the VM + cannot be instantiated for whatever reason, a `VOID` `any` + is returned.</p> + + <p>If the <code>processID</code> has an additional 17th byte of + value <code>1</code>, the returned `any` contains a + non–reference-counted pointer to a (reference-counted) instance of + the C++ <code>jvmaccess::UnoVirtualMachine</code> class, always + represented as a `hyper` integer. The pointer is guaranteed + to be valid as long as the reference to this + com::sun::star::java::XJavaVM is valid. Again, if + the first 16 bytes of the <code>processID</code> do not match the + current process, or if the VM cannot be instantiated for whatever + reason, a `VOID` `any` is returned.</p> + + <p>The first form (returning a JNI <code>JavaVM</code> pointer) is + mainly for backwards compatibility, new code should use the second form + (returning a pointer to a <code>jvmaccess::VirtualMachine</code>) if it + does not want to use the Java UNO environment, and it should use the + third form (returning a pointer to a + <code>jvmaccess::UnoVirtualMachine</code>) if it wants to use the Java + UNO environment. For example, one advantage of using + <code>jvmaccess::VirtualMachine</code> instead of the raw + <code>JavaVM</code> pointer is that whenever you attach a native thread + to the Java virtual machine, that thread's context + <code>ClassLoader</code> (see + <code>java.lang.Thread.getContextClassLoader</code>) will automatically + be set to a meaningful value.</p> + + @param processID + The process ID of the caller's process, possibly extended by a 17th byte + of value <code>0</code> or <code>1</code>. + + @return + On success, the `any` contains a pointer represented as + `long` or `hyper`, otherwise the `any` + is `VOID`. + */ + any getJavaVM( [in] sequence<byte> processID ); + + /** returns `TRUE` if the VM is started successfully, otherwise `FALSE`. + */ + boolean isVMStarted(); + + /** Returns `TRUE` if the VM is enabled. + + <p>It is only possible to get the VM, if this method return 0. </p> + */ + boolean isVMEnabled(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/ArrayIndexOutOfBoundsException.idl b/udkapi/com/sun/star/lang/ArrayIndexOutOfBoundsException.idl new file mode 100644 index 0000000000..cfdd0bd924 --- /dev/null +++ b/udkapi/com/sun/star/lang/ArrayIndexOutOfBoundsException.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + +/** This exception is thrown to indicate that an array has been + accessed with an illegal index. + + <p>The index is either negative or greater than or equal to + the size of the array. </p> + */ +published exception ArrayIndexOutOfBoundsException: com::sun::star::lang::IndexOutOfBoundsException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/ClassNotFoundException.idl b/udkapi/com/sun/star/lang/ClassNotFoundException.idl new file mode 100644 index 0000000000..2c1eb60a73 --- /dev/null +++ b/udkapi/com/sun/star/lang/ClassNotFoundException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + +/** This exception is thrown when an application tries to load + the information on the type through its string name. + */ +published exception ClassNotFoundException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/DisposedException.idl b/udkapi/com/sun/star/lang/DisposedException.idl new file mode 100644 index 0000000000..8dacc58264 --- /dev/null +++ b/udkapi/com/sun/star/lang/DisposedException.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module lang { + +/** This exception occurs if the object behind this interface has been + disposed before and can't uphold its method specification anymore. + + <p>The implementation normally should implement the + com::sun::star::lang::XComponent interface + to indicate this possibility. </p> + */ +published exception DisposedException: com::sun::star::uno::RuntimeException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/EventObject.idl b/udkapi/com/sun/star/lang/EventObject.idl new file mode 100644 index 0000000000..72ca61a49a --- /dev/null +++ b/udkapi/com/sun/star/lang/EventObject.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module lang { + +/** specifies the base for all event objects and identifies the + source of the event. + */ +published struct EventObject +{ + /** refers to the object that fired the event. + */ + com::sun::star::uno::XInterface Source; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/IllegalAccessException.idl b/udkapi/com/sun/star/lang/IllegalAccessException.idl new file mode 100644 index 0000000000..b6f31d2ad6 --- /dev/null +++ b/udkapi/com/sun/star/lang/IllegalAccessException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module lang { + +/** This exception is thrown when an application tries to change + a constant property. + */ +published exception IllegalAccessException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/IllegalArgumentException.idl b/udkapi/com/sun/star/lang/IllegalArgumentException.idl new file mode 100644 index 0000000000..4aa53fa0e7 --- /dev/null +++ b/udkapi/com/sun/star/lang/IllegalArgumentException.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module lang { + +/** This exception is thrown to indicate that a method has + passed an illegal or inappropriate argument. + */ +published exception IllegalArgumentException + : com::sun::star::uno::RuntimeException +{ + /** identifies the position of the illegal argument. + + <p>This field is -1 if the position is not known.</p> + */ + short ArgumentPosition; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/IndexOutOfBoundsException.idl b/udkapi/com/sun/star/lang/IndexOutOfBoundsException.idl new file mode 100644 index 0000000000..17cc8860bb --- /dev/null +++ b/udkapi/com/sun/star/lang/IndexOutOfBoundsException.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + +/** This exception is thrown to indicate that a container has been + accessed with an illegal index. + + <p>The index is either negative or greater than or equal to + the count of the elements. </p> + */ +published exception IndexOutOfBoundsException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/InvalidListenerException.idl b/udkapi/com/sun/star/lang/InvalidListenerException.idl new file mode 100644 index 0000000000..fe9f0dd979 --- /dev/null +++ b/udkapi/com/sun/star/lang/InvalidListenerException.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + +/** is thrown by the XConnectionPoint::advice() method + to indicate that the listener has not supplied the necessary + interface. + + @see XConnectionPoint + */ +published exception InvalidListenerException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/ListenerExistException.idl b/udkapi/com/sun/star/lang/ListenerExistException.idl new file mode 100644 index 0000000000..fa05b9f718 --- /dev/null +++ b/udkapi/com/sun/star/lang/ListenerExistException.idl @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module lang { + +/** is thrown by the XConnectionPoint::advise() method + to indicate that there is only one listener allowed. + + @see XConnectionPoint + */ +published exception ListenerExistException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/Locale.idl b/udkapi/com/sun/star/lang/Locale.idl new file mode 100644 index 0000000000..b82e203a69 --- /dev/null +++ b/udkapi/com/sun/star/lang/Locale.idl @@ -0,0 +1,97 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + +/** object represents a specific geographical, political, or cultural region. + + <p>An operation that requires a <code>Locale</code> to perform + its task is called <em>locale-sensitive</em> and uses the + <code>Locale</code> to tailor information for the user. For example, + displaying a number is a locale-sensitive operation; the number + should be formatted according to the customs/conventions of the + user's native country, region, or culture. </p> + */ +published struct Locale +{ + /** specifies an <strong>ISO 639 Language Code</strong>. + + <p>These codes are preferably the lower-case two-letter codes as + defined by ISO 639-1, or three-letter codes as defined by ISO + 639-3. You can find a full list of these codes at a number of + sites, such as: <br/> + <a href="https://iso639-3.sil.org/code_tables/639/data"> + <code>https://iso639-3.sil.org/code_tables/639/data</code></a>. + </p> + + <p>If this field contains an empty string, the meaning depends on the + context.</p> + + <p>Since LibreOffice 4.2, if the locale can not be represented + using only ISO 639 and ISO 3166 codes this field contains the + ISO 639-3 reserved for local use code <strong>"qlt"</strong> and + a <strong>BCP 47</strong> language tag is present in the Variant + field. </p> + */ + string Language; + + /** specifies an <strong>ISO 3166 Country Code</strong>. + + <p>These codes are the upper-case two-letter codes as + defined by ISO 3166-1. You can find a full list of these codes + at a number of sites, such as: <br/> + <a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2"> + <code>https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2</code></a>. + </p> + + <p>If this field contains an empty string, the meaning depends on the + context.</p> + */ + string Country; + + /** specifies a <strong>BCP 47</strong> Language Tag. + + <p>Since LibreOffice 4.2, <strong>if</strong> the Language field + is the code <strong>"qlt"</strong> this field contains the full + BCP 47 language tag. If the Language field is not "qlt" this + field is empty. </p> + + <p>You can find BCP 47 language tag resources at <br/> + <a href="https://en.wikipedia.org/wiki/IETF_language_tag"> + <code>https://en.wikipedia.org/wiki/IETF_language_tag</code></a> and + <a href="https://www.w3.org/International/articles/language-tags/"> + <code>https://www.w3.org/International/articles/language-tags/</code></a>. </p> + + <p>Earlier versions of the documentation mentioned "vendor and + browser-specific" codes but that was never supported. Use of any + arbitrary strings in the Variant field that do not form a valid + BCP 47 language tag is <strong>strongly deprecated</strong>. + </p> + */ + string Variant; + +}; + + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/MultiServiceFactory.idl b/udkapi/com/sun/star/lang/MultiServiceFactory.idl new file mode 100644 index 0000000000..8b4f075172 --- /dev/null +++ b/udkapi/com/sun/star/lang/MultiServiceFactory.idl @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + + +/** Provides a collection of implementations of services. + + <p>The factories for instantiating objects of implementations + are accessed via a service name.</p> + + <p>The com::sun::star::container::XContentEnumerationAccess + interface can be supported optionally. + If it is supported, it is possible to enumerate all implementations that + support the service specified with the argument of + com::sun::star::container::XContentEnumerationAccess::createContentEnumeration(). + The enumerator returns interfaces. The type of the interface is not specified. + Commonly this is XSingleComponentFactory.</p> +*/ +published service MultiServiceFactory +{ + /** This interface uses a service name to instantiate a component + which supports the specified service. + */ + interface com::sun::star::lang::XMultiServiceFactory; + + /** This interface uses a service name and a component context to instantiate + a component which supports the specified service. + */ + interface com::sun::star::lang::XMultiComponentFactory; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/NoSuchFieldException.idl b/udkapi/com/sun/star/lang/NoSuchFieldException.idl new file mode 100644 index 0000000000..13de684d43 --- /dev/null +++ b/udkapi/com/sun/star/lang/NoSuchFieldException.idl @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + +/** signals that the class does not have a field of a specified name. + */ +published exception NoSuchFieldException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/NoSuchMethodException.idl b/udkapi/com/sun/star/lang/NoSuchMethodException.idl new file mode 100644 index 0000000000..7f5ed314f8 --- /dev/null +++ b/udkapi/com/sun/star/lang/NoSuchMethodException.idl @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + +/** signals that the interface does not have a method of a specified name. + */ +published exception NoSuchMethodException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/NoSupportException.idl b/udkapi/com/sun/star/lang/NoSupportException.idl new file mode 100644 index 0000000000..5f513c6f31 --- /dev/null +++ b/udkapi/com/sun/star/lang/NoSupportException.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + + +/** This exception is thrown when a feature of an interface is not + supported. + + <p>An example is a <code>setParent(...)</code> method and the object + does not allow the change. </p> + + @see XEnumeration + @see com::sun::star::container::XChild::setParent + */ +published exception NoSupportException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/NotInitializedException.idl b/udkapi/com/sun/star/lang/NotInitializedException.idl new file mode 100644 index 0000000000..7126db6853 --- /dev/null +++ b/udkapi/com/sun/star/lang/NotInitializedException.idl @@ -0,0 +1,35 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module lang { + + +/** is thrown when a component is attempted to be used before it was + completely constructed. +*/ +published exception NotInitializedException : com::sun::star::uno::RuntimeException +{ +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/NullPointerException.idl b/udkapi/com/sun/star/lang/NullPointerException.idl new file mode 100644 index 0000000000..55406cf53f --- /dev/null +++ b/udkapi/com/sun/star/lang/NullPointerException.idl @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module lang { + +/** This exception is thrown when an application attempts to use + `NULL` in a case where an object is required. + + <p>Applications should throw instances of this class to indicate + other illegal uses of the `NULL` object. </p> + + @see com::sun::star::reflection::XIdlReflection::forName + */ +published exception NullPointerException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/RegistryServiceManager.idl b/udkapi/com/sun/star/lang/RegistryServiceManager.idl new file mode 100644 index 0000000000..9de4a54862 --- /dev/null +++ b/udkapi/com/sun/star/lang/RegistryServiceManager.idl @@ -0,0 +1,64 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + + +/** Provides a collection of implementations for services reading from a + persistent registry storage. + + For usage of the service manager have a look at service description + of ServiceManager. + + @see ServiceManager +*/ +published service RegistryServiceManager +{ + /** This is a derived ServiceManager service. + */ + service com::sun::star::lang::ServiceManager; + + /** The first two arguments of the initialization arguments reference: + <ol> + <li>a simple registry + (com::sun::star::registry::XSimpleRegistry), + i.e. the registry to be read from</li> + <li>a component context + (com::sun::star::uno::XComponentContext) + to be installed as "DefaultContext" property of the + ServiceManager which is the context to be used + using the XMultiServiceFactory interface.</li> + </ol> + */ + interface com::sun::star::lang::XInitialization; + + /** Property access. + */ + interface com::sun::star::beans::XPropertySet; + /** Specifies the current registry to be read from. + */ + [readonly, property] com::sun::star::registry::XSimpleRegistry Registry; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/ServiceManager.idl b/udkapi/com/sun/star/lang/ServiceManager.idl new file mode 100644 index 0000000000..5b9b7a94c8 --- /dev/null +++ b/udkapi/com/sun/star/lang/ServiceManager.idl @@ -0,0 +1,108 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module lang { + + +/** Provides a collection of implementations for services. This is a singleton + you commonly find in your component context under key + <code>/singletons/com.sun.star.lang.theServiceManager</code>. + + <p> + The factories are accessed with a service name. It is possible to + access the factories with their implementation names, but you should + avoid this. + </p> + + <p>Service factories added via com::sun::star::container::XSet + should support the following interfaces: </p> + + <dl> + <dt>XServiceInfo</dt> + <dd>supported interfaces/ implementation name</dd> + + <dt>XSingleComponentFactory(optional)</dt> + <dd>is used to create instances of the implementation.</dd> + + <dt>XComponent (optional)</dt> + <dd>The service manager calls the method + com::sun::star::lang::XComponent::dispose() + on the factory when going down (i.e. it is commonly disposed by the component context).</dd> + </dl> + + <p>Since LibreOffice 3.6, in addition to instances of + XServiceInfo et al, the + com::sun::star::container::XSet of at least the default + C++ service manager implementation now also supports sequences of + com::sun::star::beans::NamedValue in <code>insert</code> + and <code>remove</code>. The sequence elements must each have a + <code>Name</code> of <code>uri</code> and a string <code>Value</code> that + is the URI of a service rdb. It is legal for there to be no such + <code>uri</code> elements. For <code>insert</code>, there can additionally + be an optional element with a <code>Name</code> of + <code>component-context</code> and a value that is a non-null reference of + type com::sun::star::uno::XComponentContext that shall + be used instead of this service manager's default component context when + loading the corresponding implementations. + + @see com::sun::star::uno::XComponentContext +*/ +published service ServiceManager +{ + /** This is a derived MultiServiceFactory service. + */ + service com::sun::star::lang::MultiServiceFactory; + + /** Disposing of service manager. + <p> + The component context disposes its service manager singleton when going down + (i.e. when the component context is disposed). + </p> + */ + interface com::sun::star::lang::XComponent; + + /** Management of service factories. + */ + interface com::sun::star::container::XSet; + + /** Enumeration of all service factories. + <p> + It is possible to enumerate all implementations that support the + service specified with the argument of the + com::sun::star::container::XContentEnumerationAccess::createContentEnumeration() method. + The enumerator commonly returns XSingleComponentFactory + interfaces. + </p> + */ + interface com::sun::star::container::XContentEnumerationAccess; + + /** Property access. + */ + [optional] interface com::sun::star::beans::XPropertySet; + /** specifies the default component context to be used, if instantiating services + via XMultiServiceFactory + */ + [optional, property] com::sun::star::uno::XComponentContext DefaultContext; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/ServiceNotRegisteredException.idl b/udkapi/com/sun/star/lang/ServiceNotRegisteredException.idl new file mode 100644 index 0000000000..c17d127475 --- /dev/null +++ b/udkapi/com/sun/star/lang/ServiceNotRegisteredException.idl @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + +/** This exception is thrown when a needed service is not found. + + <p>Applications should throw instances of this class to indicate + that a needed service is not registered. </p> + */ +published exception ServiceNotRegisteredException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/SystemDependent.idl b/udkapi/com/sun/star/lang/SystemDependent.idl new file mode 100644 index 0000000000..80f5bce568 --- /dev/null +++ b/udkapi/com/sun/star/lang/SystemDependent.idl @@ -0,0 +1,92 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + +/** These constants are used to specify systems which depend on return values. + + <p> You should avoid system-dependent methods if possible. + + @code{.cpp} + #ifdef _WIN32 // Microsoft Windows + HWND hWin = (HWND)xInterface->getWindowHandle(SystemDependentWIN32); + if( hWin ) ... + #elif( ... ) // other systems + ... + #endif + @endcode + + <p>The Symbols are now prepended with SYSTEM_ thus we avoid collisions + with system headers. </p> + + @see com::sun::star::awt::XSystemDependentWindowPeer + @deprecated + */ +published constants SystemDependent +{ + /** The called interface method returns a value specified for Windows. + + <p>These are Windows XP or higher. </p> + */ + const short SYSTEM_WIN32 = 1; + + /** The called interface method returns a value specified for 16-bit Windows. + + <p>This is Windows 3.11. </p> + */ + const short SYSTEM_WIN16 = 2; + + /** The called interface method returns a value specified for Java. + + <p>These are <em>JRE 1.1</em>, <em>JRE 1.2</em>, <em>JDK 1.1</em>, + <em>JDK 1.2</em> or higher. </p> + + <p>The return should be a handle to a Java object locked with + the call <code>JavaEnvironment->NewGlobalRef( ... )</code> + by the callee. </p> + */ + const short SYSTEM_JAVA = 3; + + /** The called interface method returns a value specified for <em>OS/2</em>. + */ + const short SYSTEM_OS2 = 4; + /** The called interface method returns a value specified for <em>macOS</em>. + */ + const short SYSTEM_MAC = 5; + + /** The called interface method returns a value specified for the <em>X Window System</em>. + */ + const short SYSTEM_XWINDOW = 6; + + /** The called interface method returns a value specified for <em>iOS</em>. + */ + const short SYSTEM_IOS = 7; + + /** The called interface method returns a value specified for <em>Android</em>. + */ + const short SYSTEM_ANDROID = 8; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/WrappedTargetException.idl b/udkapi/com/sun/star/lang/WrappedTargetException.idl new file mode 100644 index 0000000000..61dd950a4d --- /dev/null +++ b/udkapi/com/sun/star/lang/WrappedTargetException.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + +/** This is a checked exception that wraps an exception thrown + by the original target. + + <p>Normally this exception is declared for generic methods. </p> + + @see com::sun::star::container::XIndexAccess + @see com::sun::star::container::XNameAccess + @see com::sun::star::beans::XPropertySet + */ +published exception WrappedTargetException: com::sun::star::uno::Exception +{ + /** The exception is thrown by the target. + */ + any TargetException; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/WrappedTargetRuntimeException.idl b/udkapi/com/sun/star/lang/WrappedTargetRuntimeException.idl new file mode 100644 index 0000000000..3b3c866992 --- /dev/null +++ b/udkapi/com/sun/star/lang/WrappedTargetRuntimeException.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module lang { + + +/** This is a runtime exception that wraps any other exception thrown + by the original target. + <p> + This exception should not be declared at interfaces, use + WrappedTargetException instead. It was defined + to transport an exception via interface-methods, that do not + specify the appropriate exceptions (so using this exception + should in general be avoided). + */ +published exception WrappedTargetRuntimeException: ::com::sun::star::uno::RuntimeException +{ + /** The exception is thrown by the target. + */ + any TargetException; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XComponent.idl b/udkapi/com/sun/star/lang/XComponent.idl new file mode 100644 index 0000000000..1e27eba068 --- /dev/null +++ b/udkapi/com/sun/star/lang/XComponent.idl @@ -0,0 +1,111 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module lang { + + published interface XEventListener; + +/** allows to explicitly free resources and break cyclic references. + + <p>Actually the real lifetime of a UNO object is controlled by + references kept on interfaces of this object. But there are two + distinct meanings in keeping a reference to an interface: + 1st to own the object and 2nd to know the object. + + <p>You are only allowed to keep references of interfaces + to UNO objects if you are by definition the owner of that object or + your reference is very temporary or you have registered an + EventListener at that object and release the reference when + "disposing" is called.</p> + */ +published interface XComponent: com::sun::star::uno::XInterface +{ + /** The owner of an object calls this method to explicitly free all + resources kept by this object and thus break cyclic references. + + <p>Only the owner of this object is allowed to call this method. + The object should release all resources and references in the + easiest possible manner ( for instance no serialization should + take place anymore ). + </p> + <p> + The object must notify all registered listeners using the method + XEventListener::disposing(). All notified objects + should release their references to this object without + calling XComponent::removeEventListener() + (the disposed object will release the listeners eitherway). + </p> + + <p>After this method has been called, the object should behave as passive + as possible, thus it should ignore all calls + in case it can comply with its specification (for instance addEventListener()). + Often the object can't fulfill its specification anymore, + in this case it must throw the DisposedException + (which is derived from com::sun::star::uno::RuntimeException) + when it gets called.</p> + + <p>For some objects no real owner can be identified, thus it can be + disposed from multiple reference holders. In this case + the object should be able to cope with multiple dispose()-calls (which + are inevitable in a multithreaded environment). + */ + void dispose(); + + /** adds an event listener to the object. + + <p>The broadcaster fires the disposing method of this listener + if the XComponent::dispose() method is called.</p> + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed.</p> + + <p>If this XComponent is already disposed when + XComponent::addEventListener() is called, the call will not fail + with a DisposedException, but the caller will be notified via the + XEventListener::disposing() + callback. This callback can occur synchronously within the + addEventListener() call.</p> + + @see XComponent::removeEventListener + */ + void addEventListener( [in] XEventListener xListener ); + + /** removes an event listener from the listener list. + + <p>It is a "noop" if the specified listener is not registered.</p> + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + + <p>If this XComponent is already disposed when + XComponent::removeEventListener() is called, the call will not + fail with a DisposedException, + but will rather be ignored silently.</p> + + @see XComponent::addEventListener + */ + void removeEventListener( [in] XEventListener aListener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XConnectionPoint.idl b/udkapi/com/sun/star/lang/XConnectionPoint.idl new file mode 100644 index 0000000000..840408054f --- /dev/null +++ b/udkapi/com/sun/star/lang/XConnectionPoint.idl @@ -0,0 +1,155 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + +/** supports connection points for connectable objects. + + <p>Connectable objects support the following features: </p> + + <ul> + <li>outgoing interfaces, such as event sets; </li> + <li>the ability to enumerate the types of the outgoing interfaces; + <li>the ability to connect and disconnect sinks to the object + for those outgoing types; </li> + <li>the ability to enumerate the connections that exist to a + particular outgoing interface. </li> + </ul> + + <h4>When to Implement?</h4> + + <p>To create a connectable object, you need to implement objects + that provide two related interfaces: </p> + + <ul> + <li>XConnectionPointContainer </li> + <li>XConnectionPoint </li> + </ul> + + <p>The XConnectionPointContainer interface is implemented + on the connectable object to indicate the existence of the outgoing + interfaces. It provides a sequence of sub-objects. It also provides + access to all the connection point sub-objects, each of which + implements the XConnectionPoint interface. The + XConnectionPoint interface provides a sequence of + sub-objects. </p> + + <p>Each connection point is a separate sub-object to avoid circular + reference counting problems. A connection point controls how many + connections (one or more) it will allow in its implementation of + XConnectionPoint::advise(). </p> + + <h4>When to use?</h4> + + <p>A client can use the XConnectionPointContainer interface: </p> + + - to get a sequence of connection points for each outgoing type. + + - to obtain access to connection point sub-objects with the + XConnectionPoint interface for each + outgoing type. Through the XConnectionPoint interface, + a client starts or terminates an advisory loop with the + connectable object and the client's own sink. The + client can also use the XConnectionPoint + interface to get a sequence of the connections that it + knows about. + + @see XConnectionPointContainer + */ +published interface XConnectionPoint: com::sun::star::uno::XInterface +{ + /** @returns + the type of the outgoing interface managed by this + connection point. + + <p>Using the XConnectionPointContainer::getConnectionPoints() + method, a client can obtain an XConnectionPoint + interface. Using that interface and this method, the client + can determine the type of each connection point enumerated. The + type returned from this method must enable the caller to access + this same connection point through + XConnectionPointContainer::findConnectionPoint(). + + @see XConnectionPointContainer::findConnectionPoint + */ + type getConnectionType(); + + /** @returns + the XConnectionPointContainer interface on + the parent connectable object. + + @see XConnectionPointContainer + */ + com::sun::star::lang::XConnectionPointContainer getConnectionPointContainer(); + + /** creates a connection between a connection point and a + client's sink, where the sink implements the outgoing interface + supported by this connection point. + + <p>A few <code>add...Listener</code> methods need additional parameters + to add listeners or throw exceptions. One of these methods is + com::sun::star::beans::XPropertySet::addPropertyChangeListener(). + We ignore the problem in this interface. A solution must be provided + in an additional XConnectionPoint interface. </p> + + @param xListener + specifies the listener interface on the client's advise sink. + The client's sink receives outgoing calls from the + connection point container. + + @throws ListenerExistException + if it is an unicast broadcaster and a listener is already set. + + @throws InvalidListenerException + if the listener does not supply the needed interfaces. + + @see com::sun::star::beans::XPropertySet::addPropertyChangeListener + */ + void advise( [in] com::sun::star::uno::XInterface xListener ) + raises( com::sun::star::lang::ListenerExistException, + com::sun::star::lang::InvalidListenerException ); + + /** terminates a notification previously set up with advise. + + <p>A few <code>remove...Listener</code> methods need additional + parameters to add listeners or throw exceptions. One of these methods + is com::sun::star::beans::XPropertySet::removePropertyChangeListener(). + We ignore the problem in this interface. A solution must be + provided in an additional XConnectionPoint interface. </p> + + @param xListener + specifies the listener interface on the client's advise sink. + + @see com::sun::star::beans::XPropertySet::removePropertyChangeListener + */ + void unadvise( [in] com::sun::star::uno::XInterface xListener ); + + /** @returns + a sequence of all currently advised connections. + */ + sequence<com::sun::star::uno::XInterface> getConnections(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XConnectionPointContainer.idl b/udkapi/com/sun/star/lang/XConnectionPointContainer.idl new file mode 100644 index 0000000000..0b221a718b --- /dev/null +++ b/udkapi/com/sun/star/lang/XConnectionPointContainer.idl @@ -0,0 +1,84 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module lang { + + published interface XConnectionPoint; + +/** makes it possible to locate a specific connection point + for a specified UIK and manages a sequence of connections points. + + <p>An implementation of this interface <strong>must</strong> + support the com::sun::star::uno::XWeak interface. + Look at the language binding for a superclass or something else. </p> + + @see XConnectionPoint + @see com::sun::star::uno::XWeak + */ +published interface XConnectionPointContainer: com::sun::star::uno::XInterface +{ + /** @returns + a sequence of all outgoing types; specifies which are supported + by this connectable object. + */ + sequence<type> getConnectionPointTypes(); + + /** @returns + an XConnectionPoint interface of a + connection point for a specified type if that type + describes a supported outgoing interface. It is + NULL on failure of the call. + + @param aType + specifies the connection point's type. + */ + XConnectionPoint queryConnectionPoint( [in] type aType ); + + /** creates a connection between this object and a + client's sink, where the sink implements the outgoing + interface specified with ID. + + <p>The interface is advised under the connection point you + get with <code>queryConnectionPoint( id )</code>. </p> + + <p>Use this method instead of the advise method at the + connection point, only if you know that the broadcaster supports + the outgoing interface, or if it does not matter that the + outgoing interface is not supported. </p> + + @see XConnectionPoint::advise + */ + void advise( [in] type aType, + [in] com::sun::star::uno::XInterface xListener ); + + /** terminates a notification previously set up with + advise at the container or at the suitable connection point. + + @see XConnectionPoint::unadvise + */ + void unadvise( [in] type aType, + [in] com::sun::star::uno::XInterface xListener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XEventListener.idl b/udkapi/com/sun/star/lang/XEventListener.idl new file mode 100644 index 0000000000..bc23425375 --- /dev/null +++ b/udkapi/com/sun/star/lang/XEventListener.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + +/** base interface for all event listeners interfaces. + */ +published interface XEventListener: com::sun::star::uno::XInterface +{ + /** gets called when the broadcaster is about to be disposed. + + <p>All listeners and all other objects, which reference the + broadcaster should release the reference to the source. + No method should be invoked anymore on this object ( + including XComponent::removeEventListener() ). + </p> + + <p>This method is called for every listener registration + of derived listener interfaced, not only for registrations + at XComponent. </p> + */ + void disposing( [in] com::sun::star::lang::EventObject Source ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XInitialization.idl b/udkapi/com/sun/star/lang/XInitialization.idl new file mode 100644 index 0000000000..8a674743b1 --- /dev/null +++ b/udkapi/com/sun/star/lang/XInitialization.idl @@ -0,0 +1,54 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + +/** initializes an object directly after its creation. + + <p>This interface works together with factories. If you want to + initialize the object after creation, you should + support this interface and you may support other interfaces + which offer type-safe initialization methods. </p> + + <p>Instead of calling XSingleComponentFactory::createInstanceWithContext() + and later initialize(), you should call + XSingleComponentFactory::createInstanceWithArgumentsAndContext() + to pass the arguments to the instance. The reason is, that a component may want to + return the same instance for the same set of parameters, and it can do so by implementing + the factory itself. + </p> + + */ +published interface XInitialization: com::sun::star::uno::XInterface +{ + /** initializes the object. + + <p>It should be called directly after the object is created. + */ + void initialize( [in] sequence<any> aArguments ) + raises( com::sun::star::uno::Exception ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XLocalizable.idl b/udkapi/com/sun/star/lang/XLocalizable.idl new file mode 100644 index 0000000000..045b0d412d --- /dev/null +++ b/udkapi/com/sun/star/lang/XLocalizable.idl @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module lang { + +/** makes it possible to set a Locale to be used by the object. + */ +published interface XLocalizable: com::sun::star::uno::XInterface +{ + /** sets the locale to be used by this object. + */ + void setLocale( [in] Locale eLocale ); + + /** @returns + the locale, which is used by this object. + */ + Locale getLocale(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XMain.idl b/udkapi/com/sun/star/lang/XMain.idl new file mode 100644 index 0000000000..38a3f6ea14 --- /dev/null +++ b/udkapi/com/sun/star/lang/XMain.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + + +/** Executing interface for executable components run by the uno executable + loader. This is an application to run components passing the command + line arguments. +*/ +published interface XMain: com::sun::star::uno::XInterface +{ + /** This method is called to run the component. + + @param aArguments + arguments passed to the component, + i.e. the command line arguments + @return + return value passed to be returned by main() + */ + long run( [in] sequence< string > aArguments ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XMultiComponentFactory.idl b/udkapi/com/sun/star/lang/XMultiComponentFactory.idl new file mode 100644 index 0000000000..87554caf99 --- /dev/null +++ b/udkapi/com/sun/star/lang/XMultiComponentFactory.idl @@ -0,0 +1,75 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + +/** Factory interface for creating component instances giving a context from + which to retrieve deployment values. + + @see XInitialization +*/ +published interface XMultiComponentFactory : com::sun::star::uno::XInterface +{ + /** Creates an instance of a component which supports the + services specified by the factory. + + @param aServiceSpecifier + service name + @param Context + context the component instance gets its deployment values from + @return + component instance + */ + com::sun::star::uno::XInterface createInstanceWithContext( + [in] string aServiceSpecifier, + [in] com::sun::star::uno::XComponentContext Context ) + raises (com::sun::star::uno::Exception); + + /** Creates an instance of a component which supports the + services specified by the factory, and initializes the new instance + with the given arguments and context. + + @param ServiceSpecifier + service name + @param Arguments + arguments + @param Context + context the component instance gets its deployment values from + @return + component instance + */ + com::sun::star::uno::XInterface createInstanceWithArgumentsAndContext( + [in] string ServiceSpecifier, + [in] sequence<any> Arguments, + [in] com::sun::star::uno::XComponentContext Context ) + raises (com::sun::star::uno::Exception); + + /** Gets the names of all supported services. + + @returns + sequence of all service names + */ + sequence< string > getAvailableServiceNames(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XMultiServiceFactory.idl b/udkapi/com/sun/star/lang/XMultiServiceFactory.idl new file mode 100644 index 0000000000..22f63dd073 --- /dev/null +++ b/udkapi/com/sun/star/lang/XMultiServiceFactory.idl @@ -0,0 +1,71 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + + +/** Allows creating instances specified by a string name. + + @note + Although this interface deals with the notion of "services", it is + not restricted to services but is more general. + This interface can be used for all kinds + of factories for all kinds of instances, not only UNO services. +*/ +published interface XMultiServiceFactory: com::sun::star::uno::XInterface +{ + /** Creates an instance classified by the specified name. + + @param aServiceSpecifier + classified name of instance + @return + instance + */ + com::sun::star::uno::XInterface createInstance( [in] string aServiceSpecifier ) + raises( com::sun::star::uno::Exception ); + + /** Creates an instance classified by the specified name and passes the arguments + to that instance. + + @param ServiceSpecifier + classified name of instance + @param Arguments + arguments passed to the instance + @return + instance + */ + com::sun::star::uno::XInterface createInstanceWithArguments( + [in] string ServiceSpecifier, + [in] sequence<any> Arguments ) + raises( com::sun::star::uno::Exception ); + + /** Provides the available names of the factory to be used to create instances. + + @returns + sequence of all names + */ + sequence<string> getAvailableServiceNames(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XServiceDisplayName.idl b/udkapi/com/sun/star/lang/XServiceDisplayName.idl new file mode 100644 index 0000000000..6492249f55 --- /dev/null +++ b/udkapi/com/sun/star/lang/XServiceDisplayName.idl @@ -0,0 +1,53 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module lang { + +/** provides a name for the service to be used in displays. + + <p>This name can be used in displays (dialogs, menus, etc.) to provide + a more memorable / meaningful name than the service name or its + implementation name. It should not be used to identify / select a + specific service / implementation.</p> + */ +published interface XServiceDisplayName : ::com::sun::star::uno::XInterface +{ + /** returns the display name of the service for a given language. + + <p>The caller may specify a + com::sun::star::lang::Locale for the preferred + language of the resulting string. + However, if that locale is not supported the resulting string may + be given in a different language. Usually this should be English.</p> + + @param aLocale + the preferred language for the resulting display name. + + @returns + the string to be used for the service in displays. + */ + string getServiceDisplayName( + [in] ::com::sun::star::lang::Locale aLocale ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XServiceInfo.idl b/udkapi/com/sun/star/lang/XServiceInfo.idl new file mode 100644 index 0000000000..5370348e0d --- /dev/null +++ b/udkapi/com/sun/star/lang/XServiceInfo.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + + +/** Provides information regarding the implementation: which services + are implemented and the name of the implementation. +*/ +published interface XServiceInfo: com::sun::star::uno::XInterface +{ + /** Provides the implementation name of the service implementation. + + @returns + unique name of the implementation + */ + string getImplementationName(); + + /** Tests whether the specified service is supported, i.e. implemented + by the implementation. + + @param ServiceName + name of service to be tested + @return + true, if service is supported, false otherwise + */ + boolean supportsService( [in] string ServiceName ); + + /** Provides the supported service names of the implementation, including + also indirect service names. + + @return + sequence of service names that are supported + */ + sequence<string> getSupportedServiceNames(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XServiceName.idl b/udkapi/com/sun/star/lang/XServiceName.idl new file mode 100644 index 0000000000..41267f6597 --- /dev/null +++ b/udkapi/com/sun/star/lang/XServiceName.idl @@ -0,0 +1,42 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module lang { + +/** identifies the object with a service name which can be used to create + such an object by a factory. + */ +published interface XServiceName: com::sun::star::uno::XInterface +{ + /** @returns + the service name that can be used to create such an object + by a factory. + + @see com::sun::star::io::XPersistObject::getServiceName + */ + string getServiceName(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XSingleComponentFactory.idl b/udkapi/com/sun/star/lang/XSingleComponentFactory.idl new file mode 100644 index 0000000000..22895b7914 --- /dev/null +++ b/udkapi/com/sun/star/lang/XSingleComponentFactory.idl @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + +/** Factory interface to create instances of an implementation of a service + specification. + + @see XInitialization +*/ +published interface XSingleComponentFactory : com::sun::star::uno::XInterface +{ + /** Creates an instance of a service implementation. + + @param Context + the instance gets its deployment values from this + @return + component instance + */ + com::sun::star::uno::XInterface createInstanceWithContext( + [in] com::sun::star::uno::XComponentContext Context ) + raises (com::sun::star::uno::Exception); + + /** Creates an instance of a component and initializes the new instance + with the given arguments and context. + + @param Arguments + arguments passed to implementation + @param Context + the instance gets its deployment values from this + @return + component instance + */ + com::sun::star::uno::XInterface createInstanceWithArgumentsAndContext( + [in] sequence<any> Arguments, + [in] com::sun::star::uno::XComponentContext Context ) + raises( com::sun::star::uno::Exception ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XSingleServiceFactory.idl b/udkapi/com/sun/star/lang/XSingleServiceFactory.idl new file mode 100644 index 0000000000..6231dfc95f --- /dev/null +++ b/udkapi/com/sun/star/lang/XSingleServiceFactory.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module lang { + + +/** Factory interface to produce instances of an implementation + of a service specification. + + This interface is deprecated. Please use XSingleComponentFactory. + + @see XInitialization + @deprecated +*/ +published interface XSingleServiceFactory: com::sun::star::uno::XInterface +{ + /** Creates an instance of a service implementation. + + @return + service instance + */ + com::sun::star::uno::XInterface createInstance() + raises( com::sun::star::uno::Exception ); + + /** Creates an instance of a service implementation initialized with + some arguments. + + @param aArguments + arguments passed to implementation + @return + service instance + */ + com::sun::star::uno::XInterface createInstanceWithArguments( [in] sequence<any> aArguments ) + raises( com::sun::star::uno::Exception ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XTypeProvider.idl b/udkapi/com/sun/star/lang/XTypeProvider.idl new file mode 100644 index 0000000000..f9ceaa099d --- /dev/null +++ b/udkapi/com/sun/star/lang/XTypeProvider.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module lang { + + +/** interface to get information about the types + (usually interface types) supported by an object. + */ +published interface XTypeProvider: com::sun::star::uno::XInterface +{ + + /** returns + a sequence of all types (usually interface types) provided by the object. + @attention + If the object aggregates other objects the sequence also has + to contain all types supported by the aggregated objects. + */ + sequence<type> getTypes(); + + + /** Obsolete unique identifier. + + Originally returned a sequence of bytes which, when non-empty, was used + as an ID to distinguish unambiguously between two sets of types, for + example to realise hashing functionality when the object is + introspected. Two objects that returned the same non-empty ID had to + return the same set of types in getTypes(). (If a unique ID could not + be provided, this method was always allowed to return an empty sequence, + though). + + @deprecated This feature should no longer be used, and implementations + are encouraged to always return an empty sequence. + */ + sequence<byte> getImplementationId(); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/lang/XUnoTunnel.idl b/udkapi/com/sun/star/lang/XUnoTunnel.idl new file mode 100644 index 0000000000..edfeeadf84 --- /dev/null +++ b/udkapi/com/sun/star/lang/XUnoTunnel.idl @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + +module com { module sun { module star { module lang { + + +/** An interface to tunnel UNO. This means providing access to data or + something else, which is not specified by UNO-IDL. + + @attention + Restrictive usage. Use only, if there is no better possibility left. + It is definitely a hack. + + <p> + Common usage: + Getting a C++ object pointer in the same process, thus to use an + implementation directly, most often because of a design flaw. + </p> +*/ +published interface XUnoTunnel: com::sun::star::uno::XInterface +{ + /** Call this method to get something which is not specified in UNO, e.g. + an address to some C++ object. + + @attention + The identifier specifies how the return value is to be reinterpreted. + The identifier must be globally unique, because it is unknown where + the implementation resides. + + @param aIdentifier + identifier + @return + something + */ + hyper getSomething( [in] sequence< byte > aIdentifier ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/loader/CannotActivateFactoryException.idl b/udkapi/com/sun/star/loader/CannotActivateFactoryException.idl new file mode 100644 index 0000000000..29a72b6658 --- /dev/null +++ b/udkapi/com/sun/star/loader/CannotActivateFactoryException.idl @@ -0,0 +1,42 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module loader { + + +/** indicates an error during component activation + <p> This exception is thrown when an application tries to + activate a component factory using the + XImplementationLoader::activate() + method, but the component factory can not be activated. + <p> + Possible reasons for this error is a missing shared library or .jar file, + a badly linked library, a wrong LD_LIBRARY_PATH or PATH, an incomplete + classpath, or a missing java installation. The Message should + contain some more detailed explanations. + */ +published exception CannotActivateFactoryException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/loader/Dynamic.idl b/udkapi/com/sun/star/loader/Dynamic.idl new file mode 100644 index 0000000000..4f9303dd6a --- /dev/null +++ b/udkapi/com/sun/star/loader/Dynamic.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module loader { + + published interface XImplementationLoader; + + +/** + Makes it possible to access services accessible via a <code>UnoUrlResolver</code> + E.g., instantiation of services in another process. This service is still in an + experimental state and should not be used in a production environment. + + Is used to write persistent information into the given registry + for accessing a <code>SingleServiceFactory</code> and for activating this + implementation. + + Allows registration and activation of described service. + The url parameter has to be a comma-separated list of attributes. + The following attribute types are understood: + servicename = the service name to register this component under + link = a parameter given to a resolver to get a <code>SingleServiceFactory</code> + resolver = a <code>UnoUrlResolver</code> service, which is used to resolve the link +*/ +published service Dynamic : XImplementationLoader; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/loader/Java.idl b/udkapi/com/sun/star/loader/Java.idl new file mode 100644 index 0000000000..5ad7e2db2b --- /dev/null +++ b/udkapi/com/sun/star/loader/Java.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module loader { + +published interface XImplementationLoader; + + +/** + Allows to access a java component stored with a .jar file. + + Is used for writing persistent information in the registry for + external implementation and for activating this implementation. The + locationUrls must be absolute file urls. +*/ +published service Java : XImplementationLoader; + + +}; }; }; }; + +/*===================================================================== + + Source Code Control System - Update + +=====================================================================*/ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/loader/Java2.idl b/udkapi/com/sun/star/loader/Java2.idl new file mode 100644 index 0000000000..b65a20e47b --- /dev/null +++ b/udkapi/com/sun/star/loader/Java2.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module loader { +/**the same as com::sun::star::loader::Java. +<p>This service was introduced for UNO 3 components. The then +com::sun::star::loader::Java service was intended for +UNO 2 components. Since UNO 2 is not supported anymore, the service +name is reused again. + + @deprecated +*/ +published service Java2 +{ + interface XImplementationLoader; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/loader/SharedLibrary.idl b/udkapi/com/sun/star/loader/SharedLibrary.idl new file mode 100644 index 0000000000..0c5d2cb498 --- /dev/null +++ b/udkapi/com/sun/star/loader/SharedLibrary.idl @@ -0,0 +1,42 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + module com { module sun { module star { module loader { + + published interface XImplementationLoader; + + +/** + Allows to access a native component stored in a shared library. + + Is used for writing persistent information in the registry for + an external implementation and for activating this + implementation. +*/ +published service SharedLibrary : XImplementationLoader; + +}; }; }; }; //module com.sun.star.loader + +/*===================================================================== + + Source Code Control System - Update + +=====================================================================*/ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/loader/XImplementationLoader.idl b/udkapi/com/sun/star/loader/XImplementationLoader.idl new file mode 100644 index 0000000000..58ed3ea9c8 --- /dev/null +++ b/udkapi/com/sun/star/loader/XImplementationLoader.idl @@ -0,0 +1,92 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module loader { + + +/** handles activation (loading) of a UNO component. + @see com::sun::star::registry::XImplementationRegistration + */ +published interface XImplementationLoader: com::sun::star::uno::XInterface +{ + + /** activates a concrete implementation within a component. + @param implementationName The name of the implementation, + which shall be instantiated. The method + XImplementationLoader::writeRegistryInfo() + writes a list of implementation names hosted by this component. + @param implementationLoaderUrl specification bug, ignore this parameter, please + pass an empty string. + @param locationUrl Points to the location of the file containing + the component (for instance a .jar-file or a shared library). + This parameter + should be in a URL format (= protocol:protocol-dependent-part). + In case the string contains no + leading "protocol:", the implementation in general assumes, + that it is a relative file url. <p>Special loaders may define + their own protocol (for instance an executable loader may need + more than only one file url). + + @param xKey A registry which may be used to read static data previously + written via XImplementationLoader::writeRegistryInfo(). + The use of this parameter is deprecated. + + @return returns a factory interface, which allows to create an instance of + the concrete implementation. In general, the object supports a + com::sun::star::lang::XSingleComponentFactory + and the com::sun::star::lang::XServiceInfo interface. The + XServiceInfo interface informs about the capabilities of the + service implementation, not the factory itself. + */ + com::sun::star::uno::XInterface activate( [in] string implementationName, + [in] string implementationLoaderUrl, + [in] string locationUrl, + [in] com::sun::star::registry::XRegistryKey xKey ) + raises( com::sun::star::loader::CannotActivateFactoryException ); + + /** writes a list of all implementations hosted by this component into a registry key. + <p>This method is called during registering a component. + @param xKey The registry key, which shall be used to write for each + implementation the implementation name plus a list of supported + services. + @param implementationLoaderUrl specification bug, ignore this parameter, please + pass an empty string. + @param locationUrl Points to the location of the file containing + the component (for instance a .jar-file or a shared library). + This parameter + should be in a URL format (= protocol:protocol-dependent-part). + In case the string contains no + leading "protocol:", the implementation in general assumes, + that it is a relative file url. <p>Special loaders may define + their own protocol (for instance an executable loader may need + more than only one file url). + @see com::sun::star::registry::XImplementationRegistration + */ + boolean writeRegistryInfo( [in] com::sun::star::registry::XRegistryKey xKey, + [in] string implementationLoaderUrl, + [in] string locationUrl ) + raises( com::sun::star::registry::CannotRegisterImplementationException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/modules.idl b/udkapi/com/sun/star/modules.idl new file mode 100644 index 0000000000..eba1621927 --- /dev/null +++ b/udkapi/com/sun/star/modules.idl @@ -0,0 +1,79 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +/* note: this file contains documentation of the modules. + sub-modules of modules are documented here too so there aren't + lots of tiny documentation only files everywhere. +*/ + +module com { module sun { + +/// the module com::sun::star is the root module of the UNO API. +module star { + +/// Java beans-like property access and introspection. +module beans {}; + +/// Interfaces for building bridges to other component models. +module bridge { + + /// interfaces for UNO bridge to OLE automation. + module oleautomation {}; + +}; + +/// Data exchange interfaces for inter-process communication. +module connection {}; + +/// Interfaces for collections and containers. +module container {}; + +/// General input/output interfaces. +module io {}; + +/// Java to UNO connectivity interfaces. +module java {}; + +/// General UNO concepts like factories etc. +module lang {}; + +/// Component implementation loader interfaces. +module loader {}; + +/// Runtime object inspection / core reflection interfaces. +module reflection {}; + +/// Interfaces to access registration databases. +module registry {}; + +/// Scripting language bindings. +module script {}; + +/// Interface for authorisation and authentication. +module security {}; + +/// Basic UNO interfaces. +module uno {}; + +/// URI processing. +module uri {}; + +}; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/CoreReflection.idl b/udkapi/com/sun/star/reflection/CoreReflection.idl new file mode 100644 index 0000000000..2e7fba70d0 --- /dev/null +++ b/udkapi/com/sun/star/reflection/CoreReflection.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** This service is the implementation of the reflection API. + You can obtain information about types, modify values of reflected types + and call on objects. + + @deprecated Rather use the 'theCoreReflection' singleton. +*/ +published service CoreReflection +{ + /** Interface to reflect types. + */ + interface com::sun::star::reflection::XIdlReflection; + + /** CoreReflection has to be disposed if possible + */ + [optional] interface com::sun::star::lang::XComponent; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/Dump.idl b/udkapi/com/sun/star/reflection/Dump.idl new file mode 100644 index 0000000000..849a788a77 --- /dev/null +++ b/udkapi/com/sun/star/reflection/Dump.idl @@ -0,0 +1,22 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +module com { module sun { module star { module reflection { + +/** Dump any UNOIDL value as a string. + + Mainly useful for logging and debugging purposes. + + @since LibreOffice 7.6 +*/ +singleton Dump: XDump; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/udkapi/com/sun/star/reflection/FieldAccessMode.idl b/udkapi/com/sun/star/reflection/FieldAccessMode.idl new file mode 100644 index 0000000000..0dfb5d3604 --- /dev/null +++ b/udkapi/com/sun/star/reflection/FieldAccessMode.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Denotes the access possibilities via XIdlField2 to an + interface attribute, enum or compound type (struct/exception). +*/ +published enum FieldAccessMode +{ + /** readable and writeable + */ + READWRITE, + /** readable only + */ + READONLY, + /** writeable only + */ + WRITEONLY, + /** Deprecated. Not used anymore. + @deprecated + */ + CONST +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/InvalidTypeNameException.idl b/udkapi/com/sun/star/reflection/InvalidTypeNameException.idl new file mode 100644 index 0000000000..83511eb9d4 --- /dev/null +++ b/udkapi/com/sun/star/reflection/InvalidTypeNameException.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module reflection { + + +/** thrown in case that a certain type name does exist, but does not meet + some other criteria. + + @since OOo 1.1.2 + */ +published exception InvalidTypeNameException : com::sun::star::uno::Exception +{ +}; + + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/InvocationTargetException.idl b/udkapi/com/sun/star/reflection/InvocationTargetException.idl new file mode 100644 index 0000000000..aa59d77379 --- /dev/null +++ b/udkapi/com/sun/star/reflection/InvocationTargetException.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** This exception denotes a checked exception (wrapping an originating exception) + and may be thrown upon using invocation API. + + @see XIdlMethod +*/ +published exception InvocationTargetException: com::sun::star::lang::WrappedTargetException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/MethodMode.idl b/udkapi/com/sun/star/reflection/MethodMode.idl new file mode 100644 index 0000000000..fffd7ce013 --- /dev/null +++ b/udkapi/com/sun/star/reflection/MethodMode.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** MethodMode denotes the mode in which method calls are run, i.e. either oneway or + twoway. Mode oneway denotes that a call may be run asynchronously + (thus having no out parameters or return value) +*/ +published enum MethodMode +{ + /** method may be run asynchronously + */ + ONEWAY, + + /** method is run The + */ + TWOWAY +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl b/udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl new file mode 100644 index 0000000000..36349949aa --- /dev/null +++ b/udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module reflection { + + +/** thrown in case that a certain type name does not exist. + + @since OOo 1.1.2 + */ +published exception NoSuchTypeNameException : com::sun::star::uno::Exception +{ +}; + + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/ParamInfo.idl b/udkapi/com/sun/star/reflection/ParamInfo.idl new file mode 100644 index 0000000000..a5b370359e --- /dev/null +++ b/udkapi/com/sun/star/reflection/ParamInfo.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module reflection { + + published interface XIdlClass; + + +/** Provides information about a formal parameter of a method. +*/ +published struct ParamInfo +{ + /** name of the parameter + */ + string aName; + + /** parameter mode: in, out, inout + */ + ParamMode aMode; + + /** formal type of the parameter + */ + XIdlClass aType; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/ParamMode.idl b/udkapi/com/sun/star/reflection/ParamMode.idl new file mode 100644 index 0000000000..2d3739952b --- /dev/null +++ b/udkapi/com/sun/star/reflection/ParamMode.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** The parameter mode denotes the transfer between caller and callee + of a method. +*/ +published enum ParamMode +{ + /** parameter serves as pure input for a called method + */ + IN, + + /** parameter serves as pure output for the callee (in addition to the return value) + */ + OUT, + + /** parameter serves as input as well as output; data can transferred in both directions + */ + INOUT + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/ProxyFactory.idl b/udkapi/com/sun/star/reflection/ProxyFactory.idl new file mode 100644 index 0000000000..b0f1a9b306 --- /dev/null +++ b/udkapi/com/sun/star/reflection/ProxyFactory.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Service to create proxy objects acting on behalf of a given + target object.<br> + A proxy delegates calls to a given target object. + In addition, it is aggregatable, thus it is possible to + intercept calls on the proxy's interfaces. + + @attention + A proxy object is UNO conform, but does NOT provide original target + interfaces on queryInterface() calls. This may lead to problems + regarding object identity, e.g. when dealing with listener proxies. + + @deprecated + Aggregation will no longer be supported as a high-level concept of UNO. + You may still have the option to implement a UNO object consisting of + several single objects in your specific programming language, though this + depends on your programming language. + Thus this service is deprecated, too. +*/ +published service ProxyFactory : XProxyFactory; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/TypeDescriptionManager.idl b/udkapi/com/sun/star/reflection/TypeDescriptionManager.idl new file mode 100644 index 0000000000..d40894006b --- /dev/null +++ b/udkapi/com/sun/star/reflection/TypeDescriptionManager.idl @@ -0,0 +1,95 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module reflection { + + +/** This service manages type descriptions and acts as a central access point + to every type description. It delegates calls for demanded types to + subsequent + com::sun::star::reflection::TypeDescriptionProviders + and may cache type descriptions.<br> + Using cppuhelper's bootstrapping routines bootstrapping an initial + component context, there is a singleton accessible via key + "/singletons/com.sun.star.reflection.theTypeDescriptionManager". + This singleton object is hooked into the C UNO runtime typelib and + lives until the context is shut down.<br> + + @see com::sun::star::reflection::TypeDescriptionProvider + @see com::sun::star::reflection::XTypeDescription +*/ +published service TypeDescriptionManager +{ + /** Interface to retrieve type descriptions. + + In addition to the semantics specified for the corresponding interface + of the TypeDescriptionProvider service (which changed + slightly for LibreOffice 4.1; see there), this interface allows to + retrieve the following entities: + <ul> + <li>The simple types are accessible via <code>"void"</code>, + <code>"boolean"</code>, <code>"byte"</code>, <code>"short"</code>, + <code>"unsigned short"</code>, <code>"long"</code>, <code>"unsigned + long"</code>, <code>"hyper"</code>, <code>"unsigned hyper"</code>, + <code>"float"</code>, <code>"double"</code>, <code>"char"</code>, + <code>"string"</code>, <code>"type"</code>, and + <code>"any"</code>.</li> + + <li>Sequence types are accessible via + <code>"[]<var>ComponentType</var>"</code></li> + + <li>Instantiated polymorphic struct types are accessible via + <code>"<var>StructType</var><<!-- + --><var>Parameter</var><sub>1</sub>,…,<!-- + --><var>Parameter</var><sub><var>n</var></sub>>"</code>.</li> + + <li>Members of interface types are accessible via + <code>"<var>InterfaceType</var>::<var>Member</var>"</code>.</li> + </ul> + + <p>Even though the name of this interface suggests that the used type + names are hierarchical, this doesn't need to be the case. (For example, consider + the names of instantiated polymorphic struct types, like + <code>"Struct<long>"</code>.)</p> + */ + interface com::sun::star::container::XHierarchicalNameAccess; + + /** You can manually add or remove a providers via this interface. + */ + interface com::sun::star::container::XSet; + + /** Interface to signal shutdown to the manager.<br> + This signals all providers to shut down, because usually each provider + references its manager, listening for disposing events. + */ + [optional] interface com::sun::star::lang::XComponent; + + /** Interface for creating enumerations for type descriptions supported + by this TypeDescriptionManager + + @since OOo 1.1.2 + */ + [optional] interface XTypeDescriptionEnumerationAccess; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl b/udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl new file mode 100644 index 0000000000..e36a284f5d --- /dev/null +++ b/udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl @@ -0,0 +1,71 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module reflection { + + +/** This service provides type descriptions, i.e. concrete + service implementations read from source like the persistent registry + database format.<br> + + This old-style service definition mostly serves documentation purposes. It + is not intended that an implementation of this service can be obtained at + the global service manager using this service identifier. + + @see com::sun::star::reflection::TypeDescriptionManager + @see com::sun::star::reflection::XTypeDescription +*/ +published service TypeDescriptionProvider +{ + /** Interface to retrieve type descriptions. + + <p>Names are given in dotted notation, for example + <code>"com.sun.star.uno.XInterface"</code>.</p> + + </p>The returned values are generally non-null references of type + XTypeDescription. However, before LibreOffice 4.1, + the value returned for a UNO constant was the value of the constant, + rather than a reference to an XConstantTypeDescription + object. (It also appears that some implementations return values for + individual UNO enum members, e.g. + <code>"com.sun.star.uno.TypeClass.VOID"</code>, though this is probably + best treated as an implementation obscurity.)</p> + */ + interface com::sun::star::container::XHierarchicalNameAccess; + + /** Interface to signal shutdown to the provider.<br> + This has to be done manually, because usually each provider references + its manager (which may implement type caching) for late resolution of + partial types (e.g. parameter types). + */ + interface com::sun::star::lang::XComponent; + + /** Interface for creating enumerations for type descriptions supported + by this TypeDescriptionProvider + + @since OOo 1.1.2 + */ + [optional] interface XTypeDescriptionEnumerationAccess; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl b/udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl new file mode 100644 index 0000000000..b9e3d50c8f --- /dev/null +++ b/udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Defines depths for searching through type description collections. + + @since OOo 1.1.2 + */ +published enum TypeDescriptionSearchDepth +{ + /** Infinite search depth. Search through all children including direct + children, grand children, grand children's children, ... + */ + INFINITE = -1, + + /** Search only through direct children. + */ + ONE = 1 +}; + + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XArrayTypeDescription.idl b/udkapi/com/sun/star/reflection/XArrayTypeDescription.idl new file mode 100644 index 0000000000..e89bddeb49 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XArrayTypeDescription.idl @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Deprecated, UNOIDL does not have an array concept. + + @deprecated +*/ +published interface XArrayTypeDescription: com::sun::star::reflection::XTypeDescription +{ + /** Returns the element type of the array. + + @return + element type of the array + */ + com::sun::star::reflection::XTypeDescription getType(); + + /** Returns the number of dimensions of the array. + + @return + dimension of the array + */ + long getNumberOfDimensions(); + + /** Returns dimensions of array (same length as getNumberOfDimensions()). + + @return + dimensions of array + */ + sequence< long > getDimensions(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl b/udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl new file mode 100644 index 0000000000..ebb6ed5a76 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl @@ -0,0 +1,65 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Reflects a compound type, i.e. a struct or exception. + + <p>For struct types, this type is superseded by + XStructTypeDescription, which supports polymorphic struct + types.</p> +*/ +published interface XCompoundTypeDescription: com::sun::star::reflection::XTypeDescription +{ + /** Returns the type of the base type of the compound type. + If the compound does not have a base type, the method returns a null interface. + + @return + base interface or null + */ + com::sun::star::reflection::XTypeDescription getBaseType(); + + /** Returns the member types of the struct/exception in IDL declaration order. + + <p>For a polymorphic struct type template, a member of parameterized + type is represented by an instance of + com::sun::star::reflection::XTypeDescription whose + type class is <code>UNKNOWN</code> and whose name is the name of the + type parameter.</p> + + @return + members of struct/exception + */ + sequence<com::sun::star::reflection::XTypeDescription> getMemberTypes(); + + /** Returns the member names of the struct/exception in IDL declaration order. + + @return + members names of struct/exception + */ + sequence<string> getMemberNames(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XConstantTypeDescription.idl b/udkapi/com/sun/star/reflection/XConstantTypeDescription.idl new file mode 100644 index 0000000000..4f329b4796 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XConstantTypeDescription.idl @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module reflection { + + +/** Reflects a constant. + + <p>The type class of this type is + com::sun::star::uno::TypeClass::CONSTANT. + + <p>Constants may be contained in constants groups and modules. + + @see XModuleTypeDescription + @see XConstantsTypeDescription + + @since OOo 1.1.2 + + */ +published interface XConstantTypeDescription : com::sun::star::reflection::XTypeDescription +{ + /** @return the value of the constant. + + <p>Following types are allowed for constants: + <ul> + <li>boolean + <li>byte + <li>short + <li>unsigned short + <li>long + <li>unsigned long + <li>hyper + <li>unsigned hyper + <li>float + <li>double + </ul> + */ + any getConstantValue(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl b/udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl new file mode 100644 index 0000000000..b6fc1d09b5 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module reflection { + + +/** Reflects a constants group. + + <p>The type class of this type is + com::sun::star::uno::TypeClass::CONSTANTS. + + @since OOo 1.1.2 + */ +published interface XConstantsTypeDescription : com::sun::star::reflection::XTypeDescription +{ + /** Returns the constants defined for this constants group. + + @return a sequence containing constants descriptions. + */ + sequence< XConstantTypeDescription > getConstants(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XDump.idl b/udkapi/com/sun/star/reflection/XDump.idl new file mode 100644 index 0000000000..fac2a48eaf --- /dev/null +++ b/udkapi/com/sun/star/reflection/XDump.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +module com { module sun { module star { module reflection { + +/** Dump any UNOIDL value as a string. + + Mainly useful for logging and debugging purposes. + + @since LibreOffice 7.6 +*/ +interface XDump { + /** Dump a UNOIDL value as a string. + + This just dumps the value itself, without any further decoration. + + @param value any UNOIDL value + + @returns a string representation of the given value + */ + string dumpValue([in] any value); + + /** Dump the value of a UNOIDL ANY as a string. + + This dumps the type and value of the given ANY. + + @param value any UNOIDL ANY + + @returns a string representation of the given ANY + */ + string dumpAny([in] any value); + + /** Dump a numeric UNOIDL value, interpreted relative to a UNOIDL constants group, as a string. + + @param constantsGroup the name (in dotted notation, as supported by + /singletons/theTypeDescriptionManager) of a UNOIDL constants group + + @param value a UNOIDL value of type BOOLEAN, BYTE, SHORT, UNSIGNED SHORT, LONG, UNSIGNED + LONG, HYPER, UNSIGNED HYPER, FLOAT, or DOUBLE + + @returns a string representation of the given numeric value + + @throws com::sun::star::lang::IllegalArgumentException if the constantsGroup argument does + not represent a UNOIDL constants group or the value argument is of wrong type + */ + string dumpConstant([in] string constantsGroup, [in] any value) + raises (com::sun::star::lang::IllegalArgumentException); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl b/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl new file mode 100644 index 0000000000..c5603b6be2 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XEnumTypeDescription.idl @@ -0,0 +1,54 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Reflects an enum type. +*/ +published interface XEnumTypeDescription: com::sun::star::reflection::XTypeDescription +{ + /** Returns the default enum value. + + @return + default enum value + */ + long getDefaultEnumValue(); + + /** Returns the enum member values. + + @return + enum member values + */ + sequence<string> getEnumNames(); + + /** Returns the enum member names. + + @return + enum member names + */ + sequence<long> getEnumValues(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XIdlArray.idl b/udkapi/com/sun/star/reflection/XIdlArray.idl new file mode 100644 index 0000000000..aadf8f206f --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlArray.idl @@ -0,0 +1,106 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Reflects an IDL sequence and provides dynamic access to instances of + that sequence. + This interface supports widening conversion when getting or setting elements. + + @attention + Although the name of this interface denotes arrays, + sequences are meant. Don't be obfuscated, arrays are not supported by UNO! +*/ +published interface XIdlArray: com::sun::star::uno::XInterface +{ + /** Reallocates the length of the sequence instance. + + @param array + sequence instance + @param length + new length of sequence + */ + void realloc( + [inout] any array, + [in] long length ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** Returns the length of the given sequence. + + @param array + sequence instance + @return + length of sequence + */ + long getLen( [in] any array ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** Returns element at given index. + + @param aArray + sequence instance + @param nIndex + index + @return + value + + @throws IllegalArgumentException + if the specified object is not a sequence or if the specified object is null + + @throws ArrayIndexOutOfBoundsException + if the specified index argument is negative, or if it is greater than or equal to the + length of the specified sequence. + */ + any get( + [in] any aArray, + [in] long nIndex ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::ArrayIndexOutOfBoundsException ); + + /** Sets a new value at given index. + + @param aArray + sequence instance + @param nIndex + index + @param aNewValue + new value to be set + + @throws IllegalArgumentException + if the specified object is not a sequence or if the specified object is null + + @throws ArrayIndexOutOfBoundsException + if the specified index argument is negative, or if it is greater than or equal to the + length of the specified sequence. + */ + void set( + [inout] any aArray, + [in] long nIndex, + [in] any aNewValue ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::ArrayIndexOutOfBoundsException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XIdlClass.idl b/udkapi/com/sun/star/reflection/XIdlClass.idl new file mode 100644 index 0000000000..e984dfa74c --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlClass.idl @@ -0,0 +1,187 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module reflection { + + published interface XIdlField; + published interface XIdlMethod; + published interface XIdlArray; + + +/** Provides information reflecting a UNO type. +*/ +published interface XIdlClass: com::sun::star::uno::XInterface +{ + /** Deprecated. Do not call. + @deprecated + */ + sequence<XIdlClass> getClasses(); + /** Deprecated. Do not call. + @deprecated + */ + XIdlClass getClass( [in] string aName ); + + /** Tests whether two reflecting objects reflect the same type. + + @returns + true, if the objects reflect the same type, false otherwise. + */ + boolean equals( [in] XIdlClass Type ); + + /** Tests whether values of this reflected type are assignable from values + of a second one (<code>xType</code>). + + @param xType + another reflected type + @return + true, if values of this reflected type are assignable + from values of <code>xType</code>. + */ + boolean isAssignableFrom( [in] XIdlClass xType ); + + /** Returns the com::sun::star::uno::TypeClass + of the reflected type. + + @returns + type class of the reflected type. + */ + com::sun::star::uno::TypeClass getTypeClass(); + + /** Returns the fully-qualified name of the reflected type. + + @returns + the fully-qualified name of the type + */ + string getName(); + + /** Deprecated. Do not call. + + @deprecated + */ + com::sun::star::uno::Uik getUik(); + + /** If the reflected type is an interface, then the returned + sequence of XIdlClass reflect the base interfaces. + <br> + If the reflected type is not an interface or an interface that is + not derived from another, then an empty sequence is returned. + + @return + all base interfaces of an interface type or an empty sequence. + */ + sequence<XIdlClass> getSuperclasses(); + + /** Deprecated. Do not call. + @deprecated + */ + sequence<XIdlClass> getInterfaces(); + + /** If the reflected type is an array or sequence, then this method + returns a XIdlClass interface reflecting + the element. + + @return + reflection interface of the element type of an array or + sequence type (null-reference otherwise). + */ + XIdlClass getComponentType(); + + /** If the reflected type is an interface, struct or union, then you + get a XIdlField interface reflecting the demanded + field (/interface attribute) by name. + <br> + If the reflected type is not an interface, struct or union or the + interface, struct or union does not have a field (/interface attribute) + with the demanded name, then a null-reference is returned. + + @param aName + name of the demanded field reflection + @return + demanded field (/interface attribute) reflection (or null-reference) + */ + XIdlField getField( [in] string aName ); + + /** If the reflected type is an interface, struct or union, then you + get a sequence of XIdlField interfaces reflecting all fields + (/interface attributes). This also includes all inherited + fields (/interface attributes) of the interface, struct of union. + <br> + If the reflected type is not an interface, struct or union or the + interface, struct or union does not have any field (/interface attribute), + then an empty sequence is returned. + + @return + all field (/interface attribute) reflections (or empty sequence) + */ + sequence<XIdlField> getFields(); + + /** If the reflected type is an interface, then you get + a XIdlMethod interface reflecting the demanded method by name. + <br> + If the reflected type is not an interface or the interface does not have + a method with the demanded name (including inherited methods), + then a null-reference is returned. + + @param aName + name of demanded method reflection + @return + demanded method reflection (or null-reference) + */ + XIdlMethod getMethod( [in] string aName ); + + /** If the reflected type is an interface, then you get + a sequence of XIdlMethod interfaces reflecting all methods + of the interface. This also includes the inherited methods of the interface. + <br> + If the reflected type is not an interface or the interface + does not have any methods, then a null-reference is returned. + + @return + all method reflections (or empty sequence) + */ + sequence<XIdlMethod> getMethods(); + + /** If the reflected type is an array, then you get + a XIdlArray interface to modify instances of the array type. + <br> + If the reflected type is not an array, then a null-reference is returned. + + @return + interface to modify array instances (or null-reference) + */ + XIdlArray getArray(); + + /** This method creates instances of the reflected type. + + @attention + Instances of type <code>any</code> can not be passed using an <code>any</code>, because + anys cannot be nested. So if the reflected type is an <code>any</code>, then the + returned value is empty. + + @param obj + pure out parameter to pass the created instance + */ + void createObject( [out] any obj ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XIdlClassProvider.idl b/udkapi/com/sun/star/reflection/XIdlClassProvider.idl new file mode 100644 index 0000000000..a8d7be0c5c --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlClassProvider.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Deprecated interface. Do not use anymore. + + @deprecated +*/ +published interface XIdlClassProvider: com::sun::star::uno::XInterface +{ + sequence<com::sun::star::reflection::XIdlClass> getIdlClasses(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XIdlField.idl b/udkapi/com/sun/star/reflection/XIdlField.idl new file mode 100644 index 0000000000..d113825ddb --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlField.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Deprecated. Use com::sun::star::reflection::XIdlField2 + instead. + + @deprecated +*/ +published interface XIdlField: com::sun::star::reflection::XIdlMember +{ + com::sun::star::reflection::XIdlClass getType(); + com::sun::star::reflection::FieldAccessMode getAccessMode(); + any get( + [in] any obj ) + raises( com::sun::star::lang::IllegalArgumentException ); + void set( + [in] any obj, + [in] any value ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::IllegalAccessException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XIdlField2.idl b/udkapi/com/sun/star/reflection/XIdlField2.idl new file mode 100644 index 0000000000..22052e7938 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlField2.idl @@ -0,0 +1,95 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Reflects an IDL interface attribute, enum or compound type + (i.e. struct/exception) member. +*/ +published interface XIdlField2: com::sun::star::reflection::XIdlMember +{ + /** Returns the type of the field. + + @return + type of the field + */ + com::sun::star::reflection::XIdlClass getType(); + + /** Returns the access mode of the field, i.e. read-write, read-only or + write-only (access mode "const" is deprecated). + + @return + access mode of the field + */ + com::sun::star::reflection::FieldAccessMode getAccessMode(); + + /** Gets the value of the reflected field from the given object, + i.e. an interface, enum or compound type (struct/exception). + For enums, the given object is ignored; the returned value + reflects the constant enum 32-bit value. + + <p>When setting an interface attribute raises a + non com::sun::star::uno::RuntimeException, it is + wrapped in a com::sun::star::lang::WrappedTargetRuntimeException.</p> + + @param obj + object instance having member of reflected type + @return + value of field + + @throws IllegalAccessException + A com::sun::star::lang::IllegalAccessException + is thrown if the given object is no interface, enum or compound type; + or the given object does not have the reflected field. + */ + any get( + [in] any obj ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** Sets the value of the reflected field of the given object, + i.e. an interface or compound type (struct/exception). + + <p>When setting an interface attribute raises a + non com::sun::star::uno::RuntimeException, it is + wrapped in a com::sun::star::lang::WrappedTargetRuntimeException.</p> + + @param obj + object instance having member of reflected type + @param value + value to be set + + @throws IllegalAccessException + A com::sun::star::lang::IllegalAccessException + is thrown if the given object is no interface or compound type; + or the given object does not have the reflected field. + */ + void set( + [inout] any obj, + [in] any value ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::IllegalAccessException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XIdlMember.idl b/udkapi/com/sun/star/reflection/XIdlMember.idl new file mode 100644 index 0000000000..81bdeff2c2 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlMember.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + published interface XIdlClass; + +/** Base interface for XIdlField2s and XIdlMethods. +*/ +published interface XIdlMember: com::sun::star::uno::XInterface +{ + /** Returns the declaring type of this field, i.e. the type having + the member declared (interface, enum, struct, exception). + + @returns + declaring type + */ + XIdlClass getDeclaringClass(); + + /** Returns the fully-qualified name of the member. + + @return fully-qualified name of the member + */ + string getName(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XIdlMethod.idl b/udkapi/com/sun/star/reflection/XIdlMethod.idl new file mode 100644 index 0000000000..0d814796d1 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlMethod.idl @@ -0,0 +1,105 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + published interface XIdlClass; + + +/** Reflects an IDL interface method. +*/ +published interface XIdlMethod: com::sun::star::reflection::XIdlMember +{ + /** Returns the return type of the reflected method. + + @return + return type of reflected method + */ + XIdlClass getReturnType(); + + /** Returns the formal parameter types of the reflected method in order of IDL + declaration. + + @return + formal parameter types of reflected method + */ + sequence<XIdlClass> getParameterTypes(); + + /** Returns formal parameter information of the reflected method + in order of IDL declaration. + Parameter information reflects the parameter's access mode (in, out, inout), + the parameter's name and formal type. + + @return + parameter information of reflected method + */ + sequence<ParamInfo> getParameterInfos(); + + /** Returns the declared exceptions types of the reflected method. + + @return + declared exception types of reflected method + */ + sequence<com::sun::star::reflection::XIdlClass> getExceptionTypes(); + + /** Returns the method mode in which calls are run, i.e. either oneway or + twoway. Method mode oneway denotes that a call may be run asynchronously + (thus having no out parameters or return value) + + @return + method mode of reflected method + */ + com::sun::star::reflection::MethodMode getMode(); + + /** Invokes the reflected method on a given object with the given parameters. + The parameters may be widening converted to fit their exact IDL type, + meaning no loss of information. + + @param obj + object to call on + @param args + arguments passed to the method + @return + return value of the method call (may be empty for methods returning void) + + @throws IllegalArgumentException + if the given object is a nuull reference or does not support the reflected + method's interface + @throws IllegalArgumentException + if the given number of arguments differ from the expected number + or the given arguments' types differ from the expected ones (even a + widening conversion was not possible) + @throws InvocationTargetException + if the reflected method that has been invoked has thrown an exception. + The original exception will be wrapped up and signalled by the + InvocationTargetException + */ + any invoke( + [in] any obj, + [inout] sequence<any> args ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::reflection::InvocationTargetException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XIdlReflection.idl b/udkapi/com/sun/star/reflection/XIdlReflection.idl new file mode 100644 index 0000000000..871287363d --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIdlReflection.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Interface to reflect types. + + @see CoreReflection + @see XIdlClass +*/ +published interface XIdlReflection: com::sun::star::uno::XInterface +{ + /** Obtaining a reflection interface for a type. You specify the type by + its name. + If the given type name can not be reflected, then a null-reference + is returned. + + @param aTypeName + the type's name + @return + reflection interface for the demanded type (or null) + */ + com::sun::star::reflection::XIdlClass forName( [in] string aTypeName ); + + /** Obtaining a reflection interface for an object. This method takes + the type of the object the any contains into account. If the any + contains no object, then a null-reference is returned. + + @param aObj + an object + @return + reflection interface of the type of the demanded object (or null) + */ + com::sun::star::reflection::XIdlClass getType( [in] any aObj ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl b/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl new file mode 100644 index 0000000000..be4755b6a1 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Reflects a typedef or sequence type. + The type class of this description is TypeClass_TYPEDEF or + TypeClass_SEQUENCE. +*/ +published interface XIndirectTypeDescription: com::sun::star::reflection::XTypeDescription +{ + /** Returns the typedefed type, if the type is a typedef, + or the element type, if the type is a sequence. + + @return + referenced type + */ + com::sun::star::reflection::XTypeDescription getReferencedType(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl new file mode 100644 index 0000000000..c44dad68b1 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl @@ -0,0 +1,53 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Reflects an interface attribute type. + + <p>This type is superseded by + XInterfaceAttributeTypeDescription2, which supports extended + attributes.</p> + + The type class of this type is TypeClass_INTERFACE_ATTRIBUTE. +*/ +published interface XInterfaceAttributeTypeDescription: com::sun::star::reflection::XInterfaceMemberTypeDescription +{ + /** Returns true, if this attribute is read-only. + + @return + true, if attribute is read-only + */ + boolean isReadOnly(); + + /** Returns the type of the attribute. + + @return + type of attribute + */ + com::sun::star::reflection::XTypeDescription getType(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl new file mode 100644 index 0000000000..7cc2a323a1 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl @@ -0,0 +1,66 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module reflection { + +interface XCompoundTypeDescription; + +/** + Reflects an interface attribute, supporting extended attributes that are + bound or raise exceptions. + + <p>This type supersedes XInterfaceAttributeTypeDescription, + which does not support extended attributes.</p> + + @since OOo 2.0 + */ +interface XInterfaceAttributeTypeDescription2: + XInterfaceAttributeTypeDescription +{ + /** + Returns whether this object reflects a bound attribute. + + @return `TRUE` iff this object reflects a bound attribute + */ + boolean isBound(); + + /** + Returns the exceptions that can be raised by the attribute's getter. + + @return the reflections of all the exceptions that are listed in the + <code>raises</code> specification of the attribute's getter (if any), in + no particular order; all elements of the returned sequence will be + reflections of exception types + */ + sequence<XCompoundTypeDescription> getGetExceptions(); + + /** + Returns the exceptions that can be raised by the attribute's setter. + + @return the reflections of all the exceptions that are listed in the + <code>raises</code> specification of the attribute's setter (if any), in + no particular order; all elements of the returned sequence will be + reflections of exception types + */ + sequence<XCompoundTypeDescription> getSetExceptions(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl new file mode 100644 index 0000000000..8694a48d71 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Base interface for reflected interface members. + + @see XInterfaceAttributeTypeDescription + @see XInterfaceMethodTypeDescription +*/ +published interface XInterfaceMemberTypeDescription: com::sun::star::reflection::XTypeDescription +{ + /** Returns name of member + + @return + member name + */ + string getMemberName(); + + /** Returns the position the member including all inherited members of base + interfaces. + + @return + position of member + */ + long getPosition(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl new file mode 100644 index 0000000000..abc0e1550c --- /dev/null +++ b/udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Reflects an interface method type. + The type class of this type is TypeClass_INTERFACE_METHOD. +*/ +published interface XInterfaceMethodTypeDescription: com::sun::star::reflection::XInterfaceMemberTypeDescription +{ + /** Returns the method's return type. + + @return + method's return type + */ + com::sun::star::reflection::XTypeDescription getReturnType(); + + /** Returns true, if this method is declared oneway. + + @return + true, if this method is declared oneway + */ + boolean isOneway(); + + /** Returns all parameters of the method in order of IDL declaration. + + @return + method parameters + */ + sequence<com::sun::star::reflection::XMethodParameter> getParameters(); + + /** Returns declared exceptions that may occur upon invocations of the method. + + @return + declared exceptions of method + */ + sequence<com::sun::star::reflection::XTypeDescription> getExceptions(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl new file mode 100644 index 0000000000..74f080b361 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl @@ -0,0 +1,68 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Reflects an interface type. + + <p>This type is superseded by XInterfaceTypeDescription2, which + supports multiple inheritance.</p> + + @see XInterfaceMemberTypeDescription +*/ +published interface XInterfaceTypeDescription: com::sun::star::reflection::XTypeDescription +{ + /** Returns the base interface or null, if the reflected interface is not + inherited from another. + + <p>This method is deprecated, as it only supports single inheritance. + See XInterfaceTypeDescription2 for a replacement that + supports multiple inheritance.</p> + + @return + base interface or null + @deprecated + */ + com::sun::star::reflection::XTypeDescription getBaseType(); + + /** Deprecated. UIK are not used anymore, a type is uniquely identified by + its name.<br> + Returns the UIK, i.e. the unique identifier of the interface. + + @return + uik of the interface + @deprecated + */ + com::sun::star::uno::Uik getUik(); + + /** Returns the members of the interfaces, i.e. attributes and methods. + + @returns + interface members + */ + sequence<com::sun::star::reflection::XInterfaceMemberTypeDescription> getMembers(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl new file mode 100644 index 0000000000..c7041ae6ff --- /dev/null +++ b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module reflection { + +interface XTypeDescription; + +/** Reflects an interface type, supporting multiple inheritance. + + <p>This type supersedes XInterfaceTypeDescription, which only + supported single inheritance.</p> + + @since OOo 2.0 + */ +interface XInterfaceTypeDescription2: XInterfaceTypeDescription { + /** Returns a sequence of all directly inherited (mandatory) base interface + types. + + @returns + a sequence of all directly inherited (mandatory) base interface types, + in the correct order; each element of the returned sequence will be the + reflection of either an interface type (of + type com::sun::star::reflection::XInterfaceTypeDescription) or + a typedef (of type com::sun::star::reflection::XIndirectTypeDescription) + that—directly or indirectly—denotes an interface type + */ + sequence<XTypeDescription> getBaseTypes(); + + /** Returns a sequence of all directly inherited optional base interface + types. + + @returns + a sequence of all directly inherited optional base interface types, in + the correct order; each element of the returned sequence will be the + reflection of either an interface type (of type + com::sun::star::reflection::XInterfaceTypeDescription) or + a typedef (of type com::sun::star::reflection::XIndirectTypeDescription) + that—directly or indirectly—denotes an interface type + */ + sequence<XTypeDescription> getOptionalBaseTypes(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XMethodParameter.idl b/udkapi/com/sun/star/reflection/XMethodParameter.idl new file mode 100644 index 0000000000..91770cf154 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XMethodParameter.idl @@ -0,0 +1,74 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Reflects a method parameter. + + <p>This type is superseded by XParameter, which supports + parameters of service constructors as well as parameters of interface + methods.</p> + + @see XInterfaceMethodTypeDescription +*/ +published interface XMethodParameter: com::sun::star::uno::XInterface +{ + /** Returns the name of the parameter + + @return + name of parameter + */ + string getName(); + + /** Returns the type of the parameter. + + @return + type of parameter + */ + com::sun::star::reflection::XTypeDescription getType(); + + /** Returns true, if the parameter is declared as [in] or [inout] in IDL. + + @return + true, if declared [in] or [inout] parameter + */ + boolean isIn(); + + /** Returns true, if the parameter is declared as [out] or [inout] in IDL. + + @return + true, if declared [out] or [inout] parameter + */ + boolean isOut(); + + /** Returns the position of the parameter regarding the IDL method declaration. + + @return + position of the parameter + */ + long getPosition(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl b/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl new file mode 100644 index 0000000000..0f3463aac4 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XModuleTypeDescription.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module reflection { + + +/** Reflects a module. + + <p>The type class of this type is + com::sun::star::uno::TypeClass::MODULE. + + @since OOo 1.1.2 + */ +published interface XModuleTypeDescription : com::sun::star::reflection::XTypeDescription +{ + /** Returns the type descriptions for the members of this module. + + @return a sequence containing type descriptions. + */ + sequence< XTypeDescription > getMembers(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XParameter.idl b/udkapi/com/sun/star/reflection/XParameter.idl new file mode 100644 index 0000000000..3e41992c5e --- /dev/null +++ b/udkapi/com/sun/star/reflection/XParameter.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module reflection { + +/** + Reflects a parameter of an interface method or a service constructor. + + <p>This type supersedes XMethodParameter, which only supports + parameters of interface methods (which cannot have rest parameters).</p> + + @since OOo 2.0 + */ +interface XParameter: XMethodParameter { + /** + Returns whether this is a rest parameter. + + <p>A rest parameter must always come last in a parameter list.</p> + + <p>Currently, only service constructors can have rest parameters, and + those rest parameters must be in parameters of type `any`.</p> + + @return `TRUE` if and only if this parameter is a rest parameter + */ + boolean isRestParameter(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl b/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl new file mode 100644 index 0000000000..e7043124e5 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module reflection { + + +/** Reflects a property. + + <p>The type class of this type is + com::sun::star::uno::TypeClass::PROPERTY. + + @since OOo 1.1.2 + */ +published interface XPropertyTypeDescription : com::sun::star::reflection::XTypeDescription +{ + /** @return the flags defined for this property. + + <p>The possible values are defined in + com::sun::star::beans::PropertyAttribute + */ + short getPropertyFlags(); + + /** @return the type description for this property. + */ + XTypeDescription getPropertyTypeDescription(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XProxyFactory.idl b/udkapi/com/sun/star/reflection/XProxyFactory.idl new file mode 100644 index 0000000000..7cb1ed38f6 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XProxyFactory.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module reflection { + + +/** Factory interface to produce proxy objects. + + @deprecated + Aggregation will no longer be supported as a high-level concept of UNO. + You may still have the option to implement a UNO object consisting of + several single objects in your specific programming language, though this + depends on your programming language. + Thus this interface is deprecated, too. +*/ +published interface XProxyFactory: com::sun::star::uno::XInterface +{ + /** This method creates a new proxy object that acts on behalf of the given + target object.<br> + The proxy delegates calls to the given target object. + In addition, it is aggregatable, thus it is possible to + intercept calls on the proxy's interfaces. + + @attention + The proxy object is UNO conform, but does NOT provide original target + interfaces on queryInterface() calls. This may lead to problems + regarding object identity, e.g. when dealing with listener proxies. + + @param xTarget + target object + @return + proxy object + */ + com::sun::star::uno::XAggregation createProxy( + [in] com::sun::star::uno::XInterface xTarget ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XPublished.idl b/udkapi/com/sun/star/reflection/XPublished.idl new file mode 100644 index 0000000000..16964603a2 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XPublished.idl @@ -0,0 +1,96 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module reflection { + +/** + Reflects the “published” status of a UNOIDL entity. + + <p>This interface is intended to be supported by objects that also support + com::sun::star::reflection::XTypeDescription. + (This interface could have been made an optional sub-interface of + com::sun::star::reflection::XTypeDescription, but is + instead kept independent for reasons of backwards compatibility.)</p> + + <p>For the various kinds of UNOIDL entities that are represented by objects + supporting com::sun::star::reflection::XTypeDescription + and its subtypes, this optional interface should be supported as follows:</p> + <ul> + <li>Enum types + (com::sun::star::reflection::XEnumTypeDescription), + plain struct types + (com::sun::star::reflection::XStructTypeDescription), + polymorphic struct type templates + (com::sun::star::reflection::XStructTypeDescription), + exception types (com::sun::star::reflection::XCompoundTypeDescription), + interface types (com::sun::star::reflection::XInterfaceTypeDescription2), + typedefs (com::sun::star::reflection::XIndirectTypeDescription), + individual constants + (com::sun::star::reflection::XConstantTypeDescription), + constant groups (com::sun::star::reflection::XConstantsTypeDescription), + single-interface–based services + (com::sun::star::reflection::XServiceTypeDescription2), + accumulation-based services + (com::sun::star::reflection::XServiceTypeDescription2), + interface-based singletons + (com::sun::star::reflection::XSingletonTypeDescription2), + and service-based singletons + (com::sun::star::reflection::XSingletonTypeDescription2) + support the notion of being published. Therefore, for an object that + represents any such entity, + com::sun::star::reflection::XPublished should be + supported.</li> + + <li>Sequence types + (com::sun::star::reflection::XIndirectTypeDescription), + type parameters of polymorphic struct type templates + (com::sun::star::reflection::XTypeDescription), + instantiated polymorphic struct types + (com::sun::star::reflection::XStructTypeDescription), + attributes of interface types + (com::sun::star::reflection::XInterfaceAttributeTypeDescription2), + methods of interface types + (com::sun::star::reflection::XInterfaceMethodTypeDescription), + properties of accumulation-based services + (com::sun::star::reflection::XPropertyTypeDescription), + deprecated + com::sun::star::reflection::XArrayTypeDescriptions, + and deprecated + com::sun::star::reflection::XUnionTypeDescriptions do + not support the notion of being published. + Therefore, for an object that represents any such entity, + com::sun::star::reflection::XPublished should not be + supported.</li> + </ul> + + @since OOo 2.0 +*/ +interface XPublished { + /** + Returns the “published” status of a UNOIDL entity. + + @return `TRUE` if the UNOIDL entity represented by this object is + published + */ + boolean isPublished(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl b/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl new file mode 100644 index 0000000000..09768620e4 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module reflection { + +interface XCompoundTypeDescription; +interface XParameter; + +/** + Reflects a service constructor. + + @since OOo 2.0 + */ +interface XServiceConstructorDescription { + /** + Returns whether the constructor is a default constructor. + + @return `TRUE` if the constructor is a default constructor + */ + boolean isDefaultConstructor(); + + /** + Returns the constructor's name. + + @return the constructor's name; for a default constructor, an empty + `string` is returned + */ + string getName(); + + /** + Returns the constructor's parameters. + + @return the reflections of all the constructor's parameters, in their + lexical order; for a default constructor, an empty sequence is + returned + */ + sequence<XParameter> getParameters(); + + /** + Returns the exceptions that can be raised by the constructor. + + @return the reflections of all the exceptions that are listed in the + constructor's <code>raises</code> specification, in no particular order; + all elements of the returned sequence will be reflections of exception + types; for a default constructor, an empty sequence is returned (even + though the mapping of a default constructor in a particular language + binding may well raise certain UNO exceptions) + */ + sequence<XCompoundTypeDescription> getExceptions(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl b/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl new file mode 100644 index 0000000000..09e9f231db --- /dev/null +++ b/udkapi/com/sun/star/reflection/XServiceTypeDescription.idl @@ -0,0 +1,85 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module reflection { + + +/** Reflects a service. + + <p>This type is superseded by XServiceTypeDescription2, which + supports single-interface–based services, in addition to the obsolete, + accumulation-based services.</p> + + <p>The type class of this type is + com::sun::star::uno::TypeClass::SERVICE. + + @since OOo 1.1.2 + */ +published interface XServiceTypeDescription : com::sun::star::reflection::XTypeDescription +{ + /** Returns the type descriptions of the mandatory services + defined for this service. + + @return a sequence containing service type descriptions, for an + obsolete, accumulation-based service; for a + single-interface–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. + + <p>This type supersedes XServiceTypeDescription, which only + supports obsolete, accumulation-based services.</p> + + @since OOo 2.0 + */ +interface XServiceTypeDescription2: XServiceTypeDescription { + /** + Returns whether this object reflects a single-interface–based + service. + + @return `TRUE` if this object reflects a single-interface–based + service, and `FALSE` if this object reflects an obsolete, + accumulation-based service + */ + boolean isSingleInterfaceBased(); + + /** + Returns the interface type associated with the service. + + @return the reflection of the interface type associated with the service + (of type com::sun::star::reflection::XInterfaceTypeDescription + or, in case of a typedef, + com::sun::star::reflection::XIndirectTypeDescription), + for a single-interface–based service; for an obsolete, + accumulation-based service, `NULL` is returned + */ + XTypeDescription getInterface(); + + /** + Returns the constructors of the service. + + @return the reflections of all constructors of the service, in no + particular order + */ + sequence<XServiceConstructorDescription> getConstructors(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl b/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl new file mode 100644 index 0000000000..1b184fe519 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module reflection { + + +/** Reflects a singleton. + + <p>This type is superseded by XSingletonTypeDescription2, which + supports interface-based singletons, in addition to the obsolete, + service-based singletons.</p> + + <p>The type class of this type is + com::sun::star::uno::TypeClass::SINGLETON. + + @since OOo 1.1.2 + */ +published interface XSingletonTypeDescription : com::sun::star::reflection::XTypeDescription +{ + /** Returns the service associated with the singleton. + + @return the reflection of the service associated with the singleton, for + an obsolete, service-based singleton; for an interface-based + singleton, `NULL` is returned + */ + XServiceTypeDescription getService(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl b/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl new file mode 100644 index 0000000000..dad10090da --- /dev/null +++ b/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module reflection { + +interface XTypeDescription; + +/** + Reflects a singleton, supporting interface-based singletons. + + <p>This type supersedes XSingletonTypeDescription, which only + supports obsolete, service-based singletons.</p> + + @since OOo 2.0 + */ +interface XSingletonTypeDescription2: XSingletonTypeDescription { + /** + Returns whether this object reflects an interface-based singleton. + + @return `TRUE` if this object reflects an interface-based singleton, and + `FALSE` if this object reflects an obsolete, service-based singleton + */ + boolean isInterfaceBased(); + + /** + Returns the interface type associated with the singleton. + + @return the reflection of the interface type associated with the + singleton (of type + com::sun::star::reflection::XInterfaceTypeDescription + or, in case of a typedef, + com::sun::star::reflection::XIndirectTypeDescription), + for an interface-based singleton; for an obsolete, service-based + singleton, `NULL` is returned + */ + XTypeDescription getInterface(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XStructTypeDescription.idl b/udkapi/com/sun/star/reflection/XStructTypeDescription.idl new file mode 100644 index 0000000000..4470cb79ea --- /dev/null +++ b/udkapi/com/sun/star/reflection/XStructTypeDescription.idl @@ -0,0 +1,77 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module reflection { + +interface XTypeDescription; + +/** + Reflects a struct type, supporting polymorphic struct types. + + <p>This type supersedes XCompoundTypeDescription, which only + supports plain struct types.</p> + + <p>This type is used to reflect all of the following:</p> + <ul> + <li>Polymorphic struct type templates, like + <code>Struct<T, U></code>. For these, + com::sun::star::reflection::XStructTypeDescription::getTypeParameters() + returns a non-empty sequence, while + com::sun::star::reflection::XStructTypeDescription::getTypeArguments() + returns an empty sequence.</li> + + <li>Instantiated polymorphic struct types, like <code>Struct<long, + hyper></code>. For these, + com::sun::star::reflection::XStructTypeDescription::getTypeParameters() + returns an empty sequence, while + com::sun::star::reflection::XStructTypeDescription::getTypeArguments() + returns a non-empty sequence.</li> + + <li>Plain struct types. For these, both + com::sun::star::reflection::XStructTypeDescription::getTypeParameters() + and + com::sun::star::reflection::XStructTypeDescription::getTypeArguments() + return an empty sequence.</li> + </ul> + + @since OOo 2.0 + */ +interface XStructTypeDescription: XCompoundTypeDescription { + /** + Returns the type parameters of a polymorphic struct type template. + + @return a sequence of the names of all type parameters, in the correct + order; for a plain struct type, or an instantiated polymorphic struct + type, an empty sequence is returned + */ + sequence<string> getTypeParameters(); + + /** + Returns the type arguments of an instantiated polymorphic struct type. + + @return a sequence of all type arguments, in the correct order; for a + plain struct type, or a polymorphic struct type template, an empty + sequence is returned + */ + sequence<XTypeDescription> getTypeArguments(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XTypeDescription.idl b/udkapi/com/sun/star/reflection/XTypeDescription.idl new file mode 100644 index 0000000000..bd39aea8d4 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XTypeDescription.idl @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Reflects a UNOIDL entity. + + @see XPublished + @see XIndirectTypeDescription + @see XEnumTypeDescription + @see XStructTypeDescription + @see XCompoundTypeDescription + @see XInterfaceTypeDescription2 + @see XInterfaceAttributeTypeDescription2 + @see XInterfaceMethodTypeDescription + @see XConstantTypeDescription + @see XConstantsTypeDescription + @see XServiceTypeDescription2 + @see XPropertyTypeDescription2 + @see XSingletonTypeDescription2 +*/ +published interface XTypeDescription : com::sun::star::uno::XInterface +{ + /** Returns the type class of the reflected UNOIDL entity. + + @return + type class of the entity + */ + com::sun::star::uno::TypeClass getTypeClass(); + + /** Returns the fully qualified name of the UNOIDL entity. + + @return + fully qualified name of the entity + */ + string getName(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl new file mode 100644 index 0000000000..05961f6348 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module reflection { + + +/** Defines an enumeration for type descriptions. + + @since OOo 1.1.2 + */ +published interface XTypeDescriptionEnumeration : com::sun::star::container::XEnumeration +{ + /** Returns the next element of the enumeration. + + @returns + the next element of this enumeration. + + @throws com::sun::star::container::NoSuchElementException + if no more elements exist. + */ + XTypeDescription nextTypeDescription() + raises( com::sun::star::container::NoSuchElementException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl new file mode 100644 index 0000000000..c17a313291 --- /dev/null +++ b/udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl @@ -0,0 +1,152 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module reflection { + + +/** Defines an interface for creating enumerations for type descriptions. + + @since OOo 1.1.2 + + */ +published interface XTypeDescriptionEnumerationAccess : com::sun::star::uno::XInterface +{ + /** Creates an enumeration for type descriptions. + + <p>An enumeration is always created for a UNOIDL module. The + enumeration contents can be restricted by specifying type classes. + Only types that match one of the supplied type classes will be part of + the collection. Additionally, it is possible to specify the depth + for the search within the underlying type description tree. + + @param moduleName + contains the name of a UNOIDL module. Modules are separated by a + single '.' (i.e., "com.sun.star.reflection"). The root of the module + hierarchy is specified with an empty string. Module names are always + absolute, never relative. + + @param types + restricts the contents of the enumeration. It will only contain + type descriptions that match one of the supplied type classes. An + empty sequence specifies that the enumeration shall contain all + type descriptions. + + <p>Valid types classes are: + <ul> + <li>com::sun::star::uno::TypeClass::MODULE + <li>com::sun::star::uno::TypeClass::INTERFACE + <li>com::sun::star::uno::TypeClass::SERVICE + <li>com::sun::star::uno::TypeClass::STRUCT + <li>com::sun::star::uno::TypeClass::ENUM + <li>com::sun::star::uno::TypeClass::EXCEPTION + <li>com::sun::star::uno::TypeClass::TYPEDEF + <li>com::sun::star::uno::TypeClass::CONSTANT + <li>com::sun::star::uno::TypeClass::CONSTANTS + <li>com::sun::star::uno::TypeClass::SINGLETON + </ul> + + @param depth + specifies the depth of search in the underlying tree of type + descriptions. Clients should be aware of the fact that specifying + TypeDescriptionSearchDepth::INFINITE can lead to + larger delays when constructing or using the + XTypeDescriptionEnumeration instance. + + @returns + an enumeration of type descriptions. + + <p>The enumeration returns implementations of + XTypeDescription. Following concrete UNOIDL parts + represented by specialized interfaces derived from + XTypeDescription can be returned by the enumerator: + + <table border="1"> + <tr><th>IDL</th><th>interface</th></tr> + <tr> + <td>enum</td> + <td>XEnumTypeDescription</td> + </tr> + <tr> + <td>struct</td> + <td>XCompoundTypeDescription (the returned + object should actually implement + XStructTypeDescription)</td> + </tr> + <tr> + <td>exception</td> + <td>XCompoundTypeDescription</td> + </tr> + <tr> + <td>interface</td> + <td>XInterfaceTypeDescription (the returned + object should actually implement + XInterfaceTypeDescription2)</td> + </tr> + <tr> + <td>service</td> + <td>XServiceTypeDescription (the returned + object should actually implement + XServiceTypeDescription2)</td> + </tr> + <tr> + <td>singleton</td> + <td>XSingletonTypeDescription (the returned + object should actually implement + XSingletonTypeDescription2)</td> + </tr> + <tr> + <td>module</td> + <td>XModuleTypeDescription</td> + </tr> + <tr> + <td>typedef</td> + <td>XIndirectTypeDescription</td> + </tr> + <tr> + <td>constant</td> + <td>XConstantTypeDescription</td> + </tr> + <tr> + <td>constants</td> + <td>XConstantsTypeDescription</td> + </tr> + </table> + + @throws NoSuchTypeNameException + in case that the given module name does not exist. This exception + will never be thrown in case moduleName is the empty string. + + @throws InvalidTypeNameException + in case that the given module name does exist, but does not specify + a UNOIDL module. This exception will never be thrown in case + moduleName is the empty string. + */ + XTypeDescriptionEnumeration + createTypeDescriptionEnumeration( + [in] string moduleName, + [in] sequence< com::sun::star::uno::TypeClass > types, + [in] TypeDescriptionSearchDepth depth ) + raises( NoSuchTypeNameException, InvalidTypeNameException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl b/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl new file mode 100644 index 0000000000..fdb7ac0a0c --- /dev/null +++ b/udkapi/com/sun/star/reflection/XUnionTypeDescription.idl @@ -0,0 +1,77 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module reflection { + + +/** Deprecated, UNOIDL does not have a union concept. + + @deprecated +*/ +published interface XUnionTypeDescription: com::sun::star::reflection::XTypeDescription +{ + /** Returns the (ordinal) discriminant type. + + @return + type of the discriminant + */ + com::sun::star::reflection::XTypeDescription getDiscriminantType(); + + /** Returns the default discriminant value. + + @return + default discriminant value + */ + any getDefaultDiscriminant(); + + /** Returns the type of the default value. + + @return + type of the default value + */ + com::sun::star::reflection::XTypeDescription getDefaultMemberType(); + + /** Returns discriminants of all members in order of IDL declaration. + + @return + discriminants of all members + */ + sequence< any > getDiscriminants(); + + /** Returns types of all members in order of IDL declaration. + + @return + types of all members + */ + sequence< com::sun::star::reflection::XTypeDescription > getMemberTypes(); + + /** Returns names of all members in order of IDL declaration. + + @return + names of all members + */ + sequence< string > getMemberNames(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/reflection/theCoreReflection.idl b/udkapi/com/sun/star/reflection/theCoreReflection.idl new file mode 100644 index 0000000000..2bee5e98e8 --- /dev/null +++ b/udkapi/com/sun/star/reflection/theCoreReflection.idl @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module reflection { + +/** + @since LibreOffice 4.0 + */ +singleton theCoreReflection : com::sun::star::reflection::XIdlReflection; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/CannotRegisterImplementationException.idl b/udkapi/com/sun/star/registry/CannotRegisterImplementationException.idl new file mode 100644 index 0000000000..8db91ba8b3 --- /dev/null +++ b/udkapi/com/sun/star/registry/CannotRegisterImplementationException.idl @@ -0,0 +1,42 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module registry { + +/** is thrown when an application tries to register a new component (implementation) using the + XImplementationRegistration::registerImplementation() + method, but the component cannot be registered. The reason for this exception could be:<br> + <br><ul> + <li>the component cannot be found or cannot be loaded (missing path or classpath) + <li>the component doesn't provide the necessary specifications (exported registration functions for a + C++ component (shared library) or a named registration class with the appropriate methods for + a Java component (normally a jar file)). + </ul><br> + + */ +published exception CannotRegisterImplementationException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/DefaultRegistry.idl b/udkapi/com/sun/star/registry/DefaultRegistry.idl new file mode 100644 index 0000000000..e73fc9c777 --- /dev/null +++ b/udkapi/com/sun/star/registry/DefaultRegistry.idl @@ -0,0 +1,131 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module registry { + +/** implicitly supports a local registry and a read-only + system registry for global information. + In the context of this service, + the functions <code>open</code>, <code>close</code>, and <code>destroy</code> + from XSimpleRegistry are not supported and throw an exception + if they are used. + + Functions of XSimpleRegistry: + <dl> + <dt> <b>getURL</b> + </dt> + <dd> returns the name of the local registry. + </dd> + <dt> <b>isValid</b> + </dt> + <dd> checks if the local registry is valid. If the interface is not `NULL` + the local registry should always be valid. + </dd> + <dt> <b>isReadOnly</b> </dt> + <dd> checks if the local registry has write protection. + </dd> + <dt> <b>mergeKey</b> + </dt> + <dd> merges all information from the specified registry in the local registry. + </dd> + <dt> <b>getRootKey</b> + </dt> + <dd> returns a virtual rootkey of both registries. + </dd> + </dl> + + Functions of XRegistryKey: + <dl> + <dt> <b>openKey</b> + </dt> + <dd> returns a virtual key which is specified in the local or the system + registry. + </dd> + <dt> <b>deleteKey</b> + </dt> + <dd> deletes the key only if it is present in the local registry. + </dd> + <dt> <b>setLongValue, setAsciiValue, setStringValue, setBinaryValue</b> + </dt> + <dd> sets the value at the specified key in the local registry. + </dd> + <dt> <b>getLongValue, getAsciiValue, getStringValue, getBinaryValue</b> + </dt> + <dd> returns the value at the specified key in the local registry, or if + the value is not present in the local registry, it will return the value of the + system registry. + </dd> + <dt> <b>openKeys</b> + </dt> + <dd> returns a sequence of all subkeys in both registries. + </dd> + <dt> <b>getKeyNames</b> + </dt> + <dd> returns a sequence with the names of all subkeys in both registries. + </dd> + <dt> + <b>Note: all write functions only work on the local registry.</b> + </dt> + </dl> + + How to find the registries: + <dl> + <dt> search for the system registry: + </dt> + <dd> The system registry will always be searched in the same directory as the + executable. The name of the system registry is "applicat.rdb". If the system + registry was not found, then the environment variable STAR_REGISTRY will be checked. + If this variable was set, it must contain a full path to a valid system registry. + </dd> + <dt> Search for the user registry using the following rules: + </dt> + <dd> + <ol> + <li> 1. (for further use) search in sversion.ini (.sversionrc) for an entry + REGISTRY_VERSION_STRING (example: UserRegistry 5.0/505=test.rdb) in the section + [Registry]. If found, then take this value instead of "user.rdb" as "REGISTRY NAME". + </li> + <li> 2. Search in the config directory of the user for a file "REGISTRY NAME". If + found, return the full path and name of the file. If not found, retry this + step with a dot before "REGISTRY NAME". + </li> + <li> 3. If not found, a new user registry with name user.rdb will be created in the user + config directory. + </li> + </ol> + </dd> + </dl> + <h4>Guarantees:</h4> + + <ul> + <li>-thread safe</li> + </ul> + */ +published service DefaultRegistry +{ + interface com::sun::star::registry::XSimpleRegistry; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/ImplementationRegistration.idl b/udkapi/com/sun/star/registry/ImplementationRegistration.idl new file mode 100644 index 0000000000..9f46d1a481 --- /dev/null +++ b/udkapi/com/sun/star/registry/ImplementationRegistration.idl @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module registry { + +/** is the implementation of the interface XImplementationRegistration. + This service can be used to install or uninstall components (implementations). + Further, it is possible to check if all runtime dependencies (needed services) are + available to use a specified component. + + Guarantees: + <ul> + <li>-thread safe</li> + </ul> + */ +published service ImplementationRegistration + : com::sun::star::registry::XImplementationRegistration; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/InvalidRegistryException.idl b/udkapi/com/sun/star/registry/InvalidRegistryException.idl new file mode 100644 index 0000000000..b9ac4237fc --- /dev/null +++ b/udkapi/com/sun/star/registry/InvalidRegistryException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module registry { + +/** signals that the registry is invalid or an operation on the registry + failed. + */ +published exception InvalidRegistryException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/InvalidValueException.idl b/udkapi/com/sun/star/registry/InvalidValueException.idl new file mode 100644 index 0000000000..b511d11c60 --- /dev/null +++ b/udkapi/com/sun/star/registry/InvalidValueException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module registry { + +/** signals that the value of the key is invalid or does not have the + appropriate key type. + */ +published exception InvalidValueException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/MergeConflictException.idl b/udkapi/com/sun/star/registry/MergeConflictException.idl new file mode 100644 index 0000000000..5ec5af8466 --- /dev/null +++ b/udkapi/com/sun/star/registry/MergeConflictException.idl @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module registry { + +/** is thrown if entries of two registries are contradictory in the context of + XSimpleRegistry::mergeKey()e() method. + + @deprecated as XSimpleRegistry::mergeKey is deprecated as well + */ +published exception MergeConflictException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/NestedRegistry.idl b/udkapi/com/sun/star/registry/NestedRegistry.idl new file mode 100644 index 0000000000..282169a5a5 --- /dev/null +++ b/udkapi/com/sun/star/registry/NestedRegistry.idl @@ -0,0 +1,127 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module registry { + +/** supports a shared view on two different registries. The registry + files will be opened in two different modes, registry1 will be opened with read/write + rights and registry2 will be opened read-only. + In the context of this service, the functions <code>open</code>, <code>close</code>, + and <code>destroy</code> from XSimpleRegistry are not supported and + throw an exception if they are used. + + Functions of XSimpleRegistry: + <dl> + <dt> <b>getURL</b> + </dt> + <dd> returns the name of registry1. + + </dd> + <dt> <b>isValid</b> + </dt> + <dd> checks if registry1 is valid. If the interface is not `NULL` + then registry1 should always be valid. + + </dd> + <dt> <b>isReadOnly</b> + </dt> + <dd> checks if registry1 has write protection. + </dd> + <dt> <b>mergeKey</b> + </dt> + <dd> merges all information from the specified registry in registry1. + + </dd> + <dt> <b>getRootKey</b> + </dt> + <dd> returns a virtual rootkey of both registries. + </dd> + </dl> + + Functions of XRegistryKey: + <dl> + <dt> <b>openKey</b> + </dt> + <dd> returns a virtual key which is specified in registry1 or registry2. + + </dd> + <dt> <b>deleteKey</b> + </dt> + <dd> deletes the key only if it is present in registry1. + + </dd> + <dt> <b>setLongValue, setAsciiValue, setStringValue, setBinaryValue</b> + </dt> + <dd> sets the value at the specified key in registry1. + + </dd> + <dt> <b>getLongValue, getAsciiValue, getStringValue, getBinaryValue</b> + </dt> + <dd> returns the value at the specified key in registry1, or if + the value is not present in registry1, it will return the value of registry2. + + </dd> + <dt> <b>openKeys</b> + </dt> + <dd> returns a sequence of all subkeys in both registries. + + </dd> + <dt> <b>getKeyNames</b> + </dt> + <dd> returns a sequence with the names of all subkeys in both + registries. + + </dd> + <dt> + <b>Note: all write functions only work on registry1.</b> + </dt> + </dl> + + How to initialize the registries:<br> + Use a sequence of XSimpleRegistry with two elements. The first element must be + the registry which is opened with read/write rights and the second element must be + the read-only one.<br> + Two different ways are possible:<br> + <ul> + <li> use com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() to + create an instance of this service where the value of the any parameter must be the sequence with + the two open registries. + <li> use the initialize function of the com::sun::star::lang::XInitialization interface where the value of the + any parameter must be the sequence with the two open registries. + </ul> + <br> + + + Guarantees: + <ul> + <li>-thread safe</li> + </ul> + */ +published service NestedRegistry +{ + interface com::sun::star::registry::XSimpleRegistry; + interface com::sun::star::lang::XInitialization; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/RegistryKeyType.idl b/udkapi/com/sun/star/registry/RegistryKeyType.idl new file mode 100644 index 0000000000..0b2ae505cd --- /dev/null +++ b/udkapi/com/sun/star/registry/RegistryKeyType.idl @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module registry { + +/** represents all possible types of a key. + + <p>A key can be a normal key with a value and subkeys, or it can be a + link which references another key.</p> + */ +published enum RegistryKeyType +{ + KEY, + LINK + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/RegistryValueType.idl b/udkapi/com/sun/star/registry/RegistryValueType.idl new file mode 100644 index 0000000000..6c24048409 --- /dev/null +++ b/udkapi/com/sun/star/registry/RegistryValueType.idl @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module registry { + +/** represents all possible types of a key value. + + <p>An ASCII value and a string value will both be handled with type + string. But interns will be handled differently. Normally the idl + string represents a unicode string. </p> + */ +published enum RegistryValueType +{ + /** the type of the key is not defined. + */ + NOT_DEFINED, + /** the type of the key is long. + */ + LONG, + /** the type of the key is ASCII. + */ + ASCII, + /** the type of the key is a string. + */ + STRING, + /** the type of the key is binary. + */ + BINARY, + /** the type of the key is LONGLIST. + */ + LONGLIST, + /** the type of the key is an ASCIILIST. + */ + ASCIILIST, + /** the type of the key is a STRINGLIST. + */ + STRINGLIST + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/SimpleRegistry.idl b/udkapi/com/sun/star/registry/SimpleRegistry.idl new file mode 100644 index 0000000000..ccd605f45b --- /dev/null +++ b/udkapi/com/sun/star/registry/SimpleRegistry.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module registry { + +/** makes it possible to create, open, or close a registry. Further, it is + possible to merge a registry under a specified key in the open registry. + + Guarantees: + <ul> + <li>-thread safe</li> + </ul> + */ +published service SimpleRegistry : com::sun::star::registry::XSimpleRegistry; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/XImplementationRegistration.idl b/udkapi/com/sun/star/registry/XImplementationRegistration.idl new file mode 100644 index 0000000000..b4117ee9a4 --- /dev/null +++ b/udkapi/com/sun/star/registry/XImplementationRegistration.idl @@ -0,0 +1,89 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module registry { + +/** offers a registry for implementation objects and provides information + about the registered implementations. + */ +published interface XImplementationRegistration: com::sun::star::uno::XInterface +{ + /** registers a component which provides one or more implementations. + + @param aImplementationLoader + the URL of the implementation loader. + + @param aLocation + specifies the location of the component with the URL. + + @param xReg + specifies the registry where the component should be installed. + If it is a NULL interface, then the component will be installed + in the system registry (if this feature is supported). + */ + void registerImplementation( [in] string aImplementationLoader, + [in] string aLocation, + [in] com::sun::star::registry::XSimpleRegistry xReg ) + raises( com::sun::star::registry::CannotRegisterImplementationException ); + + /** revokes a component and all their provided implementations from the registry. + + @param aLocation + specifies the location of the component with the URL. + + @param xReg + specifies the registry where the component should be installed. + If it is a NULL interface, then the component will be revoked + from the system registry (if this feature is supported). + */ + boolean revokeImplementation( [in] string aLocation, + [in] com::sun::star::registry::XSimpleRegistry xReg ); + + // DOCUMENTATION CHANGED FOR XImplementationRegistration::getImplementations + /** @returns + the names of the implementations registered by the url location. + + @param aImplementationLoader + specifies the name of the needed loader for this type of implementation. For + example, the loader "com.sun.star.loader.SharedLibrary" for implementations + that are realized as an SharedLibrary. + + @param aLocation + specifies the location of the component with the URL. + */ + sequence<string> getImplementations( [in] string aImplementationLoader, + [in] string aLocation ); + + // DOCUMENTATION CHANGED FOR XImplementationRegistration::checkInstantiation + /** @returns + a sequence with names of the missing services to create an instance of this implementation. + + @param implementationName + specifies the name of the checked implementation. + */ + sequence<string> checkInstantiation( [in] string implementationName ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/XImplementationRegistration2.idl b/udkapi/com/sun/star/registry/XImplementationRegistration2.idl new file mode 100644 index 0000000000..58dbabcbcf --- /dev/null +++ b/udkapi/com/sun/star/registry/XImplementationRegistration2.idl @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + module com { module sun { module star { module registry { + + +/** extends the functionality of com::sun::star::registry::XImplementationRegistration. It can be useful to specify a complete Url to a component but register the components name only (library or jar name). + + @since OOo 2.4 + */ +interface XImplementationRegistration2: com::sun::star::registry::XImplementationRegistration +{ + + /** registers a component which provides one or more implementations. + + @param aImplementationLoader + the URL of the implementation loader. + + @param aLocation + specifies the location of the component with the URL. + + @param aRegisteredLocation + the URL with which the component is actually registered. + + @param xReg + specifies the registry where the component should be installed. + If it is a NULL interface, then the component will be installed + in the system registry (if this feature is supported). + */ + void registerImplementationWithLocation( [in] string aImplementationLoader, + [in] string aLocation, [in] string aRegisteredLocation, + [in] com::sun::star::registry::XSimpleRegistry xReg ) + raises( com::sun::star::registry::CannotRegisterImplementationException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/XRegistryKey.idl b/udkapi/com/sun/star/registry/XRegistryKey.idl new file mode 100644 index 0000000000..e426e812b6 --- /dev/null +++ b/udkapi/com/sun/star/registry/XRegistryKey.idl @@ -0,0 +1,404 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module registry { + +/** makes structural information (except regarding tree structures) + of a single registry key accessible. + + <p>This is the main interface for registry keys.<p> + + @see XSimpleRegistry +*/ +published interface XRegistryKey: com::sun::star::uno::XInterface +{ + /** This is the key of the entry relative to its parent.<p> + + <p>The access path starts with the root "/" and all parent + entry names are delimited with slashes "/" too, like in a + UNIX (R) file system. Slashes which are part of single names + are represented as hexadecimals preceded with a "%" like in + URL syntax. + */ + [readonly, attribute] string KeyName; + + /** checks if the key can be overwritten. + + @throws InvalidRegistryException + if the registry is not open. + */ + boolean isReadOnly() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** checks if the key points to an open valid key in the data-source. + */ + boolean isValid(); + + /** @returns + the type of the specified key. + + @param rKeyName + specifies the relative path from the current key to + the key of the type which will be returned. + + @throws InvalidRegistryException + if the registry is not open. + */ + com::sun::star::registry::RegistryKeyType getKeyType( [in] string rKeyName ) + raises( com::sun::star::registry::InvalidRegistryException ); + + /** @returns + the type of the key value or NOT_DEFINED if the key has no value. + + @throws InvalidRegistryException + if the registry is not open. + */ + com::sun::star::registry::RegistryValueType getValueType() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** @returns + a long value if the key contains one. + + @throws InvalidRegistryException + if the registry is not open. + + @throws InvalidValueException + if the value is not of type long. + */ + long getLongValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets a long value to the key. + + <p>If the key already has a value, the value will be + overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setLongValue( [in] long value ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getLongListValue + /** @returns + a sequence of longs if the key contains a long list value. + + @throws InvalidRegistryException + if the registry is not open. + + @throws InvalidValueException + if the actual value is not of type long list. + */ + sequence<long> getLongListValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets a long list value to the key. + + <p>If the key already has a value, the value will be + overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setLongListValue( [in] sequence<long> seqValue ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getAsciiValue + /** @returns + an ascii string value if the key contains one. + + @throws InvalidRegistryException + if the registry is not open. + + @throws InvalidValueException + if the actual value is not of type ascii. + */ + string getAsciiValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets an ASCII string value to the key. + + <p>The high byte of the string should be NULL. If not, there + is no guarantee that the string will be correctly transported. + If the key already has a value, the value will be overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setAsciiValue( [in] string value ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getAsciiListValue + /** @returns + a sequence of ascii strings if the key contains an ascii list value. + + @throws InvalidRegistryException + if the registry is not open. + + @throws InvalidValueException + if the actual value is not of type ascii list. + */ + sequence<string> getAsciiListValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets an ASCII string list value to the key. + + <p>The high byte of the string should be NULL. If not, there + is no guarantee that the string will be correctly transported. + If the key already has a value, the value will be overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setAsciiListValue( [in] sequence<string> seqValue ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getStringValue + /** @returns + a unicode string value if the key contains one. + + @throws InvalidRegistryException + if the registry is not open. + + @throws InvalidValueException + if the actual value is not of type string. + */ + string getStringValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets a unicode string value to the key. + + <p> If the key already has a value, the value will be + overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setStringValue( [in] string value ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getStringListValue + /** @returns + a sequence of unicode strings if the key contains a unicode string list value. + + @throws InvalidRegistryException + if the registry is not open. + + @throws InvalidValueException + if the actual value is not of type string list. + */ + sequence<string> getStringListValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets a unicode string value to the key. + + <p>If the key already has a value, the value will be overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setStringListValue( [in] sequence<string> seqValue ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getBinaryValue + /** @returns + a binary value if the key contains one. + + @throws InvalidRegistryException + if the registry is not open. + + @throws InvalidValueException + if the actual value is not of type binary. + */ + sequence<byte> getBinaryValue() + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::InvalidValueException ); + + /** sets a binary value to the key. + + <p>If the key already has a value, the value will be + overridden. + + @throws InvalidRegistryException + if the registry is not open. + */ + void setBinaryValue( [in] sequence<byte> value ) + raises( com::sun::star::registry::InvalidRegistryException ); + + /** opens a sub key of the key. + + <p>If the sub key does not exist, the function returns a + NULL-interface. + + @param aKeyName + the relative path from the current key to the key + which will be created. + + @returns + a NULL interface if the key does not exist. + + @throws InvalidRegistryException + if the registry is not open. + */ + com::sun::star::registry::XRegistryKey openKey( [in] string aKeyName ) + raises( com::sun::star::registry::InvalidRegistryException ); + + /** creates a new key in the registry.<p> + + <p>If the key already exists, the function will open the key. + + @param aKeyName + specifies the relative path from the current key to + the key which will be created. + + @returns + a NULL interface if the key could not be created. + + @throws InvalidRegistryException + if the registry is not open, the registry is readonly + or if the key exists and is of type LINK. + */ + com::sun::star::registry::XRegistryKey createKey( [in] string aKeyName ) + raises( com::sun::star::registry::InvalidRegistryException ); + + /** closes a key in the registry. + + @throws InvalidRegistryException + if the registry is not open. + */ + void closeKey() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** deletes a key from the registry. + + @param rKeyName + specifies the relative path from the current key to + the key which will be deleted. + + @throws InvalidRegistryException + if the registry is not open, the registry is readonly, + the key does not exists or if the key is of type LINK. + */ + void deleteKey( [in] string rKeyName ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::openKeys + /** opens all subkeys of the key. If a subkey is a link, the link will be + resolved and the appropriate key will be opened. + + @returns + an empty sequence if the key has no subkeys. + + @throws InvalidRegistryException + if the registry is not open. + */ + sequence<com::sun::star::registry::XRegistryKey> openKeys() + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getKeyNames + /** @returns a sequence with the names of all subkeys of the key. + If the key has no subkeys, the function returns an empty sequence. If a subkey is + a link, the name of the link will be returned. + + @throws InvalidRegistryException + if the registry is not open. + */ + sequence<string> getKeyNames() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** creates a new link in the registry. + + @returns + `TRUE` if the link was created. If the link already + exists or the link target does not exist, the + function returns `FALSE`. + + @param aLinkName + specifies the relative path from the current key to + the link which will be created. + + @param aLinkTarget + specifies the full path of the key which will be + referenced by the link. + + @throws InvalidRegistryException + if the registry is not open or the registry is + readonly. + + */ + boolean createLink( [in] string aLinkName, + [in] string aLinkTarget ) + raises( com::sun::star::registry::InvalidRegistryException ); + + /** deletes a link from the registry. + + @param rLinkName + specifies the relative path from the current key to + the link which will be deleted. + + @throws InvalidRegistryException + if the registry is not open, the registry is readonly, + or if the link does not exist. + */ + void deleteLink( [in] string rLinkName ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getLinkTarget + /** @returns + the target (complete path of a key) of the link specified by rLinkName. + + @param rLinkName + specifies the relative path from the current key to + the link which target will be returned. + + @throws InvalidRegistryException + if the registry is not open or the link does not exists. + */ + string getLinkTarget( [in] string rLinkName ) + raises( com::sun::star::registry::InvalidRegistryException ); + + // DOCUMENTATION CHANGED FOR XRegistryKey::getResolvedName + /** @returns + the resolved name of a key. The function resolve the complete name of the key. + If a link could not be resolved, the linktarget concatenated with the unresolved rest + of the name, will be returned. + + @param aKeyName + specifies a relative path from the current key which will be resolved from all links. + + @throws InvalidRegistryException + if the registry is not open or a recursion was detected. + */ + string getResolvedName( [in] string aKeyName ) + raises( com::sun::star::registry::InvalidRegistryException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/registry/XSimpleRegistry.idl b/udkapi/com/sun/star/registry/XSimpleRegistry.idl new file mode 100644 index 0000000000..a79c7a8ec4 --- /dev/null +++ b/udkapi/com/sun/star/registry/XSimpleRegistry.idl @@ -0,0 +1,113 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module registry { + +/** allows access to a registry (a persistent data source). + The data is stored in a hierarchical key structure beginning with a root key. + Each key can store a value and can have multiple subkeys. + + @see XRegistryKey +*/ +published interface XSimpleRegistry: com::sun::star::uno::XInterface +{ + /** returns the URL of the current data source of the registry. + */ + string getURL(); + + /** connects the registry to a persistent data source represented by + a URL. + + <p>If a local registry is already open, this function + will close the currently open registry. + + @param rURL + specifies the complete URL to access the data source. + + @param bReadOnly + specifies if the data source should be opened for + read only. + + @param bCreate + specifies if the data source should be created if it + does not already exist. + + @throws InvalidRegistryException + if the registry does not exist. + */ + void open( [in] string rURL, + [in] boolean bReadOnly, + [in] boolean bCreate ) + raises( com::sun::star::registry::InvalidRegistryException ); + + /** checks if the registry points to a valid data-source. + */ + boolean isValid(); + + /** disconnects the registry from the data-source. + + @throws InvalidRegistryException + if the registry is not open. + */ + void close() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** destroys the registry and the data source. + + @throws InvalidRegistryException + if the registry is not open. + */ + void destroy() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** @returns + the root key of the registry. + + @throws InvalidRegistryException + if no registry is open + */ + com::sun::star::registry::XRegistryKey getRootKey() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** checks if the registry is readonly. + + @throws InvalidRegistryException + if the registry is not open. + */ + boolean isReadOnly() + raises( com::sun::star::registry::InvalidRegistryException ); + + /** merges a registry under the specified key. + + @deprecated The merge functionality is deprecated and not implemented. Implementations will + throw a com::sun::star::RuntimeException. + */ + void mergeKey( [in] string aKeyName, + [in] string aUrl ) + raises( com::sun::star::registry::InvalidRegistryException, + com::sun::star::registry::MergeConflictException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/AllEventObject.idl b/udkapi/com/sun/star/script/AllEventObject.idl new file mode 100644 index 0000000000..2d4887744f --- /dev/null +++ b/udkapi/com/sun/star/script/AllEventObject.idl @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** This event is a wrapper for an original event in a forwarding event. + + <p> Usually the original event is the first argument in the + array of arguments. </p> + */ +published struct AllEventObject: com::sun::star::lang::EventObject +{ + /** A helper value for the implementation that can be used arbitrarily. + + <p>This field reflects the third parameter of the method + XAllListenerAdapterService::createAllListerAdapter(). + </p> + */ + any Helper; + + /** contains the type of the original listener. + */ + type ListenerType; + + /** The original method name on which the event was fired. + */ + string MethodName; + + /** The arguments of the original method. + */ + sequence<any> Arguments; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/AllListenerAdapter.idl b/udkapi/com/sun/star/script/AllListenerAdapter.idl new file mode 100644 index 0000000000..48ad6af9ed --- /dev/null +++ b/udkapi/com/sun/star/script/AllListenerAdapter.idl @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** makes it possible to generate the adapters from specific + interfaces to the interface XAllListener. + */ +published service AllListenerAdapter + : com::sun::star::script::XAllListenerAdapterService; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/ArrayWrapper.idl b/udkapi/com/sun/star/script/ArrayWrapper.idl new file mode 100644 index 0000000000..94aa60e317 --- /dev/null +++ b/udkapi/com/sun/star/script/ArrayWrapper.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module script { + +/** Allows a UNO sequence that is passed between different language + boundaries to indicate it prefers to be represented as a multidimensional + array with 0 or 1 based indices. UNO does not natively represent + Multi-Dimensional arrays, instead a sequence can have elements that are + themselves sequences (an array of arrays ). <p>Some languages ( example + BASIC ) can natively represent both Multi-Dimensional arrays and array of + arrays. + Those languages could represent a sequence of sequences as either a + Multi-Dimensional array or array of arrays. This structure allows a + preference for a Multi-Dimensional array representation to be specified.</p> +*/ + +struct ArrayWrapper +{ + /** Indicates whether the Array should be have 1 or 0 based indexing. + */ + boolean IsZeroIndex; + /** Contains the Array to be passed. + <p> Multi-dimensional arrays can only be represented as a sequence where the elements of the sequence are themselves sequences. N-Levels of indirection are possible, where N is the number of dimensions. Note: its perfectly legal to use this structure with a single dimensioned array just to indicate the array indexing.</p> + */ + any Array; +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/BasicErrorException.idl b/udkapi/com/sun/star/script/BasicErrorException.idl new file mode 100644 index 0000000000..4a00e34526 --- /dev/null +++ b/udkapi/com/sun/star/script/BasicErrorException.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module script { + + +/** is thrown in order to transport an error to Basic. + + @since OOo 2.0 + */ +published exception BasicErrorException: com::sun::star::uno::Exception +{ + + /** The error code. + */ + long ErrorCode; + + + /** Specifies the argument which is used in the localized error message for + the placeholder. + */ + string ErrorMessageArgument; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/CannotConvertException.idl b/udkapi/com/sun/star/script/CannotConvertException.idl new file mode 100644 index 0000000000..3d0ec19558 --- /dev/null +++ b/udkapi/com/sun/star/script/CannotConvertException.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + + +/** This exception is thrown to indicate that a type conversion can not be performed. +*/ +published exception CannotConvertException: com::sun::star::uno::Exception +{ + /** This member contains the class of the type to which the value should be + converted. + */ + com::sun::star::uno::TypeClass DestinationTypeClass; + + /** This member contains the reason that the conversion failed. + Have a look at FailReason. + */ + long Reason; + + /** If the conversion of a method argument fails, this is the index + of the value in the "IN" argument list. [optional] + */ + long ArgumentIndex; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/CannotCreateAdapterException.idl b/udkapi/com/sun/star/script/CannotCreateAdapterException.idl new file mode 100644 index 0000000000..88065928a9 --- /dev/null +++ b/udkapi/com/sun/star/script/CannotCreateAdapterException.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** is thrown by an attacher if an adapter service cannot create the + appropriate adapter. + + @see com::sun::star::script::XAllListenerAdapterService + @see com::sun::star::script::XEventAttacher + @see com::sun::star::script::XEventAttacherManager + */ +published exception CannotCreateAdapterException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/ContextInformation.idl b/udkapi/com/sun/star/script/ContextInformation.idl new file mode 100644 index 0000000000..48d2fac2e6 --- /dev/null +++ b/udkapi/com/sun/star/script/ContextInformation.idl @@ -0,0 +1,80 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** provides information about a certain stack frame. + + @deprecated + */ +published struct ContextInformation +{ + /** Full qualified name to address the module or function associated with the context. + If the module or function can't be addressed by name, e.g., in case that a runtime + generated eval-module is executed, this string is empty + */ + string Name; + + /** Source code of the Module, that is associated with the context. If the source can + be accessed using the ModuleName or if the source is unknown (executing compiled + code) this string can be empty. + */ + string SourceCode; + + /** contains the first line in the module's source code associated with + the context. + + <p>If "name" addresses a function, all line and column values + are nevertheless given relative to the module's source. If + source code is not available, this value addresses a binary + position in the compiled code. </p> + + @see XLibraryAccess::getModuleCode + @see XLibraryAccess::getFunctionCode + */ + long StartLine; + + /** contains the first column in the <var>StartLine</var> associated with + the context. + */ + long StartColumn; + + + /** contains the last line in the module's source code associated with + the context. + */ + long EndLine; + + /** contains the first column in the <var>EndLine</var> that is NOT + associated with the context. + */ + long EndColumn; + + /** Get all names of the local variable in this context. + */ + sequence<string> LocalVariableNames; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/Converter.idl b/udkapi/com/sun/star/script/Converter.idl new file mode 100644 index 0000000000..3839204d4f --- /dev/null +++ b/udkapi/com/sun/star/script/Converter.idl @@ -0,0 +1,78 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + + +/** This service provides a widening converter converting from one type to another, + if possible. + + <p>What is possible? + <ul> + <li>byte: byte, (short *1), (long *1), (hyper *1), (float *1), (double *1), (enum *2), (any *3), boolean, (char *4), (string *5)</li> + <li>short: byte, short, (long *1), (hyper *1), (float *7), (double *7), (enum *2), (any *3), boolean, char, (string *5)</li> + <li>long: byte, short, long, (hyper *1), (float *7), (double *7), enum, (any *3), boolean, char, (string *5)</li> + <li>hyper: byte, short, long, hyper, (float *7), (double *7), enum, (any *3), boolean, char, (string *5)</li> + <li>float: byte, short, long, hyper, float, (double *7), (enum *8), (any *3), boolean, char, (string *5)</li> + <li>double: byte, short, long, hyper, float, double, enum, (any *3), boolean, char, (string *5)</li> + <li>enum: (byte *9), (short *9), (long *9), (hyper *9), (float *9), (double *9), (enum *10), (any *3), (string *11)</li> + <li>void: ok for all types</li> + <li>any: ok for all types</li> + <li>boolean: byte, short, long, hyper, float, double, (any *3), boolean, char, (string *12). 0 => false, != 0 => true</li> + <li>char: byte, short, (long *1), (hyper *1), (float *7), (double *7), enum, (any *3), boolean, char, (string *13)</li> + <li>string: byte, short, long, hyper, float, double, enum, (any *3), boolean, char, string</li> + <li>struct: (any *3), (struct *14)</li> + <li>interface: (any *3), (struct *14)</li> + <li>exception: (any *3), (exception *14)</li> + <li>union: (any *3), (union *14)</li> + <li>sequence: (any *3), (sequence *15)</li> + </ul> + rules: + <ul> + <li>1: only converts if the value is in the range of the target type.</li> + <li>2: only converts if the value, not the position, of the enum is in the range of the target type.</li> + <li>3: get value until it is not an any. Then convert it with the other rules.</li> + <li>4: only converts if the value of the character is between 0 - 255.</li> + <li>5: only converts if the value represents a decimal, hexadecimal (0x...) or a floating point number. + Examples: 10, 0x10, 10.045, 10,555, +10, +10.6e10, -10.6e-10, .16.</li> + <li>7: only converts if the value is in the range of the target type. + The value is rounded to an integer.</li> + <li>8: only converts if the float can be converted back to the same enum value.</li> + <li>9: only converts if the number is one of the enumeration type values. Normally you need + reflection information of the enum type.</li> + <li>10: only converts if it is the same enumeration type.</li> + <li>11: only converts if the string contains the name of an enumeration type value. Normally you need + core reflection information of the enum type.</li> + <li>12: only converts if the value of the string is "1", "true" or "0", "false". The comparison + is case insensitive.</li> + <li>13: only converts if the length of the string is 1 or 0.</li> + <li>14: only converts if the types are equal or the source type is derived from the destination + type.</li> + <li>15: only converts if each element of the source sequence can be converted to an element + of the destination sequence.</li> + </ul> +*/ +published service Converter: XTypeConverter; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/Engine.idl b/udkapi/com/sun/star/script/Engine.idl new file mode 100644 index 0000000000..38059a3871 --- /dev/null +++ b/udkapi/com/sun/star/script/Engine.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** service that any scripting engine must implement. + + <p>The implementation of this + interface should supply the interfaces com.sun.star.script.XDebugging2 and + interface com.sun.star.script.XInvocation.</p> + @deprecated + */ +published service Engine +{ + /// The only interface of this service + interface com::sun::star::script::XEngine; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/EventListener.idl b/udkapi/com/sun/star/script/EventListener.idl new file mode 100644 index 0000000000..c2f0e7c096 --- /dev/null +++ b/udkapi/com/sun/star/script/EventListener.idl @@ -0,0 +1,23 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +module com { module sun { module star { module script { + +struct EventListener +{ + com::sun::star::script::XAllListener AllListener; + any Helper; + string ListenerType; + string AddListenerParam; + string EventMethod; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/FailReason.idl b/udkapi/com/sun/star/script/FailReason.idl new file mode 100644 index 0000000000..27d96fa18a --- /dev/null +++ b/udkapi/com/sun/star/script/FailReason.idl @@ -0,0 +1,75 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + + +/** These values specify the reason why a type conversion failed. +*/ +published constants FailReason +{ + /** The given value does not fit in the range of the destination type. + */ + const long OUT_OF_RANGE = 1; + + /** The given value cannot be converted to a number. + */ + const long IS_NOT_NUMBER = 2; + + /** The given value cannot be converted to an enumeration. + */ + const long IS_NOT_ENUM = 3; + + /** The given value cannot be converted to a boolean. + */ + const long IS_NOT_BOOL = 4; + + /** The given value is not an interface or cannot queried to the right interface. + */ + const long NO_SUCH_INTERFACE = 5; + + /** The given value cannot be converted to right structure or exception type. + */ + const long SOURCE_IS_NO_DERIVED_TYPE = 6; + + /** The type class of the given value is not supported. + */ + const long TYPE_NOT_SUPPORTED = 7; + + /** The given value cannot be converted and none of the other reasons match. + */ + const long INVALID = 8; + + /** This value is deprecated. Do not use. + @deprecated + */ + const long NO_DEFAULT_AVAILABLE = 9; + + /** This value is deprecated. Do not use. + @deprecated + */ + const long UNKNOWN = 10; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/FinishEngineEvent.idl b/udkapi/com/sun/star/script/FinishEngineEvent.idl new file mode 100644 index 0000000000..f5fc710429 --- /dev/null +++ b/udkapi/com/sun/star/script/FinishEngineEvent.idl @@ -0,0 +1,52 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** event contains the reasons and the data for the + XEngineListener::finished() method. + @deprecated + */ +published struct FinishEngineEvent: com::sun::star::lang::EventObject +{ + /** specifies why the script terminates. + */ + com::sun::star::script::FinishReason Finish; + + /** error message. + + <p>Only valid if Reason is RuntimeError or CompileError.</p> + */ + string ErrorMessage; + + /** contains the return value. + + <p>This field is only valid if FinishEngineEvent::Finish is + FinishReason::OK.</p> + */ + any Return; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/FinishReason.idl b/udkapi/com/sun/star/script/FinishReason.idl new file mode 100644 index 0000000000..27241f1a02 --- /dev/null +++ b/udkapi/com/sun/star/script/FinishReason.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** contains the response for a scripting engine termination. + @deprecated + */ +published enum FinishReason +{ + /** script in the engine terminated normally. + */ + OK, + + /** script in the engine was cancelled. + */ + Cancel, + + /** error occurred during script execution or compiling. + */ + Error + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/InterruptEngineEvent.idl b/udkapi/com/sun/star/script/InterruptEngineEvent.idl new file mode 100644 index 0000000000..1f583ebea1 --- /dev/null +++ b/udkapi/com/sun/star/script/InterruptEngineEvent.idl @@ -0,0 +1,89 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** describes an interrupt which occurs in the scripting engine. + @deprecated + */ +published struct InterruptEngineEvent: com::sun::star::lang::EventObject +{ + /** fully qualified name to address the module or function affected by the event that + took place. + + <p>If the module or function can't be addressed by name (for example, in case + that a runtime-generated eval-module is executed), this string is empty.</p> + */ + string Name; + + /** source code of the Module affected by the event that took place. + + <p>If the source can + be accessed using the ModuleName, or if the source is unknown (executing compiled + code), this string can be empty.</p> + */ + string SourceCode; + + /** contains the first line in the module's source code that is affected + by the event that took place. + + + + <p>If "name" addresses a function, all line and column values + are nevertheless given relative to the module's source. If + source code is not available, this value addresses a binary + position in the compiled code. </p> + + @see XLibraryAccess::getModuleCode + @see XLibraryAccess::getFunctionCode + */ + long StartLine; + + /** contains the first column in the "StartLine" that is affected by the + event that took place. + */ + long StartColumn; + + /** contains the last line in the module's source code that is affected + by the event that took place. + */ + long EndLine; + + /** contains the first column in the "EndLine" which is NOT affected by + the event that took place. + */ + long EndColumn; + + /** error message. + <p>Only valid if Reason is RuntimeError or CompileError.</p> + */ + string ErrorMessage; + + /** contains the interrupt reason. + */ + com::sun::star::script::InterruptReason Reason; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/InterruptReason.idl b/udkapi/com/sun/star/script/InterruptReason.idl new file mode 100644 index 0000000000..41b3f1b650 --- /dev/null +++ b/udkapi/com/sun/star/script/InterruptReason.idl @@ -0,0 +1,67 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** values used to specify the response for a scripting engine + interrupt. + @deprecated + */ +published enum InterruptReason +{ + /** script execution was cancelled. + */ + Cancel, + + /** runtime error occurred during script execution. + */ + RuntimeError, + + /** script has invalid syntax. + */ + CompileError, + + /** script stopped at a breakpoint. + */ + BreakPoint, + + /** script stops because only one scripting engine command was executed. + */ + Step, + + /** script stops because one step was executed. + */ + StepOver, + + /** script stops because it leaves a function. + */ + StepOut, + + /** script stop because one step was executed. + */ + StepStatement + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/Invocation.idl b/udkapi/com/sun/star/script/Invocation.idl new file mode 100644 index 0000000000..7262ce192f --- /dev/null +++ b/udkapi/com/sun/star/script/Invocation.idl @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** factory service that allows construction of Invocation objects. + + <p>Invoke createInstanceWithArguments() of XSingleServiceFactory + to create an Invocation adapter for the passed object (Invoking + createInstance() will fail).</p> + <p> + The adapter has to support com::sun::star::script::XInvocation. + The adapter may also support com::sun::star::script::XInvocation2. + </p> + */ +published service Invocation : com::sun::star::lang::XSingleServiceFactory; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/InvocationAdapterFactory.idl b/udkapi/com/sun/star/script/InvocationAdapterFactory.idl new file mode 100644 index 0000000000..ffdcd857bc --- /dev/null +++ b/udkapi/com/sun/star/script/InvocationAdapterFactory.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module script { + +/** Provides functionality to create an adapter that supports (a) + special interface type(s) and maps calls to the interface's + methods to an invocation interface. + + <p> + An adapter like this allows generic dispatch interfaces to + meet interface requirements, e.g. if a specific listener + interface has to be passed to an add...Listener method. + </p> + + <p> + The adapter has to support + com::sun::star::script::XInvocationAdapterFactory. + The adapter may also support + com::sun::star::script::XInvocationAdapterFactory2. + </p> + */ +published service InvocationAdapterFactory : XInvocationAdapterFactory2; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/InvocationInfo.idl b/udkapi/com/sun/star/script/InvocationInfo.idl new file mode 100644 index 0000000000..ca7c5a4392 --- /dev/null +++ b/udkapi/com/sun/star/script/InvocationInfo.idl @@ -0,0 +1,72 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module script { + + +/** + This struct is used to specify information about object members + (methods or properties) accessed via XInvocation, such as names, + types, or parameters. + </p> + */ +published struct InvocationInfo +{ + + /** Name of the method or property. + */ + string aName; + + /** Kind of the member (method or property). + */ + MemberType eMemberType; + + /** Only for property members: + This field may contain zero or more constants of the + com::sun::star::beans::PropertyAttribute + constants group. It is not guaranteed that all necessary + constants are set to describe the property completely, + but a flag will only be set, if the corresponding charac- + teristic really exists. Example: If the READONLY flag + is set, the property is readonly. If it isn't set, the + property nevertheless can be readonly. + + For methods this field is irrelevant and is set to 0. + */ + short PropertyAttribute; + + /** Type of the member, for methods the return type + */ + type aType; + + /** Types method parameters, for properties this sequence is empty + */ + sequence< type > aParamTypes; + + /** Mode of method parameters (IN, OUT, INOUT), + for properties this sequence is empty. + */ + sequence< com::sun::star::reflection::ParamMode > aParamModes; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/JavaScript.idl b/udkapi/com/sun/star/script/JavaScript.idl new file mode 100644 index 0000000000..f9ab25b95f --- /dev/null +++ b/udkapi/com/sun/star/script/JavaScript.idl @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** service is implementation of a JavaScript interpreter. + + <p>The interpreter should be similar to JavaScript 1.1. The exact + behavior will be specified in future.</p> + @deprecated + */ +published service JavaScript +{ + /// Parent service + service com::sun::star::script::Engine; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/MemberType.idl b/udkapi/com/sun/star/script/MemberType.idl new file mode 100644 index 0000000000..45bb597178 --- /dev/null +++ b/udkapi/com/sun/star/script/MemberType.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module script { + +/** These values are used to specify a member accessible by + XInvocation. +*/ +published enum MemberType +{ + METHOD, + PROPERTY, + UNKNOWN +}; + + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/ScriptEvent.idl b/udkapi/com/sun/star/script/ScriptEvent.idl new file mode 100644 index 0000000000..e987b76989 --- /dev/null +++ b/udkapi/com/sun/star/script/ScriptEvent.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** script event that gets delivered whenever a script event takes place. + <p>For that to happen, a "ScriptEventDescriptor" must be registered at + and attached to an object by an XEventAttacherManager.</p> + */ +published struct ScriptEvent: com::sun::star::script::AllEventObject +{ + /** type of the script language as string; for example, "Basic" or "StarScript". + */ + string ScriptType; + + /** script code as string. + + <p>The code has to correspond with the language + defined by ScriptType.</p> + */ + string ScriptCode; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/ScriptEventDescriptor.idl b/udkapi/com/sun/star/script/ScriptEventDescriptor.idl new file mode 100644 index 0000000000..2315d9b99e --- /dev/null +++ b/udkapi/com/sun/star/script/ScriptEventDescriptor.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** describes an effect, especially a script to be executed, + for a certain event given by the listener type and the name of the + event method. + */ +published struct ScriptEventDescriptor +{ + /** listener type as string, same as listener-XIdlClass.getName(). + */ + string ListenerType; + + /** event method as string. + */ + string EventMethod; + + /** data to be used if the addListener method needs an additional + parameter. + <p>If the type of this parameter is different from string, + it will be converted, when added.</p> + */ + string AddListenerParam; + + /** type of the script language as string; for example, "Basic" or "StarScript". + */ + string ScriptType; + + /** script code as string (the code has to correspond with the language + defined by ScriptType). + */ + string ScriptCode; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XAllListener.idl b/udkapi/com/sun/star/script/XAllListener.idl new file mode 100644 index 0000000000..4fb2d88dd9 --- /dev/null +++ b/udkapi/com/sun/star/script/XAllListener.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** specifies a listener combining all methods + of a listener interface in a single generic call. + + <p>Without any output parameters, it is possible to adapt any interface + if the XAllListenerAdapterService can generate an adapter.</p> + */ +published interface XAllListener: com::sun::star::lang::XEventListener +{ + /** gets called when an event occurs at the object. + */ + void firing( [in] com::sun::star::script::AllEventObject iaEvent ); + + /** gets called when a "vetoable event" occurs at the object. + + <p>That happens when the listener method raises an exception, + or has a return value declared.</p> + */ + any approveFiring( [in] com::sun::star::script::AllEventObject aEvent ) + raises( com::sun::star::reflection::InvocationTargetException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XAllListenerAdapterService.idl b/udkapi/com/sun/star/script/XAllListenerAdapterService.idl new file mode 100644 index 0000000000..671af3e676 --- /dev/null +++ b/udkapi/com/sun/star/script/XAllListenerAdapterService.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** allows the generation of adapters from specific + interfaces to the XAllListener interface. + */ +published interface XAllListenerAdapterService: com::sun::star::uno::XInterface +{ + /** creates a wrapper from the listener of type + <var>xListenerType</var> to the XAllListener + listener. + + To get the correct listener interface the returned + com::sun::star::uno::XInterface has to + be queried for it. + */ + com::sun::star::uno::XInterface createAllListerAdapter( [in] type xListenerType, + [in] com::sun::star::script::XAllListener xListener, + [in] any aHelper ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XAutomationInvocation.idl b/udkapi/com/sun/star/script/XAutomationInvocation.idl new file mode 100644 index 0000000000..8115c5b0e3 --- /dev/null +++ b/udkapi/com/sun/star/script/XAutomationInvocation.idl @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module script { + +interface XAutomationInvocation: com::sun::star::script::XInvocation +{ + any invokeGetProperty( [in] string aFunctionName, [in] sequence<any> aParams, [out] sequence<short> aOutParamIndex, [out] sequence<any> aOutParam ) raises( com::sun::star::lang::IllegalArgumentException, com::sun::star::script::CannotConvertException, com::sun::star::reflection::InvocationTargetException ); + any invokePutProperty( [in] string aFunctionName, [in] sequence<any> aParams, [out] sequence<short> aOutParamIndex, [out] sequence<any> aOutParam ) raises( com::sun::star::lang::IllegalArgumentException, com::sun::star::script::CannotConvertException, com::sun::star::reflection::InvocationTargetException ); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XDebugging.idl b/udkapi/com/sun/star/script/XDebugging.idl new file mode 100644 index 0000000000..d76b1b7849 --- /dev/null +++ b/udkapi/com/sun/star/script/XDebugging.idl @@ -0,0 +1,119 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** makes it possible to set breakpoints in an interpreter. + @deprecated + */ +published interface XDebugging: com::sun::star::uno::XInterface +{ + /** returns the source code line where the breakpoint was set. + + <p>The value can differ from the parameter + <var>nSourceCodeLine</var> when this is not a valid line to + place it. -1 indicates that the breakpoint cannot be set at + this position. + */ + long setBreakPoint( [in] string aModuleName, + [in] long nSourceCodeLine, + [in] boolean bOn ); + + /** clears all breakpoints in the module set by "setBreakPoint". + */ + void clearAllBreakPoints( [in] string aModuleName ); + + /** Evaluates an expression. + + @param aSourceCode the expression to be evaluated. + + @param nCallStackPos Position in the call stack for which the expression + should be evaluated. 0 is the top/actual position in the call + in the call stack, 1 the next and so on. + + @returns the value of the expression as string. + */ + string eval( [in] string aSourceCode, + [in] short nCallStackPos ); + + /** Returns the engine's stack trace of the current execute position. Line break is the delimiter. + */ + sequence<string> getStackTrace(); + + /** returns more detailed information about a specified stack frame. + + @param nCallStackPos + specifies the position in the call stack for the + variables that should be delivered. + */ + com::sun::star::script::ContextInformation getContextInformation( [in] short nCallStackPos ); + + /** returns the value of the variable at the given stack position. + */ + string dumpVariable( [in] string aVariableName, + [in] short nCallStackPos ); + + /** sets the value of the specified variable within the specified + stack frame. + */ + void setVariable( [in] string aVariableName, + [in] string aValue, + [in] short nCallStackPos ); + + /** returns whether the given variable exists within the specified stack frame. + */ + boolean isVariable( [in] string aVariableName, + [in] short nCallStackPos ); + + /** stops the execution of the interpreter. + + <p>To continue with the execution, call XDebugging::doContinue(). + */ + void stop(); + + /** executes the next and only the next statement. + + <p>If the next statement is a function call, the function is + executed completely.</p> + */ + void stepOver(); + + /** executes the next and only the next statement. + + <p>If the next statement is a function call, only the function + entered.</p> + */ + void stepIn(); + + /** executes the program until the next return from this stack frame. + */ + void stepOut(); + + /** continues the program execution. + */ + void doContinue(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XDefaultMethod.idl b/udkapi/com/sun/star/script/XDefaultMethod.idl new file mode 100644 index 0000000000..8c8acb9660 --- /dev/null +++ b/udkapi/com/sun/star/script/XDefaultMethod.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module script { +/** + An object supporting this interface indicates to interested + parties or clients the name of the default method for + this object. + <p>For example where ExampleObject is an instance of an Object that + supports this interface which returns the default method name + "defaultMethod".A scripting engine could use this information to support + syntax like <p>"ExampleObject( Param1 ... ParamN )"</p> + which would be equivalent to writing + <p>"ExampleObject.defaultMethod( Param1 ... ParamN )"</p> +*/ +interface XDefaultMethod : ::com::sun::star::uno::XInterface +{ + /** + Returns the name of the default method + + @return + The `string` name of default method + */ + string getDefaultMethodName(); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XDefaultProperty.idl b/udkapi/com/sun/star/script/XDefaultProperty.idl new file mode 100644 index 0000000000..cca881c6c9 --- /dev/null +++ b/udkapi/com/sun/star/script/XDefaultProperty.idl @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module script { +/** + An object supporting this interface indicates to interested + parties or clients the name of the default property for + this object. + <p>For example where ExampleObject is an instance of an Object that + supports this interface which returns the default property name + "Value".A scripting engine could use this information to support + syntax like <p>ExampleObject = "foo"</p> + which would be equivalent to writing + <p>ExampleObject.Value = "foo"</p> + or + <p>bar = ExampleObject</p> + which would be equivalent to writing + <p>bar = ExampleObject.Value</p> +*/ +interface XDefaultProperty : ::com::sun::star::uno::XInterface +{ + /** + Returns the name of the default property + + @return + The `string` name of default property + */ + string getDefaultPropertyName(); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XDirectInvocation.idl b/udkapi/com/sun/star/script/XDirectInvocation.idl new file mode 100644 index 0000000000..a5965e057f --- /dev/null +++ b/udkapi/com/sun/star/script/XDirectInvocation.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** provides access to an object's methods and properties. + */ +published interface XDirectInvocation: com::sun::star::uno::XInterface +{ + /** provides access to methods and properties exposed by an object. + + @param aName the method to invoke + @param aParams all parameters, out parameters are not supported + */ + any directInvoke( [in] string aName, + [in] sequence<any> aParams ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::script::CannotConvertException, + com::sun::star::reflection::InvocationTargetException ); + + /** returns `TRUE` if the method or property with the specified name exists, else `FALSE`. + */ + boolean hasMember( [in] string aName ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XEngine.idl b/udkapi/com/sun/star/script/XEngine.idl new file mode 100644 index 0000000000..7ac748ae11 --- /dev/null +++ b/udkapi/com/sun/star/script/XEngine.idl @@ -0,0 +1,98 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module script { + +/** makes it possible to control a scripting engine. + @deprecated + */ +published interface XEngine: com::sun::star::uno::XInterface +{ + /** sets an interface to an object as a scripting root. + + <p>If the root object implements the XInvocation interface, + then the engine uses this interface to set/get properties and + call methods. + </p> + */ + void setRoot( [in] com::sun::star::uno::XInterface xRoot ); + + /** gets an interface to the object which is the scripting root. + */ + com::sun::star::uno::XInterface getRoot(); + + /** sets an access object to get external functions. + */ + void setLibraryAccess( [in] com::sun::star::script::XLibraryAccess Library ); + + /** compiles a script module in the scope of the root object. + */ + boolean compile( [in] string ModuleName, + [in] string Script, + [in] boolean CreateDebugInfo ); + + /** runs a script specified by a string. + + <p>The arguments given in <var>aArgs</var> can be ignored by + the engine. The Script is executed synchronously.</p> + */ + any run( [in] string aScript, + [in] com::sun::star::uno::XInterface xThis, + [in] sequence<any> aArgs ); + + /** runs the script specified by a string and makes callbacks. + + <p>The arguments given in <var>aArgs</var> can be ignored by + the engine. The script is executed asynchronously. + + </p> + */ + void runAsync( [in] string acript, + [in] com::sun::star::uno::XInterface xThis, + [in] sequence<any> args, + [in] com::sun::star::script::XEngineListener xCallback ); + + /** terminates the execution of the running script. + + <p>The waiting queue is cleared too.</p> + */ + void cancel(); + + /** adds an engine listener. + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + */ + void addEngineListener( [in] com::sun::star::script::XEngineListener Listener ); + + /** removes an engine listener. + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + */ + void removeEngineListener( [in] com::sun::star::script::XEngineListener Listener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XEngineListener.idl b/udkapi/com/sun/star/script/XEngineListener.idl new file mode 100644 index 0000000000..0a2ecb0e6e --- /dev/null +++ b/udkapi/com/sun/star/script/XEngineListener.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** makes it possible to receive events from a scripting engine. + @deprecated + */ +published interface XEngineListener: com::sun::star::lang::XEventListener +{ + /** gets fired when an interrupt occurs during the script execution. + + <p>If you call the method, the execution stops. So in this situation, + the stack and variable values are still available by using the + appropriate XDebugging methods. + </p> + */ + void interrupt( [in] com::sun::star::script::InterruptEngineEvent Evt ); + + /** gets fired when the script gets into execution state. + */ + void running( [in] com::sun::star::lang::EventObject Evt ); + + /** gets fired when the script execution has finished. + */ + void finished( [in] com::sun::star::script::FinishEngineEvent Evt ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XErrorQuery.idl b/udkapi/com/sun/star/script/XErrorQuery.idl new file mode 100644 index 0000000000..f68c6882f5 --- /dev/null +++ b/udkapi/com/sun/star/script/XErrorQuery.idl @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module script { + +interface XErrorQuery : ::com::sun::star::uno::XInterface +{ + /** + Returns whether this object has an error + + @return + `boolean` indicating an error or not + */ + boolean hasError(); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XEventAttacher.idl b/udkapi/com/sun/star/script/XEventAttacher.idl new file mode 100644 index 0000000000..e97950729a --- /dev/null +++ b/udkapi/com/sun/star/script/XEventAttacher.idl @@ -0,0 +1,79 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** makes it possible to attach script events given by a sequence of + ScriptEventDescriptor structures to a given interface. + */ +published interface XEventAttacher: com::sun::star::uno::XInterface +{ + /** registers the given "AllListener" object as a listener at the + given interface by creating a suitable listener adapter and + calling the "addListener" method corresponding to the + "ListenerType". + */ + com::sun::star::lang::XEventListener attachListener( [in] com::sun::star::uno::XInterface xTarget, + [in] com::sun::star::script::XAllListener xAllListener, + [in] any aHelper, + [in] string aListenerType, + [in] string aAddListenerParam ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::beans::IntrospectionException, + com::sun::star::script::CannotCreateAdapterException, + com::sun::star::lang::ServiceNotRegisteredException ); + + /** registers an object as a listener at the given interface by + creating a suitable listener adapter and calling the method + which corresponds to the listener type. + + <p>Only the event corresponding to the given event method + will be delegated to <var>xAllListener</var>.</p> + */ + com::sun::star::lang::XEventListener attachSingleEventListener( [in] com::sun::star::uno::XInterface xTarget, + [in] com::sun::star::script::XAllListener xAllListener, + [in] any aHelper, + [in] string aListenerType, + [in] string aAddListenerParam, + [in] string aEventMethod ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::beans::IntrospectionException, + com::sun::star::script::CannotCreateAdapterException, + com::sun::star::lang::ServiceNotRegisteredException ); + + /** removes a listener object as a listener from the given interface. + + <p> This method can and should be used as a contrary method + to the two attach methods.</p> + */ + void removeListener( [in] com::sun::star::uno::XInterface xTarget, + [in] string aListenerType, + [in] string aRemoveListenerParam, + [in] com::sun::star::lang::XEventListener xToRemoveListener ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::beans::IntrospectionException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XEventAttacher2.idl b/udkapi/com/sun/star/script/XEventAttacher2.idl new file mode 100644 index 0000000000..60da78ee7f --- /dev/null +++ b/udkapi/com/sun/star/script/XEventAttacher2.idl @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +module com { module sun { module star { module script { + +interface XEventAttacher2: com::sun::star::script::XEventAttacher +{ + /** Register a multiple set of listeners listening for the same + target. Besides passing multiple listeners, the behavior of + this method is identical to that of + attachSingleEventListener(). + + @see com::sun::star::script::XEventAttacher::attachSingleEventListener + */ + sequence<com::sun::star::lang::XEventListener> + attachMultipleEventListeners( + [in] com::sun::star::uno::XInterface xTarget, + [in] sequence<com::sun::star::script::EventListener> aListeners ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::beans::IntrospectionException, + com::sun::star::script::CannotCreateAdapterException, + com::sun::star::lang::ServiceNotRegisteredException ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XEventAttacherManager.idl b/udkapi/com/sun/star/script/XEventAttacherManager.idl new file mode 100644 index 0000000000..9ee5052abe --- /dev/null +++ b/udkapi/com/sun/star/script/XEventAttacherManager.idl @@ -0,0 +1,188 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** registers listeners for specified events. + */ +published interface XEventAttacherManager: com::sun::star::uno::XInterface +{ + /** registers one event for an object identified by its index. + + <p>If any object is attached under this index, then this + event is attached automatically.</p> + <p>Exceptions of type + com::sun::star::beans::IntrospectionException and + com::sun::star::script::CannotCreateAdapterException + that can be thrown by methods of XEventAttacher are caught + and ignored.</p> + */ + void registerScriptEvent( [in] long nIndex, + [in] com::sun::star::script::ScriptEventDescriptor aScriptEvent ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** registers several events for an object identified by its index. + + <p>The result is the same as if the method registerScriptEvent() + was called once for each ScriptEventDescriptor + in the sequence.</p> + + <p>If any object is attached under this index, then this + event is attached automatically (see attach())</p> + + <p>Exceptions of type + com::sun::star::beans::IntrospectionException and + com::sun::star::script::CannotCreateAdapterException + that can be thrown by methods of XEventAttacher are caught + and ignored.</p> + + @see registerScriptEvent + @see attach + */ + void registerScriptEvents( [in] long nIndex, + [in] sequence<com::sun::star::script::ScriptEventDescriptor> aScriptEvents ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** revokes the registration of an event. + + <p>The parameters <var>ListenerType</var> and + <var>EventMethod</var> are equivalent to the first two + members of the ScriptEventDescriptor + used to register events. If this event at this index has + been attached to any object, it is detached automatically + (see attach()).</p> + + <p>Exceptions of type + com::sun::star::beans::IntrospectionException and + com::sun::star::script::CannotCreateAdapterException + that can be thrown by methods of XEventAttacher are caught + and ignored.</p> + + @see attach + */ + void revokeScriptEvent( [in] long nIndex, + [in] string aListenerType, + [in] string aEventMethod, + [in] string aRemoveListenerParam ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** revokes all events which are registered for the given index. + + <p>If the events at this index have been attached to any + object, they are detached automatically. + (see attach()).</p> + + @see attach + */ + void revokeScriptEvents( [in] long nIndex ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** creates an empty entry at the given position. + + <p>The index <var>n</var> of all entries with <code>n &gt;= + nIndex</code> will be increased by one.</p> + */ + void insertEntry( [in] long nIndex ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** removes the entry at the given position. + + <p>If any events are registered at this index, they will + be revoked, too. So if the events at this index have been + attached to any object they are detached automatically. + (see attach()).</p> + + @see attach + */ + void removeEntry( [in] long nIndex ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** @return + all events registered for the given object index. + + @param Index + an index previously inserted with the method insertEntry. + + @throws IllegalArgumentException + if Index is not valid. + */ + sequence<com::sun::star::script::ScriptEventDescriptor> getScriptEvents( [in] long Index ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** attaches all the ScriptEvents which are registered + for the given index to the given object. + + <p>Exceptions of type + com::sun::star::beans::IntrospectionException and + com::sun::star::script::CannotCreateAdapterException + that can be thrown by methods of XEventAttacher are caught + and ignored.</p> + */ + void attach( [in] long nIndex, + [in] com::sun::star::uno::XInterface xObject, + [in] any aHelper ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::ServiceNotRegisteredException ); + + /** detaches all the ScriptEvents from the given object + which are registered at this object for the given index. + + <p>Exceptions of type + com::sun::star::beans::IntrospectionException and + com::sun::star::script::CannotCreateAdapterException + that can be thrown by methods of XEventAttacher are caught + and ignored.</p> + */ + void detach( [in] long nIndex, + [in] com::sun::star::uno::XInterface xObject ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** adds an XScriptListener that will be notified when an + event takes place. For that a + ScriptEventDescriptor is registered at and + attached to an object by an XEventAttacherManager. + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + + @see removeScriptListener + */ + void addScriptListener( [in] com::sun::star::script::XScriptListener xListener ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** removes a XScriptListener from the listener list. + + <p>Nothing happens if the listener is not registered. + + <p>It is suggested to allow multiple registration of the same listener, + thus for each time a listener is added, it has to be removed. + + @see addScriptListener + */ + void removeScriptListener( [in] com::sun::star::script::XScriptListener Listener ) + raises( com::sun::star::lang::IllegalArgumentException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XInvocation.idl b/udkapi/com/sun/star/script/XInvocation.idl new file mode 100644 index 0000000000..081d57c113 --- /dev/null +++ b/udkapi/com/sun/star/script/XInvocation.idl @@ -0,0 +1,115 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** gives access to an object's methods and properties. + Container access is available through + com::sun::star::container::XIndexContainer, + com::sun::star::container::XNameContainer and + com::sun::star::container::XEnumerationAccess. + </p> + */ +published interface XInvocation: com::sun::star::uno::XInterface +{ + /** returns the introspection from this object or `NULL` + if the object does not provide this information. + */ + com::sun::star::beans::XIntrospectionAccess getIntrospection(); + + /** provides access to methods exposed by an object. + + @param aFunctionName the method to invoke + @param aParams all parameters; pure out params are undefined in sequence, + the value has to be ignored by the callee + @param aOutParamIndex This sequence contains the indices of all parameters + that are specified as out or inout. + @param aOutParam This sequence contains the values of all parameters that + are specified as out or inout and corresponds with the + indices provided by the aOutParamIndex sequence. + + Example: aOutParamIndex == { 1, 4 } means that + aOutParam[0] contains the out value of the aParams[1] + parameter and aOutParam[1] contains the out value of + the aParams[4] parameter. + */ + any invoke( [in] string aFunctionName, + [in] sequence<any> aParams, + [out] sequence<short> aOutParamIndex, + [out] sequence<any> aOutParam ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::script::CannotConvertException, + com::sun::star::reflection::InvocationTargetException ); + + /** sets a value to the property with the specified name. + + <p> If the underlying object implements an + com::sun::star::container::XNameContainer, + then this method will insert the value if there is no such + <var>aPropertyName</var>. + + </p> + */ + void setValue( [in] string aPropertyName, + [in] any aValue ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::script::CannotConvertException, + com::sun::star::reflection::InvocationTargetException ); + + /** returns the value of the property with the specified name. + + @param aPropertyName + specifies the name of the property. + */ + any getValue( [in] string aPropertyName ) + raises( com::sun::star::beans::UnknownPropertyException ); + + /** returns `TRUE` if the method with the specified name exists, else `FALSE`. + + <p>This optimizes the calling sequence + ( XInvocation::hasMethod(), + XInvocation::invoke() )!</p> + + @param aName + specifies the name of the method. + */ + boolean hasMethod( [in] string aName ); + + /** returns `TRUE` if the property with the specified name exists, else `FALSE`. + + <p>This optimizes the calling sequence + ( XInvocation::hasProperty(), + XInvocation::getValue() ) or + + ( XInvocation::hasProperty(), + XInvocation::setValue() )! + + @param aName + specifies the name of the property. + */ + boolean hasProperty( [in] string aName ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XInvocation2.idl b/udkapi/com/sun/star/script/XInvocation2.idl new file mode 100644 index 0000000000..472439b976 --- /dev/null +++ b/udkapi/com/sun/star/script/XInvocation2.idl @@ -0,0 +1,63 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module script { + + +/** + Extension of XInvocation to provide additional information + about the methods and properties that are accessible via + XInvocation. + </p> + */ +published interface XInvocation2: com::sun::star::script::XInvocation +{ + /** returns the names of all methods and properties accessible via XInvocation. + */ + sequence< string > getMemberNames(); + + /** returns information items for all methods and properties accessible via XInvocation. + + @see com::sun::star::script::Invocation + */ + sequence< InvocationInfo > getInfo(); + + /** returns information item for the method or property defined by aName + + @param aName + specifies the name of the method or property + + @param bExact + specifies the name of the method or property + + @throws IllegalArgumentException + if aName is not the name of a supported method or property + + @see com::sun::star::script::Invocation + */ + InvocationInfo getInfoForName( [in] string aName, [in] boolean bExact ) + raises( com::sun::star::lang::IllegalArgumentException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XInvocationAdapterFactory.idl b/udkapi/com/sun/star/script/XInvocationAdapterFactory.idl new file mode 100644 index 0000000000..801f93f7a7 --- /dev/null +++ b/udkapi/com/sun/star/script/XInvocationAdapterFactory.idl @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + + +/** Interface to create adapter objects giving a type to be supported and a + an invocation interface incoming calls are delegated to. + + This interface is deprecated. Use XInvocationAdapterFactory2. + @deprecated +*/ +published interface XInvocationAdapterFactory: com::sun::star::uno::XInterface +{ + /** Creates an adapter interface of given type for calling the given + XInvocation interface. + + @param Invocation + invocation interface being called on incoming adapter calls + @param aType + supported type of adapter + + @returns + adapter interface; this interface can be queried for + XInterface and given type + */ + com::sun::star::uno::XInterface createAdapter( [in]XInvocation Invocation, [in]type aType ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XInvocationAdapterFactory2.idl b/udkapi/com/sun/star/script/XInvocationAdapterFactory2.idl new file mode 100644 index 0000000000..3bd861b96f --- /dev/null +++ b/udkapi/com/sun/star/script/XInvocationAdapterFactory2.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module script { + +/** Interface to create adapter objects giving types to be supported and a + an invocation interface incoming calls are delegated to. +*/ +published interface XInvocationAdapterFactory2 : com::sun::star::uno::XInterface +{ + /** Creates an adapter interface of given types for calling the given + XInvocation interface. + + @param Invocation + invocation interface being called on incoming adapter calls + @param aTypes + supported types of adapter + + @returns + adapter interface; this interface can be queried for + XInterface and given types + */ + com::sun::star::uno::XInterface createAdapter( + [in] XInvocation Invocation, + [in] sequence< type > aTypes ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XLibraryAccess.idl b/udkapi/com/sun/star/script/XLibraryAccess.idl new file mode 100644 index 0000000000..4448ad0bca --- /dev/null +++ b/udkapi/com/sun/star/script/XLibraryAccess.idl @@ -0,0 +1,84 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** provides access to additional scripting code. + + <p>This code is organized in modules and these modules contain + the functions. It is possible to get just the code from a function, + but you can also get the whole code of a module with all functions in it.</p> + @deprecated + */ +published interface XLibraryAccess: com::sun::star::uno::XInterface +{ + /** returns `TRUE`, if the function is accessible through this library; + otherwise it returns `FALSE`. + + @param aFunctionName + the fully qualified name of a function. + (e.g., "UtilLibrary.ModuleDate.FunctionCurrentDate") + */ + boolean isFunction( [in] string aFunctionName ); + + /** returns `TRUE` if a fully qualified function name begins with this name. + + @param aPathName + a part of a function name (e.g., "UtilLibrary"). + */ + boolean isValidPath( [in] string aPathName ); + + /** Return all module names which contain code. + e.g., { "UtilLibrary.ModuleDate", "UtilLibrary.Output", ... } + */ + sequence<string> getModuleNames(); + + /** get the source code of a module. + */ + string getModuleSource( [in] string aModulName ); + + /** Get the whole compiled code of a module. + + @param aModuleName the full qualified name of a module. + (e.g., "UtilLibrary.ModuleDate") + @return an empty sequence, if this module is not found or the + code is not compiled. + */ + sequence<byte> getModuleCode( [in] string aModuleName ); + + /** get the source code of a function. + */ + string getFunctionSource( [in] string aFunctionName ); + + /** Get the compiled code of a function. + + @param FunctionName the full qualified name of a function. + (e.g., "UtilLibrary.ModuleDate.Function.CurrentDate") + @return an empty sequence, if this function is not found. + */ + sequence<byte> getFunctionCode( [in] string FunctionName ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XScriptEventsAttacher.idl b/udkapi/com/sun/star/script/XScriptEventsAttacher.idl new file mode 100644 index 0000000000..2bc96d30ce --- /dev/null +++ b/udkapi/com/sun/star/script/XScriptEventsAttacher.idl @@ -0,0 +1,64 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + + +/** + This interface can be used to attach script events to a number of + objects that give access to the definition of events that should + be attached to them, e.g., by supporting XEventsSupplier +*/ +published interface XScriptEventsAttacher: com::sun::star::uno::XInterface +{ + /** + Attaches the events defined by XScriptEventsSupplier to the + corresponding object implementing XScriptEventsSupplier. + + @param Objects + Sequence of all objects. Usually the objects should directly + support XScriptEventsAttacher to define the events + but this is not strictly required. It's also possible that + the object implementing XScriptEventsAttacher + knows how to get the necessary information for the objects. + @param xListener + All events (if defined by XScriptEventsSupplier) that are fired + by one of the objects are mapped into a ScriptEvent + and passed to the methods of this XScriptListener. + @param Helper + Helper object for the implementation. This value will be + passed to the XScriptListener as Helper property in the + ScriptEvent. + */ + void attachEvents( [in] sequence< com::sun::star::uno::XInterface > Objects, + [in] com::sun::star::script::XScriptListener xListener, + [in] any Helper ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::beans::IntrospectionException, + com::sun::star::script::CannotCreateAdapterException, + com::sun::star::lang::ServiceNotRegisteredException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XScriptEventsSupplier.idl b/udkapi/com/sun/star/script/XScriptEventsSupplier.idl new file mode 100644 index 0000000000..2b7ff5bba5 --- /dev/null +++ b/udkapi/com/sun/star/script/XScriptEventsSupplier.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + + +/** + Gives access to an event container represented by an + XNameContainer containing ScriptEventDescriptor instances. + */ +published interface XScriptEventsSupplier: com::sun::star::uno::XInterface +{ + /** + Returns an XNameContainer containing instances + of ScriptEventDescriptor + */ + com::sun::star::container::XNameContainer getEvents(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XScriptListener.idl b/udkapi/com/sun/star/script/XScriptListener.idl new file mode 100644 index 0000000000..e8b29fcee0 --- /dev/null +++ b/udkapi/com/sun/star/script/XScriptListener.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + +/** makes it possible to receive ScriptEvents. + */ +published interface XScriptListener: com::sun::star::lang::XEventListener +{ + /** gets called when an event takes place. For that a + ScriptEventDescriptor is registered at and + attached to an object by an XEventAttacherManager. + */ + void firing( [in] com::sun::star::script::ScriptEvent aEvent ); + + /** gets called when a "vetoable event" occurs at the object. + */ + any approveFiring( [in] com::sun::star::script::ScriptEvent aEvent ) + raises( com::sun::star::reflection::InvocationTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XStarBasicAccess.idl b/udkapi/com/sun/star/script/XStarBasicAccess.idl new file mode 100644 index 0000000000..7f9581dc89 --- /dev/null +++ b/udkapi/com/sun/star/script/XStarBasicAccess.idl @@ -0,0 +1,77 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module script { + + +/** Interface representing a library and provides access to its modules + + @deprecated + */ +published interface XStarBasicAccess: com::sun::star::uno::XInterface +{ + /** returns + the library container giving access to the libraries stored in a document + or basic library file. + */ + com::sun::star::container::XNameContainer getLibraryContainer(); + + /** + Creates an empty library. This method can be called alternatively to + accessing directly the NameContainer returned by getLibraryContainer. + By using this method together with addModule and addStarBasicDialog + the caller does not have to implement XStarBasicLibraryInfo, XModuleInfo, + and XStarBasicDialogInfo + */ + void createLibrary( [in] string LibName, [in] string Password, + [in] string ExternalSourceURL, [in] string LinkTargetURL ) + raises( com::sun::star::container::ElementExistException ); + + /** + Adds a module to an existing (e.g., created by createLibrary) library. + By using this method together with createLibrary the caller does not have + to implement XStarBasicLibraryInfo and XModuleInfo. + + @throws NoSuchElementException + if the library doesn't exist. + */ + void addModule( [in] string LibraryName, [in] string ModuleName, + [in] string Language, [in] string Source ) + raises( com::sun::star::container::NoSuchElementException ); + + /** + Adds an old style basic dialog (SI controls) to an existing (e.g., created + by createLibrary) library. + By using this method together with createLibrary the caller does not have + to implement XStarBasicLibraryInfo and XStarBasicDialogInfo + + @throws NoSuchElementException + if the library doesn't exist. + */ + void addDialog( [in] string LibraryName, [in] string DialogName, + [in] sequence< byte > Data ) + raises( com::sun::star::container::NoSuchElementException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XStarBasicDialogInfo.idl b/udkapi/com/sun/star/script/XStarBasicDialogInfo.idl new file mode 100644 index 0000000000..24f0dc7956 --- /dev/null +++ b/udkapi/com/sun/star/script/XStarBasicDialogInfo.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + + +/** Interface describing old style basic dialog (SI controls) in binary data + + @deprecated + */ +published interface XStarBasicDialogInfo: com::sun::star::uno::XInterface +{ + /** returns the name of the dialog + */ + string getName(); + + /** returns binary data describing the SIDialog in SBX stream format + */ + sequence< byte > getData(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XStarBasicLibraryInfo.idl b/udkapi/com/sun/star/script/XStarBasicLibraryInfo.idl new file mode 100644 index 0000000000..9f2280edf8 --- /dev/null +++ b/udkapi/com/sun/star/script/XStarBasicLibraryInfo.idl @@ -0,0 +1,83 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module script { + + +/** Interface representing a library and provides access to its modules + + @deprecated + */ +published interface XStarBasicLibraryInfo: com::sun::star::uno::XInterface +{ + /** returns the library's name + */ + string getName(); + + /** returns + the module container giving access to the modules stored in the library. + The container has to be returned in any case, no matter if the library is + stored embedded, external, or linked. + + @see getExternalSourceURL + @see getLinkTargetURL + */ + com::sun::star::container::XNameContainer getModuleContainer(); + + /** returns + the dialog container giving access to the dialogs stored in the library. + The container has to be returned in any case, no matter if the library is + stored embedded, external, or linked. + + @see getExternalSourceURL + @see getLinkTargetURL + */ + com::sun::star::container::XNameContainer getDialogContainer(); + + /** returns + the password, if the library is protected with one, + an empty string otherwise. + */ + string getPassword(); + + /** returns an + URL describing the location where the library is stored if the library + is stored separately (for example not in the main XML file but in a + special library format file), an empty string otherwise. + This information can be useful to optimize the access to the library, + e.g., for loading on demand. + */ + string getExternalSourceURL(); + + /** returns an + URL describing the location of the library linked to. + + <p>HINT: This method can be removed when there is a generic interface + for linking. Then the implementation will simply support this + "XLinked" interface and it can be checked by queryInterface().</p> + */ + string getLinkTargetURL(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XStarBasicModuleInfo.idl b/udkapi/com/sun/star/script/XStarBasicModuleInfo.idl new file mode 100644 index 0000000000..7aa8890608 --- /dev/null +++ b/udkapi/com/sun/star/script/XStarBasicModuleInfo.idl @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + + +/** Script Module containing some scripting code in a certain scripting language + @deprecated + */ +published interface XStarBasicModuleInfo: com::sun::star::uno::XInterface +{ + /** returns the name of the module + */ + string getName(); + + /** returns the type of the script language as string, for example, "StarBasic" or "JavaScript". + */ + string getLanguage(); + + /** returns the script source code as string. + + <p>The code has to correspond with the language + defined by Language.</p> + */ + string getSource(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/script/XTypeConverter.idl b/udkapi/com/sun/star/script/XTypeConverter.idl new file mode 100644 index 0000000000..5124e8835a --- /dev/null +++ b/udkapi/com/sun/star/script/XTypeConverter.idl @@ -0,0 +1,73 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module script { + + +/** Interface to provide standard type conversions. + + @see Converter +*/ +published interface XTypeConverter: com::sun::star::uno::XInterface +{ + /** Converts the value <code>aFrom</code> to the specified type + <code>xDestinationType</code>. + Throws a CannotConvertException if the conversion + failed. + @param aFrom + source value + @param xDestinationType + destination type + @return + converted value (any carrying value of type <code>xDestinationType</code> + */ + any convertTo( + [in] any aFrom, + [in] type xDestinationType ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::script::CannotConvertException ); + + /** Converts the value <code>aFrom</code> to the specified simple type + <code>aDestinationType</code>. + Throws a CannotConvertException if the conversion + failed and a com::sun::star::lang::IllegalArgumentException + if the destination + com::sun::star::uno::TypeClass is not simple, + e.g. not long or byte. + + @param aFrom + source value + @param aDestinationType + destination type class + @return + converted value (any carrying value of type <code>aDestinationType</code> + */ + any convertToSimpleType( + [in] any aFrom, + [in] com::sun::star::uno::TypeClass aDestinationType ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::script::CannotConvertException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/security/AccessControlException.idl b/udkapi/com/sun/star/security/AccessControlException.idl new file mode 100644 index 0000000000..84b5e29be0 --- /dev/null +++ b/udkapi/com/sun/star/security/AccessControlException.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module security { + + +/** Exception notifying a lacking permission to access data or execute code + thus it is thrown if permission ought to be denied. + + @since OOo 1.1.2 +*/ +published exception AccessControlException : com::sun::star::uno::SecurityException +{ + /** lacking permission. + + @attention + If it is the case, that XAccessController::checkPermission() was called + passing a sequence< any >, i.e. a sequence of permissions are demanded, + then this any holds the sequence of lacking permissions in the same + order as they were passed to XAccessController::checkPermission(). + */ + any LackingPermission; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/security/AccessController.idl b/udkapi/com/sun/star/security/AccessController.idl new file mode 100644 index 0000000000..d5dd2f1054 --- /dev/null +++ b/udkapi/com/sun/star/security/AccessController.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module security { + +/** This meta service supports the XAccessController interface for checking + security permissions. + + @attention + The specific service implementation of this meta service has to take care + of bootstrapping problems, i.e. recurring calls during initialization + have to be resolved. This happens when the implementation calls other + service implementations. + + Also, it obviously has also to be ensured that the object is process-local + to assure that permission checks are not corrupted via insecure inter-process + communication. + + @since OOo 1.1.2 +*/ +published service AccessController : XAccessController; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/security/AllPermission.idl b/udkapi/com/sun/star/security/AllPermission.idl new file mode 100644 index 0000000000..7c916c69f0 --- /dev/null +++ b/udkapi/com/sun/star/security/AllPermission.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module security { + + +/** The AllPermission is a permission that implies all other permissions. + + @attention + Granting AllPermission should be done with extreme care, as it implies all + other permissions. Thus, it grants code the ability to run with security + disabled. Extreme caution should be taken before granting such a + permission to code. This permission should be used only during testing, + or in extremely rare cases where an application is completely trusted and + adding the necessary permissions to the policy is prohibitively cumbersome. + + @since OOo 1.1.2 +*/ +published struct AllPermission +{ + byte dummy; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/security/Policy.idl b/udkapi/com/sun/star/security/Policy.idl new file mode 100644 index 0000000000..ac0f5ecd61 --- /dev/null +++ b/udkapi/com/sun/star/security/Policy.idl @@ -0,0 +1,32 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module security { + +/** Service for getting sets of permissions reading from some persistent + storage. + + @since OOo 1.1.2 +*/ +published service Policy : XPolicy; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/security/RuntimePermission.idl b/udkapi/com/sun/star/security/RuntimePermission.idl new file mode 100644 index 0000000000..e918a038ec --- /dev/null +++ b/udkapi/com/sun/star/security/RuntimePermission.idl @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module security { + + +/** This permission grants runtime access to some named functionality. + A RuntimePermission contains a name (also referred to as a "target name") + but no actions list; you either have the named permission or you don't. + + @since OOo 1.1.2 +*/ +published struct RuntimePermission +{ + /** name of permission + */ + string Name; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/security/XAccessControlContext.idl b/udkapi/com/sun/star/security/XAccessControlContext.idl new file mode 100644 index 0000000000..b6ed5b8688 --- /dev/null +++ b/udkapi/com/sun/star/security/XAccessControlContext.idl @@ -0,0 +1,71 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module security { + + +/** An XAccessControlContext is used to make system resource access decisions + based on the context it encapsulates. + <p> + More specifically, it encapsulates a context and has methods to check + permissions equivalent to XAccessController interface, + with one difference: + The XAccessControlContext makes access decisions + based on the context it encapsulates, rather than + that of the current execution thread. + </p> + + @since OOo 1.1.2 +*/ +published interface XAccessControlContext : com::sun::star::uno::XInterface +{ + /** Determines whether the access request indicated by the specified + permission should be allowed or denied, based on this context. + The semantics are equivalent to the security permission classes of + the Java platform. + <p> + You can also pass a sequence of permissions (sequence< any >) to check + a set of permissions, e.g. for performance reasons. + This method quietly returns if the access request is permitted, + or throws a suitable AccessControlException otherwise. + </p> + + @param perm + permission to be checked + + @throws AccessControlException + thrown if access is denied + + @see ::com::sun::star::security::AccessControlException + @see ::com::sun::star::security::AllPermission + @see ::com::sun::star::security::RuntimePermission + @see ::com::sun::star::io::FilePermission + @see ::com::sun::star::connection::SocketPermission + */ + void checkPermission( + [in] any perm ) + raises (AccessControlException); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/security/XAccessController.idl b/udkapi/com/sun/star/security/XAccessController.idl new file mode 100644 index 0000000000..50c1a38af5 --- /dev/null +++ b/udkapi/com/sun/star/security/XAccessController.idl @@ -0,0 +1,127 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module security { + + +/** Interface for checking permissions and invoking privileged or restricted + actions. + + @since OOo 1.1.2 +*/ +published interface XAccessController : com::sun::star::uno::XInterface +{ + /** Determines whether the access request indicated by the specified + permission should be allowed or denied, based on the security policy + currently in effect. + The semantics are equivalent to the security permission classes of + the Java platform. + <p> + You can also pass a sequence of permissions (sequence< any >) to check + a set of permissions, e.g. for performance reasons. + This method quietly returns if the access request is permitted, + or throws a suitable AccessControlException otherwise. + </p> + + @param perm + permission to be checked + + @throws AccessControlException + thrown if access is denied + + @see ::com::sun::star::security::AccessControlException + @see ::com::sun::star::security::AllPermission + @see ::com::sun::star::security::RuntimePermission + @see ::com::sun::star::io::FilePermission + @see ::com::sun::star::connection::SocketPermission + */ + void checkPermission( + [in] any perm ) + raises (AccessControlException); + + /** Perform the specified action restricting permissions to the given + XAccessControlContext. + The action is performed with the intersection of the permissions of the currently installed + XAccessControlContext, the given XAccessControlContext and the security policy currently + in effect. The latter includes static security, e.g. based on user credentials. + <p> + If the specified XAccessControlContext is null, then the action is performed + with unmodified permissions, i.e. the call makes no sense. + </p> + + @param action + action object to be executed + @param restriction + access control context to restrict permission; null for no restriction + @return + result + @throws com::sun::star::uno::Exception + any UNO exception may be thrown + */ + any doRestricted( + [in] XAction action, + [in] XAccessControlContext restriction ) + raises (com::sun::star::uno::Exception); + + /** Perform the specified action adding a set of permissions defined by the given + XAccessControlContext. + The action is performed with the union of the permissions of the currently installed + XAccessControlContext, the given XAccessControlContext and the security policy currently + in effect. The latter includes static security, e.g. based on user credentials. + <p> + If the given XAccessControlContext is null, then the action is performed + <b>only</b> with the permissions of the security policy currently in effect. + </p> + + @attention + Do carefully use this method only for well known use-cases to avoid exploits! + Script engines executing sandboxed scripts should generally deny calling this + method. + + @param action + action object to be executed + @param restriction + access control context to restrict permission; null for no restriction + @return + result + @throws com::sun::star::uno::Exception + any UNO exception may be thrown + */ + any doPrivileged( + [in] XAction action, + [in] XAccessControlContext restriction ) + raises (com::sun::star::uno::Exception); + + /** This method takes a "snapshot" of the current calling context + and returns it. + <p> + This context may then be checked at a later point, possibly in another thread. + </p> + @return + snapshot of context + */ + XAccessControlContext getContext(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/security/XAction.idl b/udkapi/com/sun/star/security/XAction.idl new file mode 100644 index 0000000000..259950be8e --- /dev/null +++ b/udkapi/com/sun/star/security/XAction.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module security { + + +/** Interface for running an action. + + @since OOo 1.1.2 +*/ +published interface XAction : com::sun::star::uno::XInterface +{ + /** Action to be done. + + @return + result + @throws com::sun::star::uno::Exception + any UNO exception may be thrown + */ + any run() + raises (com::sun::star::uno::Exception); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/security/XPolicy.idl b/udkapi/com/sun/star/security/XPolicy.idl new file mode 100644 index 0000000000..4d42e7fea2 --- /dev/null +++ b/udkapi/com/sun/star/security/XPolicy.idl @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module security { + +/** Interface for getting sets of permissions of a specified user or + the default permissions if no user is given. + + @see com::sun::star::security::Policy + + @since OOo 1.1.2 +*/ +published interface XPolicy : com::sun::star::uno::XInterface +{ + /** Gets the permissions of the specified user excluding the default permissions + granted to all users. + + @param userId + user id + @return + permissions of the specified user + */ + sequence< any > getPermissions( + [in] string userId ); + + /** Gets the default permissions granted to all users. + + @return + default permissions + */ + sequence< any > getDefaultPermissions(); + + /** Refreshes the policy configuration. + */ + void refresh(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/task/XInteractionAbort.idl b/udkapi/com/sun/star/task/XInteractionAbort.idl new file mode 100644 index 0000000000..3130d25ec8 --- /dev/null +++ b/udkapi/com/sun/star/task/XInteractionAbort.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module task { + +/** An interaction continuation specifying to abort executing the process that + issued the request. + */ +published interface XInteractionAbort: com::sun::star::task::XInteractionContinuation +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/task/XInteractionContinuation.idl b/udkapi/com/sun/star/task/XInteractionContinuation.idl new file mode 100644 index 0000000000..58605d8082 --- /dev/null +++ b/udkapi/com/sun/star/task/XInteractionContinuation.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module task { + +/** Specifies a way of how to continue from an + com::sun::star::task::XInteractionRequest. + <P>Different sub-interfaces of this interface specify different ways of + continuing.</P> + */ +published interface XInteractionContinuation: com::sun::star::uno::XInterface +{ + /** Select this way of continuing from an + com::sun::star::task::XInteractionRequest (given a + choice of various instances of + com::sun::star::task::XInteractionContinuation). + */ + void select(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/task/XInteractionHandler.idl b/udkapi/com/sun/star/task/XInteractionHandler.idl new file mode 100644 index 0000000000..4b8571419f --- /dev/null +++ b/udkapi/com/sun/star/task/XInteractionHandler.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module task { + +/** An interaction request handler. + */ +published interface XInteractionHandler: com::sun::star::uno::XInterface +{ + /** Handle an interaction request. + */ + void handle( [in] com::sun::star::task::XInteractionRequest Request ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/task/XInteractionHandler2.idl b/udkapi/com/sun/star/task/XInteractionHandler2.idl new file mode 100644 index 0000000000..4f620a3747 --- /dev/null +++ b/udkapi/com/sun/star/task/XInteractionHandler2.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module task { + + +/** An interaction request handler. + + <p>This interface extends the interface XInteractionHandler + the way that a caller can determine whether an interaction request was + actually handled by the interaction handler.</p> + + @since OOo 3.2 + */ +published interface XInteractionHandler2 : com::sun::star::task::XInteractionHandler +{ + /** Handle an interaction request. + + @param Request the interaction request to handle. + + @return `TRUE`, if the handler handled the request, `FALSE` otherwise. + */ + boolean handleInteractionRequest( + [in] com::sun::star::task::XInteractionRequest Request ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/task/XInteractionRequest.idl b/udkapi/com/sun/star/task/XInteractionRequest.idl new file mode 100644 index 0000000000..3c40bd6e12 --- /dev/null +++ b/udkapi/com/sun/star/task/XInteractionRequest.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module task { + +/** The description of an interaction request. + */ +published interface XInteractionRequest: com::sun::star::uno::XInterface +{ + /** Get information about the request itself. + + @returns + a com::sun::star::uno::Exception, wrapped as an + `any`. + */ + any getRequest(); + + /** Get the set of + com::sun::star::task::XInteractionContinuations + the client supports for this request. + */ + sequence<com::sun::star::task::XInteractionContinuation> getContinuations(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/task/XInteractionRetry.idl b/udkapi/com/sun/star/task/XInteractionRetry.idl new file mode 100644 index 0000000000..09560ff304 --- /dev/null +++ b/udkapi/com/sun/star/task/XInteractionRetry.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module task { + +/** An interaction continuation specifying to try to re-execute the process + that issued the request. + */ +published interface XInteractionRetry: com::sun::star::task::XInteractionContinuation +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/DeploymentException.idl b/udkapi/com/sun/star/uno/DeploymentException.idl new file mode 100644 index 0000000000..a92c5ba35a --- /dev/null +++ b/udkapi/com/sun/star/uno/DeploymentException.idl @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module uno { + + +/** Exception signalling a deployment error. + + @since OOo 1.1.2 +*/ +published exception DeploymentException : com::sun::star::uno::RuntimeException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/Exception.idl b/udkapi/com/sun/star/uno/Exception.idl new file mode 100644 index 0000000000..29a0f83b6a --- /dev/null +++ b/udkapi/com/sun/star/uno/Exception.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module uno { + +/** the base of all UNO exceptions + + <p>All exceptions defined in UNO idl should derive from this exception.</p> + */ +published exception Exception +{ + /** gives a detailed description of the reason, why the exception was thrown. + <p> + The description should be as detailed as possible. + + */ + string Message; + + + /** should contain a reference to the original, which raised the exception. + <p>May be NULL.</p> + */ + com::sun::star::uno::XInterface Context; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/NamingService.idl b/udkapi/com/sun/star/uno/NamingService.idl new file mode 100644 index 0000000000..2e60178968 --- /dev/null +++ b/udkapi/com/sun/star/uno/NamingService.idl @@ -0,0 +1,35 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + module com { module sun { module star { module uno { + +/** a simple named object container. + */ +published service NamingService : com::sun::star::uno::XNamingService; + + +}; }; }; }; + +/*============================================================================= + + Source Code Control System - Update + +=============================================================================*/ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/RuntimeException.idl b/udkapi/com/sun/star/uno/RuntimeException.idl new file mode 100644 index 0000000000..d9b6a979f8 --- /dev/null +++ b/udkapi/com/sun/star/uno/RuntimeException.idl @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module uno { + + +/** This exception or a subclass can occur at every interface method. + <p> + It shall signal an error, which was not covered by the interface + method specification. This exception (or a derived one) is thrown, + when for instance an interprocess bridge to the object broke down, + some explicitly forbidden invalid parameters were passed ( e.g. null + references ) or the called object has been disposed before. + */ +published exception RuntimeException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/SecurityException.idl b/udkapi/com/sun/star/uno/SecurityException.idl new file mode 100644 index 0000000000..d9e5067f92 --- /dev/null +++ b/udkapi/com/sun/star/uno/SecurityException.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module uno { + + +/** Base exception for all security related exceptions. +*/ +published exception SecurityException : com::sun::star::uno::RuntimeException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/TypeClass.idl b/udkapi/com/sun/star/uno/TypeClass.idl new file mode 100644 index 0000000000..ebb9e62908 --- /dev/null +++ b/udkapi/com/sun/star/uno/TypeClass.idl @@ -0,0 +1,141 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module uno { + + +/** This enum describes all type classes of UNO. Every specific type has a type + class specifying the general context of the reflected type. + + <p> + Example: + A type reflecting the interface XInterface is of type class + INTERFACE and its name is "com.sun.star.uno.XInterface". + </p> +*/ +published enum TypeClass +{ + /** reflecting the void type; denotes no type + */ + VOID, + /** reflecting the 16-bit unicode character type + */ + CHAR, + /** reflecting the boolean type; true and false + */ + BOOLEAN, + /** reflecting the 8-bit ordinal type + */ + BYTE, + /** reflecting the signed 16-bit ordinal type + */ + SHORT, + /** reflecting the unsigned 16-bit ordinal type + */ + UNSIGNED_SHORT, + /** reflecting the signed 32-bit ordinal type + */ + LONG, + /** reflecting the unsigned 32-bit type + */ + UNSIGNED_LONG, + /** reflecting the signed 64-bit ordinal type + */ + HYPER, + /** reflecting the unsigned 64-bit ordinal type + */ + UNSIGNED_HYPER, + /** reflecting the 32-bit floating point type + */ + FLOAT, + /** reflecting the 64-bit floating point type + */ + DOUBLE, + /** reflecting the string type; strings of unicode characters + */ + STRING, + /** reflecting the meta type + */ + TYPE, + /** reflecting the any type; anys can carry any UNO value except of any values + */ + ANY, + /** reflecting enum types + */ + ENUM, + /** reflecting typedefed types referencing other types + */ + TYPEDEF, + /** reflecting compound types + */ + STRUCT, + /** Deprecated, UNOIDL does not have a union concept. + + @deprecated + */ + UNION, + /** reflecting exception types + */ + EXCEPTION, + /** reflecting sequence types + */ + SEQUENCE, + /** Deprecated, UNOIDL does not have an array concept. + + @deprecated + */ + ARRAY, + /** reflecting interface types + */ + INTERFACE, + /** reflecting services + */ + SERVICE, + /** reflecting modules + */ + MODULE, + /** reflecting interface methods + */ + INTERFACE_METHOD, + /** reflecting interface attributes + */ + INTERFACE_ATTRIBUTE, + /** reflecting the unreflectable type + */ + UNKNOWN, + /** reflecting properties + */ + PROPERTY, + /** reflecting constants + */ + CONSTANT, + /** reflecting constants groups + */ + CONSTANTS, + /** reflecting singletons + */ + SINGLETON +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/Uik.idl b/udkapi/com/sun/star/uno/Uik.idl new file mode 100644 index 0000000000..faf20af052 --- /dev/null +++ b/udkapi/com/sun/star/uno/Uik.idl @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module uno { + +/** Specifies a universal interface key (globally unique). + + This struct is deprecated. Uiks are not used anymore. + @deprecated +*/ +published struct Uik +{ + /** specifies a 4 byte data block. + */ + unsigned long Data1; + + /** specifies a 2 byte data block. + */ + unsigned short Data2; + + /** specifies a 2 byte data block. + */ + unsigned short Data3; + + /** specifies a 4 byte data block. + */ + unsigned long Data4; + + /** specifies a 4 byte data block. + */ + unsigned long Data5; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/XAdapter.idl b/udkapi/com/sun/star/uno/XAdapter.idl new file mode 100644 index 0000000000..6dfdac7f3c --- /dev/null +++ b/udkapi/com/sun/star/uno/XAdapter.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module uno { + + +/** This is the server-side interface to a weak adapter. + + <p>The implementation of XAdapter must know + but not hold the adapted object, because it must not + affect the lifetime of the adapted object. + + </p>@see XWeak + for description of concepts. + */ +published interface XAdapter: com::sun::star::uno::XInterface +{ + /** queries the adapted object if it is alive. + */ + com::sun::star::uno::XInterface queryAdapted(); + + /** adds a reference to the adapter. + + + + <p>All added references are called when the adapted object dies. + + </p> + */ + void addReference( [in] com::sun::star::uno::XReference xRef ); + + /** removes a reference from the adapter. + */ + void removeReference( [in] com::sun::star::uno::XReference xRef ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/XAggregation.idl b/udkapi/com/sun/star/uno/XAggregation.idl new file mode 100644 index 0000000000..cf81178eb0 --- /dev/null +++ b/udkapi/com/sun/star/uno/XAggregation.idl @@ -0,0 +1,105 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module uno { + +/** Objects which implement this interface can become aggregates of + a delegator. + + <p>That means if an object "A" aggregates "B", "A" can provide all + or some of the interfaces of "B". Whenever the method + XInterface::queryInterface() + is called on either of the objects, the call will be forwarded + to object "A". Object "A" now can determine whether to use the + interfaces of "A" or "B" or neither. Actually, any number of + aggregates can be used, even nested ones (aggregated objects which are + delegators by themselves). + + <p>The following rules are to be observed: + <ol> + <li>All calls to XInterface::acquire() + which are made before the delegator was set (using the method + XAggregation::setDelegator()) must not be taken back + (using the method XInterface::release()) + before the delegation is removed by calling + <code>xAggregation->setDelegator(NULL)</code>. + + <li>The constructor of a delegator has to increment its + own reference count by calling its method + XInterface::acquire() + before it sets itself to any aggregate using the method + XAggregation::setDelegator(). After that + call it has to reset its own reference count without the + destructor getting called. + + <li>The destructor of a delegator has to reset the delegator in + its aggregated objects by calling their method + XAggregation::setDelegator() with + NULL before it releases its reference to + its aggregated objects. + </ol> + + @deprecated + Aggregation will no longer be supported as a high-level concept of UNO. + You may still have the option to implement a UNO object consisting of + several single objects in your specific programming language, though this + depends on your programming language. +*/ +published interface XAggregation: com::sun::star::uno::XInterface +{ + /** sets the object to which all calls to the method + XInterface::queryInterface() + have to be forwarded. + + @param pDelegator + specifies the object which handles the calls to + XInterface::queryInterface(). + If <var>pDelegator</var> is NULL, the delegator is + removed and thus the object becomes its own delegator and has + to handle calls to the method + XInterface::queryInterface() + itself. + + @see XAggregation::queryAggregation + */ + void setDelegator( [in] com::sun::star::uno::XInterface pDelegator ); + + /** is similar to XInterface::queryInterface(), + but it is to be processed directly without being forwarded to the + delegator. + + <p>This method is only called from within an implementation of + XInterface::queryInterface() + or XAggregation::queryAggregation(). This method + is to be called by the delegator if it does not implement the + interface itself. An object which got aggregated cannot depend + on getting its own interface when it calls the method + XInterface::queryInterface(). + + @see XAggregation::setDelegator + */ + any queryAggregation( [in] type aType ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/XComponentContext.idl b/udkapi/com/sun/star/uno/XComponentContext.idl new file mode 100644 index 0000000000..12b4b485e0 --- /dev/null +++ b/udkapi/com/sun/star/uno/XComponentContext.idl @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module lang { + published interface XMultiComponentFactory; +}; }; }; }; + +module com { module sun { module star { module uno { + +/** Component context to be passed to a component via + com::sun::star::lang::XSingleComponentFactory. + Arbitrary values (e.g. deployment values) can be retrieved from the context. +*/ +published interface XComponentContext : XInterface +{ + /** Gets a value from the context. + + @param Name + name of value + @return + value + */ + any getValueByName( [in] string Name ); + + /** Gets the service manager instance to be used from key + <code>/singletons/com.sun.star.lang.theServiceManager</code>. + This method has been added for convenience, because the + service manager is used very often. + + @return + service manager; throws DeploymentException in case service + manager is null + */ + com::sun::star::lang::XMultiComponentFactory getServiceManager(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/XCurrentContext.idl b/udkapi/com/sun/star/uno/XCurrentContext.idl new file mode 100644 index 0000000000..487e2da9bf --- /dev/null +++ b/udkapi/com/sun/star/uno/XCurrentContext.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module uno { + +/** Task (thread) local execution context for UNO. + Arbitrary values can be retrieved from the context. + <p> + You have to use UNO runtime functions to obtain the current context + in your target language. + </p> + @attention + In general, do not spread the current context across different tasks. + Values of the current context are destined for that task only. +*/ +published interface XCurrentContext : XInterface +{ + /** Gets a value from the context. + + @param Name + name of value + @return + value + */ + any getValueByName( [in] string Name ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/XInterface.idl b/udkapi/com/sun/star/uno/XInterface.idl new file mode 100644 index 0000000000..b34df5f346 --- /dev/null +++ b/udkapi/com/sun/star/uno/XInterface.idl @@ -0,0 +1,112 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + module com { module sun { module star { module uno { + +/** base interface of all UNO interfaces + + <p> It provides lifetime control by reference counting and the + possibility of querying for other + interfaces of the same logical object. + + + <p> + "Logical Object" in this case means that the + interfaces actually can be supported by internal (e.g. aggregated) physical objects.</p> + + <p> Deriving from this interface is mandatory for all UNO interfaces. + <p> Each language binding (Java, C++, StarBasic, Python, ... ) may + provide a different mapping of this interface, please look into the language + dependent documentation. + + <p> The UNO object does not export the state of the reference count (acquire() and + release() do not have return values). In general, also the UNO object itself + should not make any assumption on the concrete value of the reference count + (except on the transition from one to zero ). + + */ +published interface XInterface +{ + /** queries for a new interface to an existing UNO object. + <p> + The queryInterface() method is the entry point to obtain other interfaces which + are exported by the object. The caller asks the implementation of the object, + if it supports the interface specified by the type argument. The call may either + return with an interface reference of the requested type or with a void any. + + <p> + There are certain specifications, a queryInterface() implementation must not violate. + <p> + 1) If queryInterface on a specific object has once returned a valid interface reference + for a given type, it must return a valid reference for any successive queryInterface + calls on this object for the same type. + <p> + 2) If queryInterface on a specific object has once returned a null reference + for a given type, it must always return a null reference for the same type. + <p> + 3) If queryInterface on a reference A returns reference B, queryInterface on + B for Type A must return interface reference A or calls made on the returned + reference must be equivalent to calls made on reference A. + <p> + 4) If queryInterface on a reference A returns reference B, queryInterface on + A and B for XInterface must return the same interface reference (object identity). + + <p> The reason for the strong specification is, that a Uno Runtime Environment (URE) + may choose to cache queryInterface() calls. + <p> As mentioned above, certain language bindings may map this function differently also + with different specifications, please visit the language dependent specification for it. + The current C++ binding sticks to the specification state + <p> + The rules mentioned above are basically identical to the rules of QueryInterface in MS COM. + + @param aType a UNO interface type, for which an object reference shall be obtained. + @return an interface reference in case the requested interface is supported by the object, + a void any otherwise. + */ + any queryInterface( [in] type aType ); + + /** increases the reference counter by one. + + <p>When you have called acquire() on the + UNO object, it is often said, that you have a reference or a hard reference + to the object. + + <p> + It is only allowed to invoke a method on a UNO object, when you keep + a hard reference to it. + + <p> Every call to acquire must be followed by a corresponding call to release + some time later, which may eventually lead to the destruction of the object. + */ + void acquire(); + + /** decreases the reference counter by one. + <p>When the reference counter reaches 0, the object gets deleted.</p> + <p>Calling release() on the object is often called releasing + or clearing the reference to an object. + */ + void release(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/XNamingService.idl b/udkapi/com/sun/star/uno/XNamingService.idl new file mode 100644 index 0000000000..d412cfafac --- /dev/null +++ b/udkapi/com/sun/star/uno/XNamingService.idl @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + module com { module sun { module star { module uno { + + +/** allows to insert, remove and access named objects. + */ +published interface XNamingService: com::sun::star::uno::XInterface +{ + + /** provides a previous registered object. + */ + com::sun::star::uno::XInterface getRegisteredObject( [in] string Name ) + raises (Exception); + + + /** registers one object under the specified name. + + <p>If any object is registered before, then this + object is revoked automatically. + + </p> + */ + void registerObject( [in]string Name, [in]com::sun::star::uno::XInterface Object ) + raises (Exception); + + + /** revokes the registration of an object. <p>If the object was not + previously registered, then this call does nothing. + */ + void revokeObject( [in]string Name ) + raises (Exception); +}; + + + +}; }; }; }; + +/*============================================================================= + + Source Code Control System - Update + +=============================================================================*/ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/XReference.idl b/udkapi/com/sun/star/uno/XReference.idl new file mode 100644 index 0000000000..2c36355c06 --- /dev/null +++ b/udkapi/com/sun/star/uno/XReference.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module uno { + +/** must be implemented by anyone who holds the adapter on the client side.@see XWeak + for description of concepts. + */ +published interface XReference: com::sun::star::uno::XInterface +{ + /** removes all references to the adapter. + + + + <p> This method is called when the adapted object dies. + The implementation of the client-side's weak reference + must include removal of all references to the adapter. + Otherwise, the adapted object will be destroyed, but the + adapter will be alive.</p> + */ + void dispose(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/XUnloadingPreference.idl b/udkapi/com/sun/star/uno/XUnloadingPreference.idl new file mode 100644 index 0000000000..39e118e7b7 --- /dev/null +++ b/udkapi/com/sun/star/uno/XUnloadingPreference.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module uno { + +/** Backwards-compatibility remainder of a removed library unloading feature. + + @deprecated Do not use. +*/ +published interface XUnloadingPreference: com::sun::star::uno::XInterface +{ + boolean releaseOnNotification(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uno/XWeak.idl b/udkapi/com/sun/star/uno/XWeak.idl new file mode 100644 index 0000000000..35c7fd3d21 --- /dev/null +++ b/udkapi/com/sun/star/uno/XWeak.idl @@ -0,0 +1,94 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + + module com { module sun { module star { module uno { + +/** the server-side interface to a weak object. + + + + <p>This interface is proxy to the adapted object. + In order to make it possible to have weak references to objects, + the XAdapter interface must be implemented to provide + a weak adapter for the clients. + + <h4>Concept of weak referencing:</h4> + + </p> + <p>This module specifies the interfaces for implementing and using + weak references.</p> + <p> + + </p> + <p>The sense of weak references is to hold a reference to an object + without affecting the lifetime of the object. That means that a weak + reference may become invalid, at any time, if the referenced object dies. + + </p> + <p>The following interfaces describe one way to handle weak references + by providing a weak adapter. The weak object has to provide this + adapter if anyone wants to hold a weak reference. To separate their + lifetimes, the adapter and the original object must not share the same + reference counter. The weak reference is in fact only a hard reference + to the adapter, which knows - but does not hold - the original object. + That means that the implementation and synchronization of weak + referencing is the responsibility of the object. The following + interfaces are involved in the concept of weak referencing: + + <dl> + <dt> + XWeak + </dt> + <dd>is the server-side interface of the referred object. This + referred object must support the XAdapter interface. + + </dd> + <dt> + XReference + </dt> + <dd>is a client-side interface which must be implemented by + the holder of any weak reference. It is used for notification + when the adapted object dies. + + </dd> + </dl> + </p> + */ +published interface XWeak: com::sun::star::uno::XInterface +{ + /** queries the weak adapter. + + + + <p>It is important that the adapter must know, but not hold + the adapted object. If the adapted object dies, all references + to the adapter have to be notified to release the adapter. + + </p> + */ + com::sun::star::uno::XAdapter queryAdapter(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uri/ExternalUriReferenceTranslator.idl b/udkapi/com/sun/star/uri/ExternalUriReferenceTranslator.idl new file mode 100644 index 0000000000..ee9b2650b7 --- /dev/null +++ b/udkapi/com/sun/star/uri/ExternalUriReferenceTranslator.idl @@ -0,0 +1,32 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module uri { + +/** + translates between external and internal URI references. + + @since OOo 2.0 + */ +published service ExternalUriReferenceTranslator: + XExternalUriReferenceTranslator; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uri/RelativeUriExcessParentSegments.idl b/udkapi/com/sun/star/uri/RelativeUriExcessParentSegments.idl new file mode 100644 index 0000000000..a01ab39242 --- /dev/null +++ b/udkapi/com/sun/star/uri/RelativeUriExcessParentSegments.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module uri { + +/** + details how excess special parent segments (“<code>..</code>”) + are handled when resolving a relative URI reference to absolute form. + + @see com::sun::star::uri::XUriReferenceFactory::makeAbsolute + for a method that uses this enumeration. + + @since OOo 2.0 + */ +published enum RelativeUriExcessParentSegments { + /** + causes excess special parent segments to be treated as an error. + */ + ERROR, + + /** + causes excess special parent segments to be retained, treating them like + ordinary segments. + */ + RETAIN, + + /** + causes excess special parent segments to be removed. + */ + REMOVE +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uri/UriReferenceFactory.idl b/udkapi/com/sun/star/uri/UriReferenceFactory.idl new file mode 100644 index 0000000000..9d2d4860a4 --- /dev/null +++ b/udkapi/com/sun/star/uri/UriReferenceFactory.idl @@ -0,0 +1,66 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module uri { + +published interface XUriReferenceFactory; + +/** + creates URI references. + + <p>See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a> for a + description of URI references and related terms.</p> + + <p>For parsing absolute URI references, this service tries to use a + scheme-specific parser. Such a scheme-specific parser will typically enforce + additional restrictions during parsing, and will typically return objects + that support extra, scheme-specific interfaces in addition to + com::sun::star::uri::XUriReference. If no such parser + is found, and for relative URI references, a generic parser is used, which + returns objects that only support + com::sun::star::uri::XUriReference.</p> + + <p>Locating a scheme-specific parser works as follows: A scheme consists of + Latin capital letters + “<code>A</code>”–“<code>Z</code>”, Latin small + letters “<code>a</code>”–“<code>z</code>”, + digits “<code>0</code>”–“<code>9</code>”, + “<code>+</code>”, “<code>-</code>”, and + “<code>.</code>”. A scheme <var>s</var> is transformed into + a string <var>s</var>′ character-by-character, by translating + Latin capital letters to their small counterparts, translating + “<code>+</code>” to “<code>PLUS</code>”, + “<code>-</code>” to “<code>HYPHEN</code>”, + “<code>.</code>” to “<code>DOT</code>”, and copying + Latin small letters and digits unchanged. If the component context used + while creating this <code>UriReferenceFactory</code> instance offers a + service manager, and there is a service available at that service manager + whose name is the concatenation of + “<code>com.sun.star.uri.UriSchemeParser_</code>” and + <var>s</var>′, then that service is used. It is an error if that + service does not support + com::sun::star::uri::XUriSchemeParser.</p> + + @since OOo 2.0 + */ +published service UriReferenceFactory: XUriReferenceFactory; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTexpand.idl b/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTexpand.idl new file mode 100644 index 0000000000..7ce3b6abbc --- /dev/null +++ b/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTexpand.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module uri { + +published interface XUriSchemeParser; + +/** + parses textual representations of absolute “vnd.sun.star.expand” + URLs. + + <p>The argument <code>scheme</code> of method + com::sun::star::uri::XUriSchemeParser::parse() must + always be equal to the `string` + <code>"vnd.sun.star.expand"</code>, ignoring case. The objects returned by + com::sun::star::uri::XUriSchemeParser::parse() + implement + com::sun::star::uri::XVndSunStarExpandUrlReference.</p> + + <p>This service is not intended to be instantiated directly by client code. + Rather, it should be used indirectly through the + com::sun::star::uri::UriReferenceFactory service.</p> + + @since OOo 2.3 + */ +published service UriSchemeParser_vndDOTsunDOTstarDOTexpand: XUriSchemeParser +{}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTscript.idl b/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTscript.idl new file mode 100644 index 0000000000..eb431cc1e9 --- /dev/null +++ b/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTscript.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module uri { + +published interface XUriSchemeParser; + +/** + parses textual representations of absolute “vnd.sun.star.script” + URLs. + + <p>The argument <code>scheme</code> of method + com::sun::star::uri::XUriSchemeParser::parse() must + always be equal to the `string` + <code>"vnd.sun.star.script"</code>, ignoring case. The objects returned by + com::sun::star::uri::XUriSchemeParser::parse() + implement + com::sun::star::uri::XVndSunStarScriptUrlReference.</p> + + <p>This service is not intended to be instantiated directly by client code. + Rather, it should be used indirectly through the + com::sun::star::uri::UriReferenceFactory service.</p> + + @since OOo 2.0 + */ +published service UriSchemeParser_vndDOTsunDOTstarDOTscript: XUriSchemeParser +{}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uri/VndSunStarPkgUrlReferenceFactory.idl b/udkapi/com/sun/star/uri/VndSunStarPkgUrlReferenceFactory.idl new file mode 100644 index 0000000000..d9e3090f45 --- /dev/null +++ b/udkapi/com/sun/star/uri/VndSunStarPkgUrlReferenceFactory.idl @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module uri { + +published interface XVndSunStarPkgUrlReferenceFactory; + +/** + creates “vnd.sun.star.pkg” URL references. + + @since OOo 2.0 + */ +published service VndSunStarPkgUrlReferenceFactory: + XVndSunStarPkgUrlReferenceFactory; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uri/XExternalUriReferenceTranslator.idl b/udkapi/com/sun/star/uri/XExternalUriReferenceTranslator.idl new file mode 100644 index 0000000000..926b34b633 --- /dev/null +++ b/udkapi/com/sun/star/uri/XExternalUriReferenceTranslator.idl @@ -0,0 +1,78 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module uri { + +/** + translates between external and internal URI references. + + <p>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 <dfn>internal</dfn> URIs (e.g., UTF-8–encoded “file” + URLs used within the UNO environment) and <dfn>external</dfn> URIs (e.g., + byte-sequence–oriented “file” URLs used by other + applications). Typically, only “file” URLs are affected by this + translation.</p> + + <p>Since the translation process is based on URI schemes, relative URI + references (that do not include a scheme) are left unmodified by the + translation process.</p> + + @since OOo 2.0 + */ +published interface XExternalUriReferenceTranslator { + /** + returns the internal counterpart of an external URI reference. + + @param externalUriReference + an external URI reference. + + @returns + the internal counterpart of the given external URI reference. An empty + string is returned if the given external URI reference either is an empty + string or cannot be converted (for example, because it contains illegal + characters). + */ + string translateToInternal([in] string externalUriReference); + + /** + returns the external counterpart of an internal URI reference. + + @param internalUriReference + an internal URI reference. + + @returns + the external counterpart of the given internal URI reference. An empty + string is returned if the given internal URI reference either is an empty + string or cannot be converted (for example, because it contains illegal + characters). + */ + string translateToExternal([in] string internalUriReference); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uri/XUriReference.idl b/udkapi/com/sun/star/uri/XUriReference.idl new file mode 100644 index 0000000000..c2b971935f --- /dev/null +++ b/udkapi/com/sun/star/uri/XUriReference.idl @@ -0,0 +1,220 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module uri { + +/** + represents generic, mutable URI references. + + <p>See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a> for a + description of URI references and related terms.</p> + + <p>This interface only handles generic URI references (both absolute and + relative). For specific URI schemes, there will be additional interfaces + that offer extra, scheme-specific functionality.</p> + + @see com::sun::star::uri::UriReferenceFactory + which allows to create URI reference objects that support + com::sun::star::uri::XUriReference and additional, + scheme-specific interfaces. + + @since OOo 2.0 + */ +published interface XUriReference: com::sun::star::uno::XInterface { + /** + returns the textual representation of the complete URI reference. + + @returns + the textual representation of the complete URI reference. The exact + spelling of the URI reference is retained. + */ + string getUriReference(); + + /** + returns whether this URI reference is absolute or relative. + + <p>A URI is absolute if it has a scheme.</p> + + @returns + `TRUE` if this URI reference is absolute, `FALSE` if it is relative. + */ + boolean isAbsolute(); + + /** + returns the scheme part of this (absolute) URI reference. + + @returns + the textual representation of the scheme part (with the exact spelling + retained; without the delimiting “<code>:</code>”), if this + is an absolute URI reference; otherwise, an empty `string` is + returned. + */ + string getScheme(); + + /** + returns the scheme-specific part of this URI reference. + + <p>For an absolute URI reference, the scheme-specific part is everything + after the scheme part and the delimiting “<code>:</code>”, + and before the optional “<code>#</code>” and fragment part. + For a relative URI reference, the scheme-specific part is everything + before the optional “<code>#</code>” and fragment part.</p> + + @returns + the textual representation of the scheme-specific part (with the exact + spelling retained). + */ + string getSchemeSpecificPart(); + + /** + returns whether this URI reference is hierarchical or opaque, in the sense of RFC 2396. + + <p>An absolute URI reference is hierarchical if its scheme-specific part + starts with “<code>/</code>”. A relative URI reference is + always hierarchical.</p> + + @returns + `TRUE` if this URI reference is hierarchical, `FALSE` if it is opaque. + + @deprecated RFC 3986 no longer differentiates between hierarchical and opaque URIs. + */ + boolean isHierarchical(); + + /** + returns whether this URI reference has an authority part. + + @returns + `TRUE` if this URI reference has an authority part. + */ + boolean hasAuthority(); + + /** + returns the authority part of this URI reference. + + @returns + the textual representation of the authority part (with the exact spelling + retained), if this is a URI reference that has an authority + part; otherwise, an empty `string` is returned. + */ + string getAuthority(); + + /** + returns the path part of this URI reference. + + @returns + the textual representation of the path part (with the exact spelling + retained). + */ + string getPath(); + + /** + returns whether this URI reference has a relative path. + + @returns + `TRUE` if this URI reference has a relative path. + */ + boolean hasRelativePath(); + + /** + returns the number of path segments of this URI reference. + + <p>For a URI reference with + an empty path, the number of path segments is zero. For a + URI reference with an absolute, non-empty path, the number of path + segments equals the number of “<code>/</code>” delimiters. + For a URI reference with a relative, non-empty path, the + number of path segments equals the number of “<code>/</code>” + delimiters, plus one.</p> + + @returns + the number of path segments. + */ + long getPathSegmentCount(); + + /** + returns a given path segment of this URI reference. + + @param index + the index of the path segment, starting at zero. + + @returns + the textual representation of the given path segment (with the exact + spelling retained, without any delimiting “<code>/</code>”), + if this URI reference has that many path segments; + otherwise, and in particular if <code>index</code> is negative, an empty + `string` is returned. + */ + string getPathSegment([in] long index); + + /** + returns whether this URI reference has a query part. + + @returns + `TRUE` if this URI reference has a query part. + */ + boolean hasQuery(); + + /** + returns the query part of this URI reference. + + @returns + the textual representation of the query part (with the exact spelling + retained; without the delimiting “<code>?</code>”), 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 “<code>#</code>”), if this + is a URI reference that has a fragment part; otherwise, an empty + `string` is returned. + */ + string getFragment(); + + /** + sets the fragment part of this URI reference. + + @param fragment + the textual representation of the new fragment part. The exact spelling + will be preserved, and no escaping is performed. + */ + void setFragment([in] string fragment); + + /** + clears the fragment part of this URI reference. + */ + void clearFragment(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uri/XUriReferenceFactory.idl b/udkapi/com/sun/star/uri/XUriReferenceFactory.idl new file mode 100644 index 0000000000..b6ad81cd92 --- /dev/null +++ b/udkapi/com/sun/star/uri/XUriReferenceFactory.idl @@ -0,0 +1,151 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module uri { + +/** + creates URI references. + + <p>See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a> for a + description of URI references and related terms.</p> + + @since OOo 2.0 + */ +published interface XUriReferenceFactory: com::sun::star::uno::XInterface { + /** + parses the textual representation of a URI reference. + + @param uriReference + the textual representation of a URI reference. + + @returns + an object that supports + com::sun::star::uri::XUriReference (and possibly also + additional, scheme-specific interfaces), if the given input can be parsed + into a URI reference; otherwise, `NULL` is returned. + */ + XUriReference parse([in] string uriReference); + + /** + resolves a relative URI reference to absolute form. + + @param baseUriReference + the base URI reference. If the given <code>uriReference</code> is a + same-document reference, <code>baseUriReference</code> is used as a + reference to the current document. + + @param uriReference + any URI reference. Backwards-compatible relative URI references starting + with a scheme component (see RFC 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 (“<code>.</code>” and + “<code>..</code>”) within the path of the base URI (except + for the last, cut-off segment), and within an already absolute <code>uriReference</code>, are + processed as required by + RFC 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 + (“<code>..</code>”) 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 + <code>uriReference</code> can be resolved + to an absolute URI reference, relative to the given + <code>baseUriReference</code>; otherwise, `NULL` is returned. + Especially, if <code>baseUriReference</code> is `NULL`, or is not an + absolute URI reference, or if <code>uriReference</code> is + `NULL`, then `NULL` is always returned. + */ + XUriReference makeAbsolute( + [in] XUriReference baseUriReference, [in] XUriReference uriReference, + [in] boolean processAdditionalSpecialSegments, + [in] RelativeUriExcessParentSegments excessParentSegments); + + /** + changes an absolute URI reference to relative form. + + @param baseUriReference + the base URI reference. + + @param uriReference + any URI reference. + + @param preferAuthorityOverRelativePath + controls how a relative URI reference is generated when both + <code>baseUriReference</code> (e.g., + “<code>scheme://auth/a/b</code>”) and + <code>uriReference</code> (e.g., + “<code>scheme://auth//c/d</code>”) have the same scheme and + authority components, and the path component of <code>uriReference</code> + starts with “<code>//</code>”. If `TRUE`, the generated + relative URI reference includes an authority component (e.g., + “<code>//auth//c/d</code>”); if `FALSE`, the generated + relative URI reference has a relative path (e.g., + “<code>..//c/d</code>”). + + @param preferAbsoluteOverRelativePath + controls how a relative URI reference is generated when both + <code>baseUriReference</code> (e.g., + “<code>scheme://auth/a/b</code>”) and + <code>uriReference</code> (e.g., + “<code>scheme://auth/c/d</code>”) 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., + “<code>/c/d</code>”); if `FALSE`, the generated relative URI + reference has a relative path (e.g., “<code>../c/d</code>”). + + @param encodeRetainedSpecialSegments + if `TRUE`, special segments (“<code>.</code>” and + “<code>..</code>”) that are already present in the path + component of the given <code>uriReference</code> and which end up in a + relative path returned from this method, are encoded (as + “<code>%2E</code>” and “<code>%2E%2E</code>”, + respectively). + + @returns + a fresh object that supports + com::sun::star::uri::XUriReference, if the given + <code>uriReference</code> is either already relative, or has a relative + path, or is of a different scheme than the given + <code>baseUriReference</code>, or can be changed to a relative URI + reference, relative to the given <code>baseUriReference</code>; + otherwise, `NULL` is returned. Especially, if + <code>baseUriReference</code> is `NULL`, or is not an absolute + URI reference, or if <code>uriReference</code> is `NULL`, + then `NULL` is always returned. + */ + XUriReference makeRelative( + [in] XUriReference baseUriReference, [in] XUriReference uriReference, + [in] boolean preferAuthorityOverRelativePath, + [in] boolean preferAbsoluteOverRelativePath, + [in] boolean encodeRetainedSpecialSegments); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uri/XUriSchemeParser.idl b/udkapi/com/sun/star/uri/XUriSchemeParser.idl new file mode 100644 index 0000000000..0d35a1dce4 --- /dev/null +++ b/udkapi/com/sun/star/uri/XUriSchemeParser.idl @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module uri { + +/** + parses textual representations of absolute URIs. + + <p>See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a> for a + description of URIs and related terms.</p> + + @since OOo 2.0 + */ +published interface XUriSchemeParser: com::sun::star::uno::XInterface { + /** + parses the textual representation of an absolute URI. + + <p>This method is used to parse URIs (with no fragment part), not URI + references (with an optional fragment part).</p> + + <p>If an object is returned, the behaviour of its + com::sun::star::uri::XUriReference methods must + reflect the fact that the object represents an absolute URI reference + with the given scheme and scheme-specific part, and without a fragment + part.</p> + + @param scheme + the textual representation of the scheme part (without the delimiting + “<code>:</code>”). + + @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. + + <p>These URLs are of the form<br/> + <var>vnd-sun-star-expand-url</var> = + <code>"VND.SUN.STAR.EXPAND:"</code> <var>opaque_part</var><br/> + where the <var>opaque_part</var> is a UTF-8 string as described in + <a href="http://udk.openoffice.org/common/man/concept/micro_deployment.html"> + Bootstrap Arguments and Micro Deployment</a>. See + <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a> + <a href="http://www.ietf.org/rfc/rfc2234.txt">RFC 2234</a> for + details.</p> + + @since OOo 2.3 + */ +published interface XVndSunStarExpandUrl { + /** + returns the expanded content of this URL. + + @param expander + a macro expander; must not be `NULL`. + + @returns + the expanded content of this URL. + + @throws com::sun::star::lang::IllegalArgumentException + if calling com::sun::star::util::XMacroExpander::expandMacros() on + <code>expander</code> raises any such exception. + */ + string expand([in] com::sun::star::util::XMacroExpander expander) + raises (com::sun::star::lang::IllegalArgumentException); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uri/XVndSunStarExpandUrlReference.idl b/udkapi/com/sun/star/uri/XVndSunStarExpandUrlReference.idl new file mode 100644 index 0000000000..bba3302d21 --- /dev/null +++ b/udkapi/com/sun/star/uri/XVndSunStarExpandUrlReference.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module uri { + +/** + represents absolute “vnd.sun.star.expand” URL references. + + @since OOo 2.3 + */ +published interface XVndSunStarExpandUrlReference { + /** + represents the generic features of the URL reference. + + <p>The behaviour of the methods of this interface will always reflect the + fact that the represented URI reference is an absolute + “vnd.sun.star.expand” URL reference.</p> + */ + interface XUriReference; + + /** + represents the scheme-specific features of the URL reference. + */ + interface XVndSunStarExpandUrl; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uri/XVndSunStarPkgUrlReferenceFactory.idl b/udkapi/com/sun/star/uri/XVndSunStarPkgUrlReferenceFactory.idl new file mode 100644 index 0000000000..877e6775e2 --- /dev/null +++ b/udkapi/com/sun/star/uri/XVndSunStarPkgUrlReferenceFactory.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module uri { + +published interface XUriReference; + +/** + creates “vnd.sun.star.pkg” URL references. + + @since OOo 2.0 + */ +published interface XVndSunStarPkgUrlReferenceFactory { + /** + creates a new “vnd.sun.star.pkg” URL reference. + + <p>The returned URL reference has the given authority, an empty path, and + no fragment.</p> + + @param authority the authority of the created URL reference; must not be + `NULL`, and should be an absolute URI reference with no fragment + + @return a new “vnd.sun.star.pkg” URL reference, or `NULL` if + the given authority is either not an absolute URI reference or has a + fragment + */ + XUriReference createVndSunStarPkgUrlReference([in] XUriReference authority); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uri/XVndSunStarScriptUrl.idl b/udkapi/com/sun/star/uri/XVndSunStarScriptUrl.idl new file mode 100644 index 0000000000..4647bf1847 --- /dev/null +++ b/udkapi/com/sun/star/uri/XVndSunStarScriptUrl.idl @@ -0,0 +1,122 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module uri { + +/** + represents absolute “vnd.sun.star.script” URLs. + + <p>These URLs are of the form<br/> + <var>vnd-sun-star-script-url</var> = + <code>"VND.SUN.STAR.SCRIPT:"</code> <var>name</var> [<code>"?"</code> + <var>parameter</var> *(<code>"&"</code> <var>parameter</var>)]<br/> + <var>name</var> = 1*<var>schar</var><br/> + <var>parameter</var> = <var>key</var> <code>"="</code> + <var>value</var><br/> + <var>key</var> = 1*<var>schar</var><br/> + <var>value</var> = *<var>schar</var><br/> + <var>schar</var> = <var>unreserved</var> / <var>escaped</var> / + <code>"$"</code> / <code>"+"</code> / <code>","</code> / <code>":"</code> / + <code>";"</code> / <code>"@"</code> / <code>"["</code> / + <code>"]"</code><br/> + See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a> + <a href="http://www.ietf.org/rfc/rfc2234.txt">RFC 2234</a> for + details.</p> + + <p>The names, keys, and values are arbitrary Unicode strings (non-empty + Unicode strings in the case of names and keys), encoded as UTF-8 byte + sequences. It is an error if any of them does not represent a valid UTF-8 + byte sequence. Keys are compared for equality character-by-character, + without considering case folding or normalization. There may be multiple + parameters with equal keys.</p> + + @since OOo 2.0 + */ +published interface XVndSunStarScriptUrl: com::sun::star::uno::XInterface { + /** + returns the name part of this URL. + + @returns + the non-escaped value of the name part. + */ + string getName(); + + /** + sets the name part of this URL. + + @param name + specifies the non-escaped new name part of the URL. + + @throws ::com::sun::star::lang::IllegalArgumentException + if name is empty + + @since OOo 3.0 + */ + void setName([in] string name) + raises ( ::com::sun::star::lang::IllegalArgumentException ); + + /** + returns whether this URL has a parameter with a given key. + + @param key + a non-escaped key. + + @returns + `TRUE` if this URL has at least one parameter with the given key. In + particular, if <code>key</code> is an empty `string`, `FALSE` + is returned. + */ + boolean hasParameter([in] string key); + + /** + returns the value of a parameter with a given key. + + @param key + a non-escaped key. + + @returns + the non-escaped value of the first parameter with the given key. If + there is no parameter with the given key, or if <code>key</code> is an + empty `string`, an empty `string` is returned. + */ + string getParameter([in] string key); + + /** + sets the value of a parameter with a given key. + + @param key + a non-escaped key + + @param value + the non-escaped value to be set for the parameter. If there already is a + parameter with this key, the value of its first appearance will be replaced. + Otherwise, a parameter with the given key/value will be appended. + + @throws ::com::sun::star::lang::IllegalArgumentException + if key is empty + + @since OOo 3.0 + */ + void setParameter( [in] string key, [in] string value ) + raises ( ::com::sun::star::lang::IllegalArgumentException ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/uri/XVndSunStarScriptUrlReference.idl b/udkapi/com/sun/star/uri/XVndSunStarScriptUrlReference.idl new file mode 100644 index 0000000000..3ad553935e --- /dev/null +++ b/udkapi/com/sun/star/uri/XVndSunStarScriptUrlReference.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module uri { + +/** + represents absolute “vnd.sun.star.script” URL references. + */ +published interface XVndSunStarScriptUrlReference { + /** + represents the generic features of the URL reference. + + <p>The behaviour of the methods of this interface will always reflect the + fact that the represented URI reference is an absolute + “vnd.sun.star.script” URL reference.</p> + */ + interface XUriReference; + + /** + represents the scheme-specific features of the URL reference. + */ + interface XVndSunStarScriptUrl; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/util/BootstrapMacroExpander.idl b/udkapi/com/sun/star/util/BootstrapMacroExpander.idl new file mode 100644 index 0000000000..975c942859 --- /dev/null +++ b/udkapi/com/sun/star/util/BootstrapMacroExpander.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module util { + + +/** Macro expander expanding using rtl bootstrap notation. + + For details, have a look at + http://udk.openoffice.org/common/man/concept/micro_deployment.html#misc + + The service can be instantiated via arguments giving an ini/rc file url. + Otherwise it will read from a uno.ini/unorc file next to the cppuhelper + library. + + @see theMacroExpander + + @since OOo 1.1.2 +*/ +published service BootstrapMacroExpander +{ + service MacroExpander; + [optional] interface com::sun::star::lang::XInitialization; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/util/MacroExpander.idl b/udkapi/com/sun/star/util/MacroExpander.idl new file mode 100644 index 0000000000..9aaed94f9f --- /dev/null +++ b/udkapi/com/sun/star/util/MacroExpander.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module util { + + +/** This meta service supports the XMacroExpander interface for expanding + arbitrary macro expressions, i.e. substitute macro names. + The purpose of this service is to separate the use of macrofied strings, + e.g. urls from the use of services. + + @see BootstrapMacroExpander + @see theMacroExpander + + @since OOo 1.1.2 + @deprecated rather use the util::theMacroExpander singleton +*/ +published service MacroExpander +{ + interface XMacroExpander; + [optional] interface com::sun::star::lang::XComponent; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/util/XMacroExpander.idl b/udkapi/com/sun/star/util/XMacroExpander.idl new file mode 100644 index 0000000000..33cdce1cdb --- /dev/null +++ b/udkapi/com/sun/star/util/XMacroExpander.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + + +module com { module sun { module star { module util { + + +/** Expands macro in expressions, i.e. substitutes macro names. + + @since OOo 1.1.2 +*/ +published interface XMacroExpander : com::sun::star::uno::XInterface +{ + /** Expands macrofied expressions. + + @param exp + macrofied expression + @return + demacrofied expression + @throws IllegalArgumentException + if a macro name is unknown, thus cannot be expanded + */ + string expandMacros( [in] string exp ) + raises (com::sun::star::lang::IllegalArgumentException); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/util/XVeto.idl b/udkapi/com/sun/star/util/XVeto.idl new file mode 100644 index 0000000000..12ee777599 --- /dev/null +++ b/udkapi/com/sun/star/util/XVeto.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module util { + + +/** provides information about a veto which has been raised against an operation + */ +interface XVeto +{ + /** describes the reason for the veto + */ + [attribute, readonly] string Reason; + + /** provides additional details about the veto. + + <p>The concrete semantics of this attribute is to be defined + in the service implementing this interface.</p> + */ + [attribute, readonly] any Details; +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/udkapi/com/sun/star/util/theMacroExpander.idl b/udkapi/com/sun/star/util/theMacroExpander.idl new file mode 100644 index 0000000000..077b95d568 --- /dev/null +++ b/udkapi/com/sun/star/util/theMacroExpander.idl @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module util { + +/** A service that has to deal with macrofied strings will preprocess those + strings using the macro expander singleton. + The macro expander singleton is deployed with the application. + + This feature is currently used macrofying loader urls with macros defined + in uno.ini/unorc bootstrap files. The component loader uses the macro + expander singleton to expand those macros. This is a flexible way + preprocessing loader urls. + + @see MacroExpander +*/ +published singleton theMacroExpander : XMacroExpander; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |