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: 
<?php
/**
 * @author stev leibelt <artodeto@bazzline.net>
 * @since 2015-05-31 
 */

namespace Net\Bazzline\Component\Locator\Process\Validator;

use Net\Bazzline\Component\Locator\Configuration\Configuration;
use Net\Bazzline\Component\ProcessPipe\ExecutableException;
use Net\Bazzline\Component\ProcessPipe\ExecutableInterface;

class ConfigurationValidator implements ExecutableInterface
{
    /**
     * @param array $input
     * @return array
     * @throws ExecutableException
     */
    public function execute($input = null)
    {
        if (!is_array($input)) {
            throw new ExecutableException(
                'input must be an array'
            );
        }

        if (!($input['configuration'] instanceof Configuration)) {
            throw new ExecutableException(
                'input must an instance of Configuration'
            );
        }
        /** @var Configuration $configuration */
        $configuration  = $input['configuration'];
        $path           = $configuration->getFilePath();

        if (is_file($path)) {
            $message = 'provided path "' . $path . '" is an existing file';

            throw new ExecutableException($message);
        }

        if (!is_dir($path)) {
            $couldNotCreateNotExistingDirectory = !(mkdir($path));

            if ($couldNotCreateNotExistingDirectory) {
                $message = 'could not create directory "' . $path . '"';

                throw new ExecutableException($message);
            }
        }

        if (!is_writable($path)) {
            $message = 'provided directory "' . $path . '" is not writable';

            throw new ExecutableException($message);
        }

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