public function matches($className, $methodName, $methodDeclaringClassName, $pointcutQueryIdentifier): bool
    {
        $designatedAnnotations = $this->reflectionService->getClassAnnotations($className, $this->annotation);
        if ($designatedAnnotations !== [] || $this->annotationValueConstraints === []) {
            $matches = ($designatedAnnotations !== []);
        } else {
            // It makes no sense to check property values for an annotation that is used multiple times, we shortcut and check the value against the first annotation found.
            $firstFoundAnnotation = $designatedAnnotations;
            $annotationProperties = $this->reflectionService->getClassPropertyNames($this->annotation);
            foreach ($this->annotationValueConstraints as $propertyName => $expectedValue) {
                if (!array_key_exists($propertyName, $annotationProperties)) {
                    $this->logger->notice('The property "' . $propertyName . '" declared in pointcut does not exist in annotation ' . $this->annotation);
                    return false;
                }

                if ($firstFoundAnnotation->$propertyName === $expectedValue) {
                    $matches = true;
                } else {
                    return false;
                }
            }
        }

        return $matches;
    }
public function matches($className, $methodName, $methodDeclaringClassName, $pointcutQueryIdentifier): bool
    {
        $designatedAnnotations = $this->reflectionService->getClassAnnotations($className, $this->annotation);
        if ($designatedAnnotations !== [] || $this->annotationValueConstraints === []) {
            $matches = ($designatedAnnotations !== []);
        } else {
            // It makes no sense to check property values for an annotation that is used multiple times, we shortcut and check the value against the first annotation found.
            $firstFoundAnnotation = $designatedAnnotations;
            $annotationProperties = $this->reflectionService->getClassPropertyNames($this->annotation);
            foreach ($this->annotationValueConstraints as $propertyName => $expectedValue) {
                if (!array_key_exists($propertyName, $annotationProperties)) {
                    $this->logger->notice('The property "' . $propertyName . '" declared in pointcut does not exist in annotation ' . $this->annotation);
                    return false;
                }

                if ($firstFoundAnnotation->$propertyName === $expectedValue) {
                    $matches = true;
                } else {
                    return false;
                }
            }
        }

        return $matches;
    }
public function matches ( $ className , $ methodName , $ methodDeclaringClassName , $ pointcutQueryIdentifier ) : bool { $ designatedAnnotations = $ this -> reflectionService -> getClassAnnotations ( $ className , $ this -> annotation ) ; if ( $ designatedAnnotations !== [ ] || $ this -> annotationValueConstraints === [ ] ) { $ matches = ( $ designatedAnnotations !== [ ] ) ; } else { // It makes no sense to check property values for an annotation that is used multiple times, we shortcut and check the value against the first annotation found. $ firstFoundAnnotation = $ designatedAnnotations ; $ annotationProperties = $ this -> reflectionService -> getClassPropertyNames ( $ this -> annotation ) ; foreach ( $ this -> annotationValueConstraints as $ propertyName => $ expectedValue ) { if ( ! array_key_exists ( $ propertyName , $ annotationProperties ) ) { $ this -> logger -> notice ( 'The property "' . $ propertyName . '" declared in pointcut does not exist in annotation ' . $ this -> annotation ) ; return false ; } if ( $ firstFoundAnnotation -> $ propertyName === $ expectedValue ) { $ matches = true ; } else { return false ; } } } return $ matches ; }
Checks if the specified class matches with the class tag filter pattern

@param string $className Name of the class to check against
@param string $methodName Name of the method - not used here
@param string $methodDeclaringClassName Name of the class the method was originally declared in - not used here
@param mixed $pointcutQueryIdentifier Some identifier for this query - must at least differ from a previous identifier. Used for circular reference detection.
@return boolean true if the class matches, otherwise false
Checks if the specified class matches with the class tag filter pattern