protected function __propertyTraitHasProperty($propertyName)
    {
        // Check if getter or setter method exists
        if (method_exists($this, 'get'.$propertyName) || method_exists($this, 'set'.$propertyName)) {
            return true;
        }
        // Check if property is public
        try
        {
            $classReflection = new \ReflectionProperty(get_class($this), $propertyName);
            return $classReflection->isPublic();
        } catch (\ReflectionException $ex) {
            return false;
        }
    }