comparison vendor/symfony/console/Descriptor/Descriptor.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 1fec387a4317
comparison
equal deleted inserted replaced
-1:000000000000 0:4c8ae668cc8c
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12 namespace Symfony\Component\Console\Descriptor;
13
14 use Symfony\Component\Console\Application;
15 use Symfony\Component\Console\Command\Command;
16 use Symfony\Component\Console\Input\InputArgument;
17 use Symfony\Component\Console\Input\InputDefinition;
18 use Symfony\Component\Console\Input\InputOption;
19 use Symfony\Component\Console\Output\OutputInterface;
20 use Symfony\Component\Console\Exception\InvalidArgumentException;
21
22 /**
23 * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
24 *
25 * @internal
26 */
27 abstract class Descriptor implements DescriptorInterface
28 {
29 /**
30 * @var OutputInterface
31 */
32 protected $output;
33
34 /**
35 * {@inheritdoc}
36 */
37 public function describe(OutputInterface $output, $object, array $options = array())
38 {
39 $this->output = $output;
40
41 switch (true) {
42 case $object instanceof InputArgument:
43 $this->describeInputArgument($object, $options);
44 break;
45 case $object instanceof InputOption:
46 $this->describeInputOption($object, $options);
47 break;
48 case $object instanceof InputDefinition:
49 $this->describeInputDefinition($object, $options);
50 break;
51 case $object instanceof Command:
52 $this->describeCommand($object, $options);
53 break;
54 case $object instanceof Application:
55 $this->describeApplication($object, $options);
56 break;
57 default:
58 throw new InvalidArgumentException(sprintf('Object of type "%s" is not describable.', get_class($object)));
59 }
60 }
61
62 /**
63 * Writes content to output.
64 *
65 * @param string $content
66 * @param bool $decorated
67 */
68 protected function write($content, $decorated = false)
69 {
70 $this->output->write($content, false, $decorated ? OutputInterface::OUTPUT_NORMAL : OutputInterface::OUTPUT_RAW);
71 }
72
73 /**
74 * Describes an InputArgument instance.
75 *
76 * @param InputArgument $argument
77 * @param array $options
78 *
79 * @return string|mixed
80 */
81 abstract protected function describeInputArgument(InputArgument $argument, array $options = array());
82
83 /**
84 * Describes an InputOption instance.
85 *
86 * @param InputOption $option
87 * @param array $options
88 *
89 * @return string|mixed
90 */
91 abstract protected function describeInputOption(InputOption $option, array $options = array());
92
93 /**
94 * Describes an InputDefinition instance.
95 *
96 * @param InputDefinition $definition
97 * @param array $options
98 *
99 * @return string|mixed
100 */
101 abstract protected function describeInputDefinition(InputDefinition $definition, array $options = array());
102
103 /**
104 * Describes a Command instance.
105 *
106 * @param Command $command
107 * @param array $options
108 *
109 * @return string|mixed
110 */
111 abstract protected function describeCommand(Command $command, array $options = array());
112
113 /**
114 * Describes an Application instance.
115 *
116 * @param Application $application
117 * @param array $options
118 *
119 * @return string|mixed
120 */
121 abstract protected function describeApplication(Application $application, array $options = array());
122 }