Overview

Namespaces

  • Net
    • Bazzline
      • Component
        • Locator
          • Configuration
            • Assembler
            • Validator
          • FileExistsStrategy
          • Generator
          • MethodBodyBuilder
          • Process
            • Transformer
              • Assembler
              • FileLoader
              • Generator
            • Validator

Classes

  • Net\Bazzline\Component\Locator\Configuration\Assembler\AbstractAssembler
  • Net\Bazzline\Component\Locator\Configuration\Assembler\FromArrayAssembler
  • Net\Bazzline\Component\Locator\Configuration\Assembler\FromPropelSchemaXmlAssembler
  • Net\Bazzline\Component\Locator\Configuration\Configuration
  • Net\Bazzline\Component\Locator\Configuration\ConfigurationFactory
  • Net\Bazzline\Component\Locator\Configuration\Instance
  • Net\Bazzline\Component\Locator\Configuration\Uses
  • Net\Bazzline\Component\Locator\Configuration\Validator\ReadableFilePath
  • Net\Bazzline\Component\Locator\FileExistsStrategy\AbstractStrategy
  • Net\Bazzline\Component\Locator\FileExistsStrategy\DeleteStrategy
  • Net\Bazzline\Component\Locator\FileExistsStrategy\SuffixWithCurrentTimestampStrategy
  • Net\Bazzline\Component\Locator\Generator\AbstractGenerator
  • Net\Bazzline\Component\Locator\Generator\AbstractInterfaceGenerator
  • Net\Bazzline\Component\Locator\Generator\FactoryInterfaceGenerator
  • Net\Bazzline\Component\Locator\Generator\InvalidArgumentExceptionGenerator
  • Net\Bazzline\Component\Locator\Generator\LocatorGenerator
  • Net\Bazzline\Component\Locator\Generator\LocatorInterfaceGenerator
  • Net\Bazzline\Component\Locator\MethodBodyBuilder\AbstractMethodBodyBuilder
  • Net\Bazzline\Component\Locator\MethodBodyBuilder\FetchFromFactoryInstancePoolBuilder
  • Net\Bazzline\Component\Locator\MethodBodyBuilder\FetchFromSharedInstancePoolBuilder
  • Net\Bazzline\Component\Locator\MethodBodyBuilder\FetchFromSharedInstancePoolOrCreateByFactoryBuilder
  • Net\Bazzline\Component\Locator\MethodBodyBuilder\NewInstanceBuilder
  • Net\Bazzline\Component\Locator\MethodBodyBuilder\PropelQueryCreateBuilder
  • Net\Bazzline\Component\Locator\Process\Transformer\Assembler\ConfigurationAssembler
  • Net\Bazzline\Component\Locator\Process\Transformer\FileLoader\ConfigurationFileLoader
  • Net\Bazzline\Component\Locator\Process\Transformer\FileLoader\IfAvailableBootstrapFileLoader
  • Net\Bazzline\Component\Locator\Process\Transformer\Generator\ArgumentsGenerator
  • Net\Bazzline\Component\Locator\Process\Transformer\Generator\FactoryGenerator
  • Net\Bazzline\Component\Locator\Process\Transformer\Generator\FileExistsStrategyGenerator
  • Net\Bazzline\Component\Locator\Process\Transformer\Generator\InvalidArgumentExceptionFileGenerator
  • Net\Bazzline\Component\Locator\Process\Transformer\Generator\LocatorFileGenerator
  • Net\Bazzline\Component\Locator\Process\Transformer\Generator\LocatorInterfaceFileGenerator
  • Net\Bazzline\Component\Locator\Process\Validator\ArgumentsValidator
  • Net\Bazzline\Component\Locator\Process\Validator\ConfigurationDataValidator
  • Net\Bazzline\Component\Locator\Process\Validator\ConfigurationValidator
  • Net\Bazzline\Component\Locator\Process\Validator\IsCommandLineValidator
  • Net\Bazzline\Component\Locator\ProcessPipeFactory

Interfaces

  • Net\Bazzline\Component\Locator\Configuration\Assembler\AssemblerInterface
  • Net\Bazzline\Component\Locator\FactoryInterface
  • Net\Bazzline\Component\Locator\FileExistsStrategy\FileExistsStrategyInterface
  • Net\Bazzline\Component\Locator\Generator\GeneratorInterface
  • Net\Bazzline\Component\Locator\InstanceDependentInterface
  • Net\Bazzline\Component\Locator\LocatorInterface
  • Net\Bazzline\Component\Locator\MethodBodyBuilder\MethodBodyBuilderInterface

Exceptions

  • Net\Bazzline\Component\Locator\Configuration\Assembler\InvalidArgumentException
  • Net\Bazzline\Component\Locator\Configuration\Assembler\RuntimeException
  • Net\Bazzline\Component\Locator\Configuration\Validator\RuntimeException
  • Net\Bazzline\Component\Locator\Exception
  • Net\Bazzline\Component\Locator\FileExistsStrategy\InvalidArgumentException
  • Net\Bazzline\Component\Locator\FileExistsStrategy\RuntimeException
  • Net\Bazzline\Component\Locator\InvalidArgumentException
  • Net\Bazzline\Component\Locator\MethodBodyBuilder\RuntimeException
  • Net\Bazzline\Component\Locator\RuntimeException
  • 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:  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: 
<?php
/**
 * @author stev leibelt <artodeto@bazzline.net>
 * @since 2014-06-17 
 */

namespace Net\Bazzline\Component\Locator\Generator;

use Net\Bazzline\Component\CodeGenerator\ClassGenerator;
use Net\Bazzline\Component\CodeGenerator\Factory\ClassGeneratorFactory;
use Net\Bazzline\Component\CodeGenerator\Factory\DocumentationGeneratorFactory;
use Net\Bazzline\Component\CodeGenerator\FileGenerator;
use Net\Bazzline\Component\CodeGenerator\Factory\FileGeneratorFactory;
use Net\Bazzline\Component\Locator\Configuration\Configuration;
use Net\Bazzline\Component\Locator\Generator\AbstractGenerator;
use Net\Bazzline\Component\Locator\RuntimeException;

/**
 * Class InvalidArgumentExceptionGenerator
 * @package Net\Bazzline\Component\Locator
 */
class InvalidArgumentExceptionGenerator extends AbstractGenerator
{
    /** @var ClassGeneratorFactory */
    private $classGeneratorFactory;

    /** @var DocumentationGeneratorFactory */
    private $documentationGeneratorFactory;

    /** @var FileGeneratorFactory */
    private $fileGeneratorFactory;

    /**
     * @param \Net\Bazzline\Component\CodeGenerator\Factory\ClassGeneratorFactory $classGeneratorFactory
     * @return $this
     */
    public function setClassGeneratorFactory(ClassGeneratorFactory $classGeneratorFactory)
    {
        $this->classGeneratorFactory = $classGeneratorFactory;

        return $this;
    }

    /**
     * @param \Net\Bazzline\Component\CodeGenerator\Factory\DocumentationGeneratorFactory $documentationGeneratorFactory
     * @return $this
     */
    public function setDocumentationGeneratorFactory(DocumentationGeneratorFactory $documentationGeneratorFactory)
    {
        $this->documentationGeneratorFactory = $documentationGeneratorFactory;

        return $this;
    }

    /**
     * @param \Net\Bazzline\Component\CodeGenerator\Factory\FileGeneratorFactory $fileGeneratorFactory
     * @return $this
     */
    public function setFileGeneratorFactory(FileGeneratorFactory $fileGeneratorFactory)
    {
        $this->fileGeneratorFactory = $fileGeneratorFactory;

        return $this;
    }

    /**
     * @throws RuntimeException
     */
    public function generate()
    {
        $fileName = 'InvalidArgumentException.php';
        $this->moveOldFileIfExists($this->configuration->getFilePath(), $fileName);

        $fileGenerator = $this->createFile($this->fileGeneratorFactory->create());
        $classGenerator = $this->createClass(
            $this->classGeneratorFactory->create(),
            $this->configuration,
            $this->documentationGeneratorFactory
        );

        $fileGenerator->addClass($classGenerator);
        $fileContent = $fileGenerator->generate();

        $fullQualifiedPathName = $this->configuration->getFilePath() .
            DIRECTORY_SEPARATOR . $fileName;
        $this->dumpToFile($fullQualifiedPathName, $fileContent);
    }

    /**
     * @param FileGenerator $fileGenerator
     * @return FileGenerator
     */
    private function createFile(FileGenerator $fileGenerator)
    {
        $fileGenerator->addFileContent(
            array(
                '/**',
                ' * @author Net\Bazzline\Component\Locator',
                ' * @since ' . date('Y-m-d'),
                ' */'
            )
        );

        return $fileGenerator;
    }

    /**
     * @param ClassGenerator $classGenerator
     * @param Configuration $configuration
     * @param DocumentationGeneratorFactory $documentationGeneratorFactory
     * @return ClassGenerator
     */
    private function createClass(ClassGenerator $classGenerator, Configuration $configuration, DocumentationGeneratorFactory $documentationGeneratorFactory)
    {
        $classGenerator->setDocumentation($documentationGeneratorFactory->create());
        $classGenerator->setName('InvalidArgumentException');

        if ($configuration->hasNamespace()) {
            $classGenerator->setNamespace($configuration->getNamespace());
        }

        $classGenerator->addUse('InvalidArgumentException', 'ParentClass');
        $classGenerator->setExtends('ParentClass');

        return $classGenerator;
    }
}
PHP Locator Generator Component by bazzline.net API documentation generated by ApiGen