Overview

Namespaces

  • Net
    • Bazzline
      • UniqueNumberRepository
        • Application
          • Service
        • Domain
          • Model
        • Infrastructure
          • Storage

Classes

  • Net\Bazzline\UniqueNumberRepository\Application\Service\ApplicationLocator
  • Net\Bazzline\UniqueNumberRepository\Application\Service\NumberEnumerator
  • Net\Bazzline\UniqueNumberRepository\Application\Service\UniqueNumberEnumeratorFactory
  • Net\Bazzline\UniqueNumberRepository\Domain\Model\RepositoryRequest
  • Net\Bazzline\UniqueNumberRepository\Domain\Model\UniqueNumberRequest
  • Net\Bazzline\UniqueNumberRepository\Infrastructure\Storage\AbstractStorage
  • Net\Bazzline\UniqueNumberRepository\Infrastructure\Storage\AbstractStorageFactory
  • Net\Bazzline\UniqueNumberRepository\Infrastructure\Storage\RepositoryStorage
  • Net\Bazzline\UniqueNumberRepository\Infrastructure\Storage\RepositoryStorageFactory
  • Net\Bazzline\UniqueNumberRepository\Infrastructure\Storage\UniqueNumberStorage
  • Net\Bazzline\UniqueNumberRepository\Infrastructure\Storage\UniqueNumberStorageFactory

Exceptions

  • Net\Bazzline\UniqueNumberRepository\Application\Service\InvalidArgumentException
  • Overview
  • Namespace
  • Class
 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: 
<?php
/**
 * @author stev leibelt <artodeto@bazzline.net>
 * @since 2015-09-12
 */
namespace Net\Bazzline\UniqueNumberRepository\Infrastructure\Storage;

use Net\Bazzline\UniqueNumberRepository\Domain\Model\RepositoryRequest;

/**
 * Class RepositoryStorage
 * @package Net\Bazzline\UniqueNumberRepository\Infrastructure\Storage
 */
class RepositoryStorage extends AbstractStorage
{
    const KEY_APPLICANT_NAME    = 'applicant_name';
    const KEY_NAME              = 'name';
    CONST KEY_OCCURRED_ON       = 'occurred_on';

    //begin of overridden methods
    /**
     * @param bool|true $resetRuntimeProperties
     * @return array|RepositoryRequest[]
     */
    public function readMany($resetRuntimeProperties = true)
    {
        $collection = array();
        $content    = parent::readMany($resetRuntimeProperties);

        foreach ($content as $data) {
            $collection[] = new RepositoryRequest(
                $data[self::KEY_APPLICANT_NAME],
                $data[self::KEY_NAME],
                $this->createDateTimeFromTimestamp($data[self::KEY_OCCURRED_ON])
            );
        }

        return $collection;
    }
    //end of overridden methods

    /**
     * @param string $name
     * @return $this
     */
    public function filterByApplicantName($name)
    {
        return $this->filterBy(self::KEY_APPLICANT_NAME, $name);
    }

    /**
     * @param string $name
     * @return $this
     */
    public function filterByName($name)
    {
        return $this->filterBy(self::KEY_NAME, $name);
    }

    /**
     * @param RepositoryRequest $request
     * @param bool|false $resetRuntimeProperties
     * @return string
     */
    public function createFrom(RepositoryRequest $request, $resetRuntimeProperties = false)
    {
        return $this->create(
            array(
                self::KEY_APPLICANT_NAME    => $request->applicantName(),
                self::KEY_NAME              => $request->name(),
                self::KEY_OCCURRED_ON       => $request->occurredOn()->getTimestamp()
            ),
            $resetRuntimeProperties
        );
    }
}
PHP Unique Number Repository (REST based server and cli based client) by bazzline.net API documentation generated by ApiGen