diff options
Diffstat (limited to 'offapi/com/sun/star/frame/XStorable.idl')
-rw-r--r-- | offapi/com/sun/star/frame/XStorable.idl | 176 |
1 files changed, 176 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 000000000000..6c54b5b84c1c --- /dev/null +++ b/offapi/com/sun/star/frame/XStorable.idl @@ -0,0 +1,176 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_frame_XStorable_idl__ +#define __com_sun_star_frame_XStorable_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +#ifndef __com_sun_star_io_IOException_idl__ +#include <com/sun/star/io/IOException.idl> +#endif + +#ifndef __com_sun_star_beans_PropertyValue_idl__ +#include <com/sun/star/beans/PropertyValue.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module frame { + +//============================================================================= +/** offers a simple way to store a component to an 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 <member>XStorable::storeAsURL()</member> 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 <member>XStorable::store()</member> 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 occured 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 + <member>XStorable::storeAsURL()</member> will throw an exception if a pure + export filter is used, it will accept only combined import/export filters. + For such filters the method <member>XStorable::storeToURL()</member> + 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 <type scope="com::sun::star::document">MediaDescriptor</type> for further details) + + @throws com::sun::star::io::IOException + if an IO error occured 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 occured during save operation + (may the location is unknown) + + @param lArguments + optional parameters for saving + (see <type scope="com::sun::star::document">MediaDescriptor</type> 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 |