_init(\Magento\Downloadable\Model\ResourceModel\Link::class); parent::_construct(); } /** * @return $this */ public function afterSave() { $this->getResource()->saveItemTitleAndPrice($this); return parent::afterSave(); } /** * Retrieve base temporary path * * @return string */ public function getBaseTmpPath() { return 'downloadable/tmp/links'; } /** * Retrieve Base files path * * @return string */ public function getBasePath() { return 'downloadable/files/links'; } /** * Retrieve base sample temporary path * * @return string */ public function getBaseSampleTmpPath() { return 'downloadable/tmp/link_samples'; } /** * Retrieve base sample path * * @return string */ public function getBaseSamplePath() { return 'downloadable/files/link_samples'; } /** * Retrieve links searchable data * * @param int $productId * @param int $storeId * @return array */ public function getSearchableData($productId, $storeId) { return $this->_getResource()->getSearchableData($productId, $storeId); } /** * {@inheritdoc} * @codeCoverageIgnore */ public function getTitle() { return $this->getData(self::KEY_TITLE); } /** * {@inheritdoc} * @codeCoverageIgnore */ public function getPrice() { return $this->getData(self::KEY_PRICE); } /** * {@inheritdoc} * @codeCoverageIgnore */ public function getIsShareable() { return $this->getData(self::KEY_IS_SHAREABLE); } /** * {@inheritdoc} * @codeCoverageIgnore */ public function getSortOrder() { return $this->getData(self::KEY_SORT_ORDER); } /** * {@inheritdoc} * @codeCoverageIgnore */ public function getNumberOfDownloads() { return $this->getData(self::KEY_NUMBER_OF_DOWNLOADS); } /** * {@inheritdoc} * @codeCoverageIgnore */ public function getLinkType() { return $this->getData(self::KEY_LINK_TYPE); } /** * {@inheritdoc} * @codeCoverageIgnore */ public function getLinkFile() { return $this->getData(self::KEY_LINK_FILE); } /** * Return file content * * @return \Magento\Downloadable\Api\Data\File\ContentInterface|null */ public function getLinkFileContent() { return $this->getData(self::KEY_LINK_FILE_CONTENT); } /** * {@inheritdoc} * @codeCoverageIgnore */ public function getLinkUrl() { return $this->getData(self::KEY_LINK_URL); } /** * {@inheritdoc} * @codeCoverageIgnore */ public function getSampleType() { return $this->getData(self::KEY_SAMPLE_TYPE); } /** * {@inheritdoc} * @codeCoverageIgnore */ public function getSampleFile() { return $this->getData(self::KEY_SAMPLE_FILE); } /** * Return sample file content when type is 'file' * * @return \Magento\Downloadable\Api\Data\File\ContentInterface|null relative file path */ public function getSampleFileContent() { return $this->getData(self::KEY_SAMPLE_FILE_CONTENT); } /** * {@inheritdoc} * @codeCoverageIgnore */ public function getSampleUrl() { return $this->getData(self::KEY_SAMPLE_URL); } //@codeCoverageIgnoreStart /** * @param string $title * @return $this */ public function setTitle($title) { return $this->setData(self::KEY_TITLE, $title); } /** * @param int $sortOrder * @return $this */ public function setSortOrder($sortOrder) { return $this->setData(self::KEY_SORT_ORDER, $sortOrder); } /** * @param int $isShareable * @return $this */ public function setIsShareable($isShareable) { return $this->setData(self::KEY_IS_SHAREABLE, $isShareable); } /** * Set link price * * @param float $price * @return $this */ public function setPrice($price) { return $this->setData(self::KEY_PRICE, $price); } /** * Set number of downloads per user * Null for unlimited downloads * * @param int $numberOfDownloads * @return $this */ public function setNumberOfDownloads($numberOfDownloads) { return $this->setData(self::KEY_NUMBER_OF_DOWNLOADS, $numberOfDownloads); } /** * @param string $linkType * @return $this */ public function setLinkType($linkType) { return $this->setData(self::KEY_LINK_TYPE, $linkType); } /** * Set file path or null when type is 'url' * * @param string $linkFile * @return $this */ public function setLinkFile($linkFile) { return $this->setData(self::KEY_LINK_FILE, $linkFile); } /** * Set file content * * @param \Magento\Downloadable\Api\Data\File\ContentInterface $linkFileContent * @return $this */ public function setLinkFileContent(\Magento\Downloadable\Api\Data\File\ContentInterface $linkFileContent = null) { return $this->setData(self::KEY_LINK_FILE_CONTENT, $linkFileContent); } /** * Set URL * * @param string $linkUrl * @return $this */ public function setLinkUrl($linkUrl) { return $this->setData(self::KEY_LINK_URL, $linkUrl); } /** * @param string $sampleType * @return $this */ public function setSampleType($sampleType) { return $this->setData(self::KEY_SAMPLE_TYPE, $sampleType); } /** * Set file path * * @param string $sampleFile * @return $this */ public function setSampleFile($sampleFile) { return $this->setData(self::KEY_SAMPLE_FILE, $sampleFile); } /** * Set sample file content * * @param \Magento\Downloadable\Api\Data\File\ContentInterface $sampleFileContent * @return $this */ public function setSampleFileContent( \Magento\Downloadable\Api\Data\File\ContentInterface $sampleFileContent = null ) { return $this->setData(self::KEY_SAMPLE_FILE_CONTENT, $sampleFileContent); } /** * Set URL * * @param string $sampleUrl * @return $this */ public function setSampleUrl($sampleUrl) { return $this->setData(self::KEY_SAMPLE_URL, $sampleUrl); } /** * {@inheritdoc} * * @return \Magento\Downloadable\Api\Data\LinkExtensionInterface|null */ public function getExtensionAttributes() { return $this->_getExtensionAttributes(); } /** * {@inheritdoc} * * @param \Magento\Downloadable\Api\Data\LinkExtensionInterface $extensionAttributes * @return $this */ public function setExtensionAttributes(\Magento\Downloadable\Api\Data\LinkExtensionInterface $extensionAttributes) { return $this->_setExtensionAttributes($extensionAttributes); } //@codeCoverageIgnoreEnd }