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 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
<?php
/* --------------------------------------------------------------
ProductImage.inc.php 2016-03-22
Gambio GmbH
http://www.gambio.de
Copyright (c) 2016 Gambio GmbH
Released under the GNU General Public License (Version 2)
[http://www.gnu.org/licenses/gpl-2.0.html]
--------------------------------------------------------------
*/
/**
* Class ProductImage
*
* @category System
* @package Product
* @subpackage Entities
*/
class ProductImage implements ProductImageInterface
{
/**
* Filename of the product image
*
* @var string
*/
protected $filename;
/**
* Alt texts of the image.
*
* @var array
*/
protected $altTexts = array();
/**
* Is the product image visible?
*
* @var bool
*/
protected $visibility = true;
/**
* ProductImage constructor.
*
* @param FilenameStringType $filename Filename of the image.
*/
public function __construct(FilenameStringType $filename)
{
$this->filename = $filename->asString();
}
/**
* Get Filename
*
* Returns the filename of the product.
*
* @return string The filename of the product.
*/
public function getFilename()
{
return $this->filename;
}
/**
* Get Alt Text
*
* Returns the alternative text of a product image.
*
* @param LanguageCode $language The language code of the alt text to return.
*
* @throws InvalidArgumentException if the language code is not valid.
*
* @return string The alternative text of the product image.
*/
public function getAltText(LanguageCode $language)
{
if(!array_key_exists($language->asString(), $this->altTexts))
{
throw new InvalidArgumentException($language->asString() . ' is not a valid key.');
}
return $this->altTexts[$language->asString()];
}
/**
* Is Visible
*
* Checks if the product image is set to visible or not.
*
* @return bool Is the product image visible?
*/
public function isVisible()
{
return $this->visibility;
}
/**
* Set Alt Text
*
* Sets the alternative text of the product image.
*
* @param StringType $text The alternative text for the product image.
* @param LanguageCode $language The language code of the alternative text.
*
* @return string The alternative text of the product image.
*/
public function setAltText(StringType $text, LanguageCode $language)
{
$this->altTexts[$language->asString()] = $text->asString();
}
/**
* Set Visible
*
* Activates or deactivates the products image visibility.
*
* @param BoolType $visible Should the product image be visible?
*
* @return ProductImageInterface Same instance for chained method calls.
*/
public function setVisible(BoolType $visible)
{
$this->visibility = $visible->asBool();
}
}