name: PropertyAccessorBuilder
class_comment: "# * A configurable builder to create a PropertyAccessor.\n# *\n# *\
  \ @author J\xE9r\xE9mie Augustin <jeremie.augustin@pixel-cookers.com>"
dependencies:
- name: CacheItemPoolInterface
  type: class
  source: Psr\Cache\CacheItemPoolInterface
- name: PropertyReadInfoExtractorInterface
  type: class
  source: Symfony\Component\PropertyInfo\PropertyReadInfoExtractorInterface
- name: PropertyWriteInfoExtractorInterface
  type: class
  source: Symfony\Component\PropertyInfo\PropertyWriteInfoExtractorInterface
properties: []
methods:
- name: enableMagicMethods
  visibility: public
  parameters: []
  comment: "# * A configurable builder to create a PropertyAccessor.\n# *\n# * @author\
    \ J\xE9r\xE9mie Augustin <jeremie.augustin@pixel-cookers.com>\n# */\n# class PropertyAccessorBuilder\n\
    # {\n# private int $magicMethods = PropertyAccessor::MAGIC_GET | PropertyAccessor::MAGIC_SET;\n\
    # private bool $throwExceptionOnInvalidIndex = false;\n# private bool $throwExceptionOnInvalidPropertyPath\
    \ = true;\n# private ?CacheItemPoolInterface $cacheItemPool = null;\n# private\
    \ ?PropertyReadInfoExtractorInterface $readInfoExtractor = null;\n# private ?PropertyWriteInfoExtractorInterface\
    \ $writeInfoExtractor = null;\n# \n# /**\n# * Enables the use of all magic methods\
    \ by the PropertyAccessor.\n# *\n# * @return $this"
- name: disableMagicMethods
  visibility: public
  parameters: []
  comment: '# * Disable the use of all magic methods by the PropertyAccessor.

    # *

    # * @return $this'
- name: enableMagicCall
  visibility: public
  parameters: []
  comment: '# * Enables the use of "__call" by the PropertyAccessor.

    # *

    # * @return $this'
- name: enableMagicGet
  visibility: public
  parameters: []
  comment: '# * Enables the use of "__get" by the PropertyAccessor.'
- name: enableMagicSet
  visibility: public
  parameters: []
  comment: '# * Enables the use of "__set" by the PropertyAccessor.

    # *

    # * @return $this'
- name: disableMagicCall
  visibility: public
  parameters: []
  comment: '# * Disables the use of "__call" by the PropertyAccessor.

    # *

    # * @return $this'
- name: disableMagicGet
  visibility: public
  parameters: []
  comment: '# * Disables the use of "__get" by the PropertyAccessor.

    # *

    # * @return $this'
- name: disableMagicSet
  visibility: public
  parameters: []
  comment: '# * Disables the use of "__set" by the PropertyAccessor.

    # *

    # * @return $this'
- name: isMagicCallEnabled
  visibility: public
  parameters: []
  comment: '# * @return bool whether the use of "__call" by the PropertyAccessor is
    enabled'
- name: isMagicGetEnabled
  visibility: public
  parameters: []
  comment: '# * @return bool whether the use of "__get" by the PropertyAccessor is
    enabled'
- name: isMagicSetEnabled
  visibility: public
  parameters: []
  comment: '# * @return bool whether the use of "__set" by the PropertyAccessor is
    enabled'
- name: enableExceptionOnInvalidIndex
  visibility: public
  parameters: []
  comment: '# * Enables exceptions when reading a non-existing index.

    # *

    # * This has no influence on writing non-existing indices with PropertyAccessorInterface::setValue()

    # * which are always created on-the-fly.

    # *

    # * @return $this'
- name: disableExceptionOnInvalidIndex
  visibility: public
  parameters: []
  comment: '# * Disables exceptions when reading a non-existing index.

    # *

    # * Instead, null is returned when calling PropertyAccessorInterface::getValue()
    on a non-existing index.

    # *

    # * @return $this'
- name: isExceptionOnInvalidIndexEnabled
  visibility: public
  parameters: []
  comment: '# * @return bool whether an exception is thrown or null is returned when
    reading a non-existing index'
- name: enableExceptionOnInvalidPropertyPath
  visibility: public
  parameters: []
  comment: '# * Enables exceptions when reading a non-existing property.

    # *

    # * This has no influence on writing non-existing indices with PropertyAccessorInterface::setValue()

    # * which are always created on-the-fly.

    # *

    # * @return $this'
- name: disableExceptionOnInvalidPropertyPath
  visibility: public
  parameters: []
  comment: '# * Disables exceptions when reading a non-existing index.

    # *

    # * Instead, null is returned when calling PropertyAccessorInterface::getValue()
    on a non-existing index.

    # *

    # * @return $this'
- name: isExceptionOnInvalidPropertyPath
  visibility: public
  parameters: []
  comment: '# * @return bool whether an exception is thrown or null is returned when
    reading a non-existing property'
- name: setCacheItemPool
  visibility: public
  parameters:
  - name: cacheItemPool
  comment: '# * Sets a cache system.

    # *

    # * @return $this'
- name: getCacheItemPool
  visibility: public
  parameters: []
  comment: '# * Gets the used cache system.'
- name: setReadInfoExtractor
  visibility: public
  parameters:
  - name: readInfoExtractor
  comment: '# * @return $this'
- name: getReadInfoExtractor
  visibility: public
  parameters: []
  comment: null
- name: setWriteInfoExtractor
  visibility: public
  parameters:
  - name: writeInfoExtractor
  comment: '# * @return $this'
- name: getWriteInfoExtractor
  visibility: public
  parameters: []
  comment: null
- name: getPropertyAccessor
  visibility: public
  parameters: []
  comment: '# * Builds and returns a new PropertyAccessor object.'
traits:
- Psr\Cache\CacheItemPoolInterface
- Symfony\Component\PropertyInfo\PropertyReadInfoExtractorInterface
- Symfony\Component\PropertyInfo\PropertyWriteInfoExtractorInterface
interfaces: []