12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Code\Generator;
- /**
- * Interface generator.
- */
- class InterfaceGenerator extends \Magento\Framework\Code\Generator\ClassGenerator
- {
- /**
- * {@inheritdoc}
- */
- public function generate()
- {
- if (!$this->isSourceDirty()) {
- $output = $this->getSourceContent();
- if (!empty($output)) {
- return $output;
- }
- }
- $output = '';
- if (!$this->getName()) {
- return $output;
- }
- $output .= $this->generateDirectives();
- if (null !== ($docBlock = $this->getDocBlock())) {
- $docBlock->setIndentation('');
- $output .= $docBlock->generate();
- }
- $output .= 'interface ' . $this->getName();
- if (!empty($this->extendedClass)) {
- $output .= ' extends \\' . ltrim($this->extendedClass, '\\');
- }
- $output .= self::LINE_FEED . '{' . self::LINE_FEED . self::LINE_FEED
- . $this->generateMethods() . self::LINE_FEED . '}' . self::LINE_FEED;
- return $output;
- }
- /**
- * Instantiate interface method generator object.
- *
- * @return \Magento\Framework\Code\Generator\InterfaceMethodGenerator
- */
- protected function createMethodGenerator()
- {
- return new \Magento\Framework\Code\Generator\InterfaceMethodGenerator();
- }
- /**
- * Generate methods.
- *
- * @return string
- */
- protected function generateMethods()
- {
- $output = '';
- $methods = $this->getMethods();
- if (!empty($methods)) {
- foreach ($methods as $method) {
- $output .= $method->generate() . self::LINE_FEED;
- }
- }
- return $output;
- }
- /**
- * Generate directives.
- *
- * @return string
- */
- protected function generateDirectives()
- {
- $output = '';
- $namespace = $this->getNamespaceName();
- if (null !== $namespace) {
- $output .= 'namespace ' . $namespace . ';' . self::LINE_FEED . self::LINE_FEED;
- }
- $uses = $this->getUses();
- if (!empty($uses)) {
- foreach ($uses as $use) {
- $output .= 'use ' . $use . ';' . self::LINE_FEED;
- }
- $output .= self::LINE_FEED;
- }
- return $output;
- }
- }
|