1<?php
2
3namespace Sabre\DAV;
4
5/**
6 * IProperties interface
7 *
8 * Implement this interface to support custom WebDAV properties requested and sent from clients.
9 *
10 * @copyright Copyright (C) fruux GmbH (https://fruux.com/)
11 * @author Evert Pot (http://evertpot.com/)
12 * @license http://sabre.io/license/ Modified BSD License
13 */
14interface IProperties extends INode {
15
16    /**
17     * Updates properties on this node.
18     *
19     * This method received a PropPatch object, which contains all the
20     * information about the update.
21     *
22     * To update specific properties, call the 'handle' method on this object.
23     * Read the PropPatch documentation for more information.
24     *
25     * @param PropPatch $propPatch
26     * @return void
27     */
28    function propPatch(PropPatch $propPatch);
29
30    /**
31     * Returns a list of properties for this nodes.
32     *
33     * The properties list is a list of propertynames the client requested,
34     * encoded in clark-notation {xmlnamespace}tagname
35     *
36     * If the array is empty, it means 'all properties' were requested.
37     *
38     * Note that it's fine to liberally give properties back, instead of
39     * conforming to the list of requested properties.
40     * The Server class will filter out the extra.
41     *
42     * @param array $properties
43     * @return array
44     */
45    function getProperties($properties);
46
47}
48