/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef __com_sun_star_ucb_FileContent_idl__ #define __com_sun_star_ucb_FileContent_idl__ #ifndef __com_sun_star_lang_XComponent_idl__ #include <com/sun/star/lang/XComponent.idl> #endif #ifndef __com_sun_star_ucb_XContent_idl__ #include <com/sun/star/ucb/XContent.idl> #endif #ifndef __com_sun_star_ucb_XCommandProcessor_idl__ #include <com/sun/star/ucb/XCommandProcessor.idl> #endif #ifndef __com_sun_star_ucb_XCommandProcessor2_idl__ #include <com/sun/star/ucb/XCommandProcessor2.idl> #endif #ifndef __com_sun_star_ucb_XContentCreator_idl__ #include <com/sun/star/ucb/XContentCreator.idl> #endif #ifndef __com_sun_star_beans_XPropertiesChangeNotifier_idl__ #include <com/sun/star/beans/XPropertiesChangeNotifier.idl> #endif #ifndef __com_sun_star_beans_XPropertyContainer_idl__ #include <com/sun/star/beans/XPropertyContainer.idl> #endif #ifndef __com_sun_star_beans_XPropertySetInfoChangeNotifier_idl__ #include <com/sun/star/beans/XPropertySetInfoChangeNotifier.idl> #endif #ifndef __com_sun_star_ucb_XCommandInfoChangeNotifier_idl__ #include <com/sun/star/ucb/XCommandInfoChangeNotifier.idl> #endif #ifndef __com_sun_star_container_XChild_idl__ #include <com/sun/star/container/XChild.idl> #endif //============================================================================= module com { module sun { module star { module ucb { //============================================================================= /** A File Content represents either a directory or a file in the local file system. <p>Whether a content represents a folder or a file can be determined by inspecting its property <b>IsFolder</b> or <b>IsDocument</b>. @see com::sun::star::ucb::FileContentProvider */ published service FileContent { //------------------------------------------------------------------------- /** This interface is implemented according to the specification of service <type>Content</type>. */ interface com::sun::star::lang::XComponent; //------------------------------------------------------------------------- /** This interface is implemented according to the specification of service <type>Content</type>. */ interface com::sun::star::ucb::XContent; //------------------------------------------------------------------------- /** This interface is implemented according to the specification of service <type>Content</type>. <p>An object representing a directory in the file system is able to create a new object, which in turn can become the representation of a physical file/directory being contained in the initial directory. The precise way is the following: <p> <ol> <li> Let the parent folder create a new content by calling <member>XContentCreator::createNewContent</member> on it. The content type to use for new directories is "application/vnd.sun.staroffice.fsys-folder". To create a new file use the type "application/vnd.sun.staroffice.fsys-file". As return value you get a new file content object. </li> <li> Set a title at the new object by letting it execute the command "setPropertyValues", which sets at least the property "Title" to a non-empty value ). </li> <li> Let the new object ( not the parent! ) execute the command "insert". This will create the corresponding physical file or directory. For files, you need to supply the implementation of an <type scope="com::sun::star::io">XInputStream</type> with the command's parameters, that provides access to the stream data. </li> </ol> </p> */ interface com::sun::star::ucb::XContentCreator; //------------------------------------------------------------------------- /** This interface is implemented according to the specification of service <type>Content</type>. <p> <b>Supported Commands</b> <ul> <li> getCommandInfo </li> <li> getPropertySetInfo </li> <li> getPropertyValues </li> <li> setPropertyValues </li> <li> insert ( makes a newly created document persistent ) </li> <li> delete </li> <li> open </li> <li> transfer </li> </ul> <b>Supported Properties</b> <ul> <li> string ContentType ( read-only, either "application/vnd.sun.staroffice.fsys-folder" or "application/vnd.sun.staroffice.fsys-file" ) </li> <li> boolean IsDocument ( read-only, always <true/> for files, always <false/> for directories ) </li> <li> boolean IsFolder ( read-only ), always <false/> for files, always <true/> for directories ) </li> <li> <type scope="com::sun::star::util">DateTime</type> DateModified ( read-only ) </li> <li> boolean IsReadOnly ( read-only attribute ) </li> <li> hyper Size ( file size ) </li> <li> string Title ( file name ) </li> <li> boolean IsVolume ( read-only ) </li> <li> boolean IsRemoveable ( read-only ) </li> <li> boolean IsRemote ( read-only ) </li> <li> boolean IsCompactDisc ( read-only ) </li> <li> boolean IsFloppy ( read-only ) </li> <li> boolean IsHidden ( read-only ) </li> </ul> </p> */ interface com::sun::star::ucb::XCommandProcessor; //------------------------------------------------------------------------- /** is an enhanced version of <type>XCommandProcessor</type> that has an additional method for releasing command identifiers obtained via <member>XCommandProcessor::createCommandIdentifier</member> to avoid resource leaks. For a detailed description of the problem refer to <member>XCommandProcessor2::releaseCommandIdentifier</member>. <p>Where many existing <type>Content</type> implementations do not (yet), every new implementation should support this interface. */ [optional] interface com::sun::star::ucb::XCommandProcessor2; //------------------------------------------------------------------------- /** This interface is implemented according to the specification of service <type>Content</type>. */ interface com::sun::star::beans::XPropertiesChangeNotifier; //------------------------------------------------------------------------- /** This interface is implemented according to the specification of service <type>Content</type>. */ interface com::sun::star::beans::XPropertyContainer; //------------------------------------------------------------------------- /** This interface is implemented according to the specification of service <type>Content</type>. */ interface com::sun::star::beans::XPropertySetInfoChangeNotifier; //------------------------------------------------------------------------- /** This interface is implemented according to the specification of service <type>Content</type>. */ interface com::sun::star::ucb::XCommandInfoChangeNotifier; //------------------------------------------------------------------------- /** This interface is implemented according to the specification of service <type>Content</type>. */ interface com::sun::star::container::XChild; }; //============================================================================= }; }; }; }; #endif