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