Neos\Flow\Reflection\ReflectionService::evaluateClassPropertyAnnotationsForSchema PHP Method

evaluateClassPropertyAnnotationsForSchema() protected method

protected evaluateClassPropertyAnnotationsForSchema ( ClassSchema $classSchema, string $propertyName ) : boolean
$classSchema ClassSchema
$propertyName string
return boolean
    protected function evaluateClassPropertyAnnotationsForSchema(ClassSchema $classSchema, $propertyName)
    {
        $skipArtificialIdentity = false;
        $className = $classSchema->getClassName();
        if ($this->isPropertyAnnotatedWith($className, $propertyName, Flow\Transient::class)) {
            return false;
        }
        if ($this->isPropertyAnnotatedWith($className, $propertyName, Flow\Inject::class)) {
            return false;
        }
        if (!$this->isPropertyTaggedWith($className, $propertyName, 'var')) {
            return false;
        }
        $varTagValues = $this->getPropertyTagValues($className, $propertyName, 'var');
        if (count($varTagValues) > 1) {
            throw new InvalidPropertyTypeException('More than one @var annotation given for "' . $className . '::$' . $propertyName . '"', 1367334366);
        }
        $declaredType = strtok(trim(current($varTagValues), " \n\t"), " \n\t");
        try {
            TypeHandling::parseType($declaredType);
        } catch (InvalidTypeException $exception) {
            throw new \InvalidArgumentException(sprintf($exception->getMessage(), 'class "' . $className . '" for property "' . $propertyName . '"'), 1315564475);
        }
        if ($this->isPropertyAnnotatedWith($className, $propertyName, ORM\Id::class)) {
            $skipArtificialIdentity = true;
        }
        $classSchema->addProperty($propertyName, $declaredType, $this->isPropertyAnnotatedWith($className, $propertyName, Flow\Lazy::class), $this->isPropertyAnnotatedWith($className, $propertyName, Flow\Transient::class));
        if ($this->isPropertyAnnotatedWith($className, $propertyName, Flow\Identity::class)) {
            $classSchema->markAsIdentityProperty($propertyName);
        }
        return $skipArtificialIdentity;
    }
ReflectionService