/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */


module com { module sun { module star { module ucb {

/** The Hierarchy Content Provider (HCP) implements a
    ContentProvider for the UniversalContentBroker
    (UCB).

    <p>It provides access to a persistent, customizable hierarchy of contents
    (folders and links).

    @see com::sun::star::ucb::Content
*/
published service HierarchyContentProvider
{
    /** provides three types of contents: Link, Folder and Root Folder.

        <p>

        <b>HCP Contents</b>
        <ol>
        <li>
        A HCP Link (HierarchyLinkContent) is a content which
        points to another (UCB) content. It is always contained in HCP Folder.
        A HCP Link has no children.
        </li>
        <li>
        A HCP Folder (HierarchyFolderContent) is a container for
        other HCP Folders and HCP Links.
        </li>
        <li>
        There is at most one instance of a HCP Root Folder
        ( HierarchyRootFolderContent ) at a time.
        All other HCP contents are children of this folder. The HCP Root
        Folder can contain HCP Folders and HCP Links. It has the URL
        "vnd.sun.star.hier:/".
        </li>
        </ol>

        <p><b>URL Scheme for HCP Contents</b>

        <p>Each HCP content has an identifier corresponding to the following
        scheme:

        <ul>
        <li>
            vnd.sun.star.hier:/&lt;path&gt;, where &lt;path&gt; is a
            hierarchical path of the form &lt;name&gt;/.../&lt;name&gt; and
            where &lt;name&gt; is a string encoded according to the URL
            conventions.
        </li>
        </ul>

        <p>Examples:

        <ul>
        <li>
        vnd.sun.star.hier:/ (The URL of the HCP Root Folder)
        </li>
        <li>
        vnd.sun.star.hier:/Bookmarks/Sun%20Microsystems%20Home%20Page
        </li>
        <li>
        vnd.sun.star.hier:/Workplace/Printers
        </li>
        </ul>

        </p>
     */
    interface com::sun::star::ucb::XContentProvider;
};


}; }; }; };

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
