1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 
<?php

/* --------------------------------------------------------------
   ProductImageContainerInterface.php 2015-12-29
   Gambio GmbH
   http://www.gambio.de
   Copyright (c) 2015 Gambio GmbH
   Released under the GNU General Public License (Version 2)
   [http://www.gnu.org/licenses/gpl-2.0.html]
   --------------------------------------------------------------
*/

/**
 * Interface ProductImageContainerInterface
 *
 * @category   System
 * @package    Product
 * @subpackage Interfaces
 */
interface ProductImageContainerInterface
{
    /**
     * Sets the primary image of the image container.
     *
     * @param ProductImageInterface $image Primary product image to set.
     *
     * @return ProductImageContainerInterface Same instance for chained method calls.
     */
    public function setPrimary(ProductImageInterface $image);
    
    
    /**
     * Returns the primary product image from the image container.
     *
     * @return ProductImageInterface The requested primary product image from container.
     */
    public function getPrimary();
    

    /**
     * Adds an additional image to the container.
     *
     * @param ProductImageInterface $image Additional product image to add to the container.
     *
     * @return ProductImageContainerInterface Same instance for chained method calls.
     */
    public function addAdditional(ProductImageInterface $image);


    /**
     * Returns the collection of additional images from the image container.
     *
     * @return ProductImageCollection The requested additional images from the image container.
     */
    public function getAdditionals();


    /**
     * Replaces an additional product image in the container.
     *
     * @param FilenameStringType    $imageFile Image filename.
     * @param ProductImageInterface $image     Image to place.
     *
     * @return ProductImageContainerInterface Same instance for chained method calls.
     */
    public function replaceAdditional(FilenameStringType $imageFile, ProductImageInterface $image);


    /**
     * Deletes an image from the image container.
     *
     * @param FilenameStringType $imageFile Image filename.
     *
     * @return ProductImageContainerInterface Same instance for chained method calls.
     */
    public function delete(FilenameStringType $imageFile);
}