/* -*- 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_ucb_ContentInfo_idl__
#define __com_sun_star_ucb_ContentInfo_idl__

#include <com/sun/star/beans/Property.idl>


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

/** A structure for information about contents.

    @see XContentCreator
    @see XCommandProcessor
*/
published struct ContentInfo
{
    /** A type identifier string for a content.

        <p>This is an implementation specific string characterizing the
        kind of a content (e.g. "application/vnd.sun.star.hierarchy-link").
        The value of this member should match the value returned by
        XContent::getContentType() of an appropriate content.
    */
    string Type;

    /** Additional attributes.

        <p>These flags contain extra information on the content, like its kind
        (KIND_FOLDER, KIND_DOCUMENT, KIND_LINK).

        <p>It is highly recommended to fill these flags very accurately, as
        they are very important when transferring contents between different
        ContentProviders.

        <p>The value can be one of the ContentInfoAttribute
           constants.
    */
    long Attributes;

    /** This field contains a list with the properties which must be set at
        a content that was just created using
        XContentCreator::createNewContent() before it can be
        committed (by executing the command "insert" at the new content).

        <p>If one of the properties is missing, the insert command will fail.

        <p>In example, a new file system folder content will need a title. The
        Properties member of the ContentInfo provided for this kind of
        content must include the property "Title".

        <p><b>Important:</b> The required properties must have one of the
        following basic data types (in order to make it possible to implement
        client applications with a small set of generic input methods for the
        values):

        <p>
        <ul>
        <li>boolean
        <li>char
        <li>byte
        <li>string
        <li>short
        <li>long
        <li>hyper
        <li>float
        <li>double
        </ul>
    */
    sequence< com::sun::star::beans::Property > Properties;
};


}; }; }; };

#endif

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