1<?php 2 3/* 4 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 5 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 6 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 7 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 8 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 9 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 10 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 11 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 12 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 13 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 14 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 15 * 16 * This software consists of voluntary contributions made by many individuals 17 * and is licensed under the MIT license. For more information, see 18 * <http://www.doctrine-project.org>. 19 */ 20 21namespace Doctrine\ORM\Cache; 22 23use Doctrine\ORM\PersistentCollection; 24use Doctrine\ORM\Mapping\ClassMetadata; 25 26/** 27 * Hydrator cache entry for collections 28 * 29 * @since 2.5 30 * @author Fabio B. Silva <fabio.bat.silva@gmail.com> 31 */ 32interface CollectionHydrator 33{ 34 /** 35 * @param \Doctrine\ORM\Mapping\ClassMetadata $metadata The entity metadata. 36 * @param \Doctrine\ORM\Cache\CollectionCacheKey $key The cached collection key. 37 * @param array|\Doctrine\Common\Collections\Collection $collection The collection. 38 * 39 * @return \Doctrine\ORM\Cache\CollectionCacheEntry 40 */ 41 public function buildCacheEntry(ClassMetadata $metadata, CollectionCacheKey $key, $collection); 42 43 /** 44 * @param \Doctrine\ORM\Mapping\ClassMetadata $metadata The owning entity metadata. 45 * @param \Doctrine\ORM\Cache\CollectionCacheKey $key The cached collection key. 46 * @param \Doctrine\ORM\Cache\CollectionCacheEntry $entry The cached collection entry. 47 * @param \Doctrine\ORM\PersistentCollection $collection The collection to load the cache into. 48 * 49 * @return array 50 */ 51 public function loadCacheEntry(ClassMetadata $metadata, CollectionCacheKey $key, CollectionCacheEntry $entry, PersistentCollection $collection); 52} 53