1<?php
2
3declare(strict_types=1);
4
5namespace Sabre\DAV;
6
7/**
8 * IMultiGet.
9 *
10 * This interface adds a tiny bit of functionality to collections.
11 *
12 * There a certain situations, in particular in relation to WebDAV-Sync, CalDAV
13 * and CardDAV, where information for a list of items will be requested.
14 *
15 * Because the getChild() call is the main abstraction method, this can in
16 * reality result in many database calls, which could potentially be
17 * optimized.
18 *
19 * The MultiGet interface is used by the server in these cases.
20 *
21 * @copyright Copyright (C) fruux GmbH (https://fruux.com/)
22 * @author Evert Pot (http://evertpot.com/)
23 * @license http://sabre.io/license/ Modified BSD License
24 */
25interface IMultiGet extends ICollection
26{
27    /**
28     * This method receives a list of paths in it's first argument.
29     * It must return an array with Node objects.
30     *
31     * If any children are not found, you do not have to return them.
32     *
33     * @param string[] $paths
34     *
35     * @return array
36     */
37    public function getMultipleChildren(array $paths);
38}
39