Classes/Validation/ValidatorResolver.php
protected function propertyIsMixedType($className, $property)
    {
        $mixedType = false;

        $propertySchema = $this->reflectionService->getClassSchema($className)->getProperty($property);

        if ($this->classIsMixedType($propertySchema['type'])) {
            $mixedType = true;
        } else {
            if ($this->reflectionService->isPropertyTaggedWith($className, $property, MixedTypesService::PROPERTY_ANNOTATION_MIXED_TYPE)) {
                $tags = $this->reflectionService->getPropertyTagValues($className, $property, MixedTypesService::PROPERTY_ANNOTATION_MIXED_TYPE);
                $mixedTypeClassName = reset($tags);

                if ($this->classIsMixedType($mixedTypeClassName)) {
                    $mixedType = true;
                }
            }
        }

        return $mixedType;
    }
protected function propertyIsMixedType($className, $property)
    {
        $mixedType = false;

        $propertySchema = $this->reflectionService->getClassSchema($className)->getProperty($property);

        if ($this->classIsMixedType($propertySchema['type'])) {
            $mixedType = true;
        } else {
            if ($this->reflectionService->isPropertyTaggedWith($className, $property, MixedTypesService::PROPERTY_ANNOTATION_MIXED_TYPE)) {
                $tags = $this->reflectionService->getPropertyTagValues($className, $property, MixedTypesService::PROPERTY_ANNOTATION_MIXED_TYPE);
                $mixedTypeClassName = reset($tags);

                if ($this->classIsMixedType($mixedTypeClassName)) {
                    $mixedType = true;
                }
            }
        }

        return $mixedType;
    }
protected function propertyIsMixedType ( $ className , $ property ) { $ mixedType = false ; $ propertySchema = $ this -> reflectionService -> getClassSchema ( $ className ) -> getProperty ( $ property ) ; if ( $ this -> classIsMixedType ( $ propertySchema [ 'type' ] ) ) { $ mixedType = true ; } else { if ( $ this -> reflectionService -> isPropertyTaggedWith ( $ className , $ property , MixedTypesService :: PROPERTY_ANNOTATION_MIXED_TYPE ) ) { $ tags = $ this -> reflectionService -> getPropertyTagValues ( $ className , $ property , MixedTypesService :: PROPERTY_ANNOTATION_MIXED_TYPE ) ; $ mixedTypeClassName = reset ( $ tags ) ; if ( $ this -> classIsMixedType ( $ mixedTypeClassName ) ) { $ mixedType = true ; } } } return $ mixedType ; }
Checks if the given property is a mixed type.

First, we check if the type of the property is a class that implements
the interface `MixedTypesInterface`.

If not, we check if the property has the annotation `@mixedTypesResolver`
with a class name that implements the interface `MixedTypesInterface`.

If one was found, `true` is returned.

@param string $className
@param string $property
@return bool
Checks if the given property is a mixed type .