public function __construct($declaringAspectClassName, $propertyName, Pointcut $pointcut)
{
$this->declaringAspectClassName = $declaringAspectClassName;
$this->propertyName = $propertyName;
$this->pointcut = $pointcut;
$propertyReflection = new \ReflectionProperty($declaringAspectClassName, $propertyName);
$classReflection = new \ReflectionClass($declaringAspectClassName);
$defaultProperties = $classReflection->getDefaultProperties();
$this->initialValue = $defaultProperties[$propertyName];
if ($propertyReflection->isPrivate()) {
$this->propertyVisibility = 'private';
} elseif ($propertyReflection->isProtected()) {
$this->propertyVisibility = 'protected';
} else {
$this->propertyVisibility = 'public';
}
$this->propertyDocComment = preg_replace('/@(Neos\\\\Flow\\\\Annotations|Flow)\\\\Introduce.+$/mi', 'introduced by ' . $declaringAspectClassName, $propertyReflection->getDocComment());
}