summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/frame/XStorable.idl
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/frame/XStorable.idl')
-rw-r--r--offapi/com/sun/star/frame/XStorable.idl156
1 files changed, 156 insertions, 0 deletions
diff --git a/offapi/com/sun/star/frame/XStorable.idl b/offapi/com/sun/star/frame/XStorable.idl
new file mode 100644
index 000000000..60e8239e0
--- /dev/null
+++ b/offapi/com/sun/star/frame/XStorable.idl
@@ -0,0 +1,156 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_frame_XStorable_idl__
+#define __com_sun_star_frame_XStorable_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/io/IOException.idl>
+#include <com/sun/star/beans/PropertyValue.idl>
+
+
+
+ module com { module sun { module star { module frame {
+
+/** offers a simple way to store a component to a URL.
+
+ <p>
+ It is usually only useful for two cases:
+ </p>
+ <ol>
+ <li>
+ Large components which are wrapped up in UNO interfaces
+ and for which distinct filters are not available separately as
+ components.
+ </li>
+ <li>
+ Very small components for which only one or very few hard
+ coded file format filters make sense or even exist.
+ </li>
+ </ol>
+ */
+published interface XStorable: com::sun::star::uno::XInterface
+{
+ /** The object may know the location because it was loaded from there,
+ or because it is stored there.
+
+ @returns
+ `TRUE` if the object knows a location where it is persistent
+ `FALSE` otherwise
+ */
+ boolean hasLocation();
+
+ /** After XStorable::storeAsURL() it returns the
+ URL the object was stored to.
+
+ @returns
+ the URL of the resource which is represented by this object.
+ */
+ string getLocation();
+
+ /** It is not possible to call XStorable::store() successfully
+ when the data store is read-only.
+
+ @returns
+ `TRUE` if the data store is readonly or opened readonly
+ `FALSE` otherwise
+ */
+ boolean isReadonly();
+
+ /** stores the data to the URL from which it was loaded.
+
+ <p>Only objects which know their locations can be stored.</p>
+
+ @throws com::sun::star::io::IOException
+ if an IO error occurred during save operation
+ (may the location is unknown)
+
+ @see XStorable::storeAsURL
+ @see XStorable::storeToURL
+ */
+ void store()
+ raises( com::sun::star::io::IOException );
+
+ /** stores the object's persistent data to a URL and
+ makes this URL the new location of the object.
+
+ <p>This is the normal behavior for UI's "save-as" feature.</p>
+
+ <p>The change of the location makes it necessary to store the document in
+ a format that the object can load. For this reason the implementation of
+ XStorable::storeAsURL() will throw an exception if a pure
+ export filter is used, it will accept only combined import/export filters.
+ For such filters the method XStorable::storeToURL()
+ must be used that does not change the location of the object.</p>
+
+ @param sURL
+ specifies the new location of this component
+
+ @param lArguments
+ optional parameters for saving
+ (see com::sun::star::document::MediaDescriptor for further details)
+
+ @throws com::sun::star::io::IOException
+ if an IO error occurred during save operation
+ (may the location is unknown)
+
+ @see XStorable::store
+ @see XStorable::storeToURL
+ @see com::sun::star::document::MediaDescriptor
+ */
+ void storeAsURL(
+ [in] string sURL,
+ [in] sequence<com::sun::star::beans::PropertyValue> lArguments )
+ raises( com::sun::star::io::IOException );
+
+ /** stores the object's persistent data to a URL and
+ continues to be a representation of the old URL.
+
+ <p>This is the normal behavior for UI's export feature.</p>
+
+ <p>This method accepts all kinds of export filters, not only combined
+ import/export filters because it implements an exporting capability, not a
+ persistence capability.</p>
+
+ @throws com::sun::star::io::IOException
+ if an IO error occurred during save operation
+ (may the location is unknown)
+
+ @param sURL
+ specifies the location where to store the object
+
+ @param lArguments
+ optional parameters for saving
+ (see com::sun::star::document::MediaDescriptor for further details)
+
+ @see XStorable::store
+ @see XStorable::storeAsURL
+ @see com::sun::star::document::MediaDescriptor
+ */
+ void storeToURL(
+ [in] string sURL,
+ [in] sequence<com::sun::star::beans::PropertyValue> lArguments )
+ raises( com::sun::star::io::IOException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */