/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */

#include "nsILocalFile.idl"

interface nsIArray;

[scriptable, uuid(26de2089-239d-4697-818b-bae1fe8e8e0d)]
interface nsILocalFileOS2 : nsILocalFile
{
   /**
    * getFileTypes
    *
    * Returns the file's .TYPE extended attribute as an array of
    * nsISupportsCStrings.
    *
    */
    nsIArray getFileTypes( );

   /**
    * setFileTypes
    *
    * Sets the file's .TYPE extended attribute from a comma-separated
    * list of types (this format is used because clients are unlikely
    * to write more than a single type).
    *   @param fileTypes
    *       a string in the filesystem's native character set
    *
    */
    void setFileTypes( in ACString fileTypes );

   /**
    * isFileType
    *
    * Returns TRUE if the file has a .TYPE extended attribute that
    * matches the string passed in.  The comparison is case-sensitive.
    *   @param fileType
    *       a string in the filesystem's native character set
    *
    */
    boolean isFileType( in ACString fileType );

   /**
    * setFileSource
    *
    * Identifies the origin of a downloaded file by writing the
    * source URI's spec to the .SUBJECT extended attribute.
    *
    *   @param aURI
    *       the source URI
    *
    */
    void setFileSource( in AUTF8String aURI );
};
