namespace Magento\Catalog\Api\Data;

/**
 * Extension class for @see \Magento\Catalog\Api\Data\ProductInterface
 */
class ProductExtension extends \Magento\Framework\Api\AbstractSimpleObject implements ProductExtensionInterface
{
    /**
     * @return string|null
     */
    public function getStringAttribute()
    {
        return $this->_get('string_attribute');
    }

    /**
     * @param string $stringAttribute
     * @return $this
     */
    public function setStringAttribute($stringAttribute)
    {
        $this->setData('string_attribute', $stringAttribute);
        return $this;
    }

    /**
     * @return \Magento\Bundle\Api\Data\OptionInterface[]|null
     */
    public function getComplexObjectAttribute()
    {
        return $this->_get('complex_object_attribute');
    }

    /**
     * @param \Magento\Bundle\Api\Data\OptionInterface[] $complexObjectAttribute
     * @return $this
     */
    public function setComplexObjectAttribute($complexObjectAttribute)
    {
        $this->setData('complex_object_attribute', $complexObjectAttribute);
        return $this;
    }

    /**
     * @return \Magento\Bundle\Api\Data\BundleOptionInterface|null
     */
    public function getComplexObjectAttributeWithTypeDeclaration()
    {
        return $this->_get('complex_object_attribute_with_type_declaration');
    }

    /**
     * @param \Magento\Bundle\Api\Data\BundleOptionInterface $complexObjectAttributeWithTypeDeclaration
     * @return $this
     */
    public function setComplexObjectAttributeWithTypeDeclaration(\Magento\Bundle\Api\Data\BundleOptionInterface $complexObjectAttributeWithTypeDeclaration)
    {
        $this->setData('complex_object_attribute_with_type_declaration', $complexObjectAttributeWithTypeDeclaration);
        return $this;
    }
}