isAbstract() public méthode

public isAbstract ( )
Exemple #1
0
 /**
  * @param Class_       $node
  * @param PHPNamespace $target
  */
 public function handleClass(Class_ $node, PHPNamespace $target)
 {
     $name = $node->name;
     $modifiers = 0;
     $modifiers |= $node->isAbstract() ? PHPClass::IS_ABSTRACT : 0;
     $modifiers |= $node->isFinal() ? PHPClass::IS_FINAL : 0;
     $class = $this->codeFactory->buildClass($name, $modifiers);
     $target->addClass($class);
     $this->parse($node->stmts, $class);
 }
 public function visitClass(Class_ $node)
 {
     $struct = $this->getStruct();
     if ($node->extends !== null) {
         $struct->setParentClassName(implode('\\', $node->extends->parts));
     }
     foreach ($node->implements as $name) {
         $struct->addInterface(implode('\\', $name->parts));
     }
     $struct->setAbstract($node->isAbstract());
     $struct->setFinal($node->isFinal());
 }
 /**
  * @param Node\Stmt\Class_ $node
  */
 protected function parseClassNode(Node\Stmt\Class_ $node)
 {
     if (!isset($node->namespacedName)) {
         return;
         // Ticket #45 - This could potentially not be set for PHP 7 anonymous classes.
     }
     $this->currentStructuralElement = $node;
     $interfaces = [];
     /** @var Node\Name $implementedName */
     foreach ($node->implements as $implementedName) {
         $interfaces[] = $implementedName->toString();
     }
     $this->structuralElements[$node->namespacedName->toString()] = ['name' => $node->name, 'type' => 'class', 'startLine' => $node->getLine(), 'isAbstract' => $node->isAbstract(), 'docComment' => $node->getDocComment() ? $node->getDocComment()->getText() : null, 'parents' => $node->extends ? [$node->extends->toString()] : [], 'interfaces' => $interfaces, 'traits' => [], 'methods' => [], 'properties' => [], 'constants' => []];
 }
 /**
  * @param Node\Stmt\Class_ $node
  */
 private function collectMetaOfClass(Node\Stmt\Class_ $node)
 {
     $this->getAdtMeta()->setClass();
     if ($node->isAbstract()) {
         $this->getAdtMeta()->setAbstract();
     }
     if ($node->isFinal()) {
         $this->getAdtMeta()->setFinal();
     }
     foreach ($node->implements as $name) {
         if ($name = $this->filter($name)) {
             $this->getAdtMeta()->addImplementedNamespace($name);
         }
     }
     $this->collectExtends($node->extends);
 }
 private function handleClass(Node\Stmt\Class_ $class)
 {
     $classHint = new ClassHint();
     if (!$class->isAbstract()) {
         $classHint->setStmtType("Class");
         $classHint->setName($class->name);
         $classHint->setFqn($this->namespace . "\\" . $class->name);
         $classHint->setClassType($class->type);
         if ($class->extends instanceof Node) {
             $classHint->setExtends($class->extends->toString());
         }
         foreach ($class->stmts as $stmt) {
             $paramNames = [];
             $docComment = null;
             if ($stmt instanceof Node\Stmt\ClassMethod && ($stmt->isPublic() || $stmt->isProtected())) {
                 $docComment = $stmt->getDocComment();
                 if ($docComment !== null) {
                     $docComment = $docComment->getReformattedText();
                 }
                 $classHint->addMethod($stmt->name, $stmt->type, $stmt->byRef, $stmt->params, $docComment);
             }
             if ($stmt instanceof Node\Stmt\Property && ($stmt->isPublic() || $stmt->isProtected())) {
                 $docComment = $stmt->getDocComment();
                 if ($docComment !== null) {
                     $docComment = $docComment->getReformattedText();
                 }
                 $classHint->addProperty($stmt->props, $stmt->type, $docComment);
             }
             if ($stmt instanceof Node\Stmt\ClassConst) {
                 $docComment = $stmt->getDocComment();
                 if ($docComment !== null) {
                     $docComment = $docComment->getReformattedText();
                 }
                 $classHint->addConstant($stmt->consts, $docComment);
             }
         }
         $this->fileStmts[] = ['stmtType' => $classHint->getStmtType(), 'name' => $classHint->getName(), 'fqn' => $classHint->getFqn(), 'type' => $classHint->getClassType(), 'extendsClass' => $classHint->getExtends(), 'methods' => $classHint->getMethods(), 'properties' => $classHint->getProperties(), 'constants' => $classHint->getConstants()];
     }
 }