getCompleteName() public méthode

Returns the class name including its namespace
public getCompleteName ( ) : string
Résultat string
Exemple #1
0
 public function getData()
 {
     $nsPieces = explode('\\', $this->class->getNamespace());
     $nsPathes = array();
     $nsStr = "";
     foreach ($nsPieces as $n) {
         if (strlen($nsStr) > 0) {
             $nsStr .= '\\';
         }
         $nsStr .= $n;
         $nsPathes[$n] = $nsStr;
     }
     return array("classDefinition" => $this->class, "compilerFile" => $this->compilerFile, "className" => $this->class->getName(), "classNamespace" => $this->class->getNamespace(), "fullName" => $this->class->getCompleteName(), "methods" => $this->class->getMethods(), "namespacePieces" => $nsPathes);
 }
Exemple #2
0
 /**
  * @return LetStatementBuilder
  */
 protected function getLetStatement()
 {
     if (!$this->isStatic()) {
         return new LetStatementBuilder(array('assign-type' => 'object-property', 'operator' => 'assign', 'variable' => 'this', 'property' => $this->name, 'file' => $this->original['default']['file'], 'line' => $this->original['default']['line'], 'char' => $this->original['default']['char']), $this->original['default']);
     }
     return new LetStatementBuilder(array('assign-type' => 'static-property', 'operator' => 'assign', 'variable' => '\\' . $this->classDefinition->getCompleteName(), 'property' => $this->name, 'file' => $this->original['default']['file'], 'line' => $this->original['default']['line'], 'char' => $this->original['default']['char']), $this->original['default']);
 }
Exemple #3
0
 /**
  * @return LetStatementBuilder
  */
 protected function getLetStatement()
 {
     if ($this->isStatic()) {
         return new LetStatementBuilder(array('assign-type' => 'static-property', 'operator' => 'assign', 'variable' => '\\' . $this->classDefinition->getCompleteName(), 'property' => $this->name, 'file' => $this->original['default']['file'], 'line' => $this->original['default']['line'], 'char' => $this->original['default']['char']), $this->original['default']);
     }
     $lsb = new LetStatementBuilder(array('assign-type' => 'object-property', 'operator' => 'assign', 'variable' => 'this', 'property' => $this->name, 'file' => $this->original['default']['file'], 'line' => $this->original['default']['line'], 'char' => $this->original['default']['char']), $this->original['default']);
     return new IfStatementBuilder(new BinaryOperatorBuilder('equals', new BinaryOperatorBuilder('property-access', new VariableBuilder('this'), new LiteralBuilder('string', $this->name)), new LiteralBuilder('null', null)), new StatementsBlockBuilder(array($lsb)));
 }
Exemple #4
0
 /**
  * @return $this|ExpressionLetStatement
  */
 protected function getLetStatement()
 {
     $exprBuilder = BuilderFactory::getInstance();
     if ($this->isStatic()) {
         $className = '\\' . $this->classDefinition->getCompleteName();
         $expr = $exprBuilder->raw($this->original['default']);
         return $exprBuilder->statements()->let(array($exprBuilder->operators()->assignStaticProperty($className, $this->name, $expr)->setFile($this->original['default']['file'])->setLine($this->original['default']['line'])->setChar($this->original['default']['char'])));
     }
     $lsb = $exprBuilder->statements()->let(array($exprBuilder->operators()->assignProperty('this', $this->name, $exprBuilder->raw($this->original['default']))->setFile($this->original['default']['file'])->setLine($this->original['default']['line'])->setChar($this->original['default']['char'])));
     return $exprBuilder->statements()->ifX()->setCondition($exprBuilder->operators()->binary(BinaryOperator::OPERATOR_EQUALS, $exprBuilder->operators()->binary(BinaryOperator::OPERATOR_ACCESS_PROPERTY, $exprBuilder->variable('this'), $exprBuilder->literal(Types::STRING, $this->name)), $exprBuilder->literal(Types::NULL_)))->setStatements($exprBuilder->statements()->block(array($lsb)));
 }
Exemple #5
0
 /**
  * Checks if a class implements an interface
  *
  * @param ClassDefinition $classDefinition
  * @param ClassDefinition $interfaceDefinition
  * @throws CompilerException
  */
 public function checkInterfaceImplements(ClassDefinition $classDefinition, ClassDefinition $interfaceDefinition)
 {
     foreach ($interfaceDefinition->getMethods() as $method) {
         if (!$classDefinition->hasMethod($method->getName())) {
             throw new CompilerException("Class " . $classDefinition->getCompleteName() . " must implement a method called: \"" . $method->getName() . "\" as requirement of interface: \"" . $interfaceDefinition->getCompleteName() . "\"");
         }
         if ($method->hasParameters()) {
             $implementedMethod = $classDefinition->getMethod($method->getName());
             if ($implementedMethod->getNumberOfRequiredParameters() > $method->getNumberOfRequiredParameters() || $implementedMethod->getNumberOfParameters() < $method->getNumberOfParameters()) {
                 throw new CompilerException("Class " . $classDefinition->getCompleteName() . "::" . $method->getName() . "() does not have the same number of required parameters in interface: \"" . $interfaceDefinition->getCompleteName() . "\"");
             }
         }
     }
 }
Exemple #6
0
 public static function sourceUrl(ClassDefinition $c)
 {
     return "/source/" . str_replace("\\", "/", $c->getCompleteName()) . ".html";
 }
Exemple #7
0
 /**
  * Inserts an anonymous class definition in the compiler
  *
  * @param CompilerFileAnonymous $file
  * @param ClassDefinition $classDefinition
  */
 public function addClassDefinition(CompilerFileAnonymous $file, ClassDefinition $classDefinition)
 {
     $this->definitions[$classDefinition->getCompleteName()] = $classDefinition;
     $this->anonymousFiles[$classDefinition->getCompleteName()] = $file;
 }