1<?php
2
3namespace Sabre\DAV;
4
5/**
6 * The IExtendedCollection interface.
7 *
8 * This interface can be used to create special-type of collection-resources
9 * as defined by RFC 5689.
10 *
11 * @copyright Copyright (C) fruux GmbH (https://fruux.com/)
12 * @author Evert Pot (http://evertpot.com/)
13 * @license http://sabre.io/license/ Modified BSD License
14 */
15interface IExtendedCollection extends ICollection {
16
17    /**
18     * Creates a new collection.
19     *
20     * This method will receive a MkCol object with all the information about
21     * the new collection that's being created.
22     *
23     * The MkCol object contains information about the resourceType of the new
24     * collection. If you don't support the specified resourceType, you should
25     * throw Exception\InvalidResourceType.
26     *
27     * The object also contains a list of WebDAV properties for the new
28     * collection.
29     *
30     * You should call the handle() method on this object to specify exactly
31     * which properties you are storing. This allows the system to figure out
32     * exactly which properties you didn't store, which in turn allows other
33     * plugins (such as the propertystorage plugin) to handle storing the
34     * property for you.
35     *
36     * @param string $name
37     * @param MkCol $mkCol
38     * @throws Exception\InvalidResourceType
39     * @return void
40     */
41    function createExtendedCollection($name, MkCol $mkCol);
42
43}
44