1*dc4d9dc6SAnna Dabrowska<?php 2*dc4d9dc6SAnna Dabrowska 3*dc4d9dc6SAnna Dabrowskanamespace DeepCopy\Matcher; 4*dc4d9dc6SAnna Dabrowska 5*dc4d9dc6SAnna Dabrowska/** 6*dc4d9dc6SAnna Dabrowska * @final 7*dc4d9dc6SAnna Dabrowska */ 8*dc4d9dc6SAnna Dabrowskaclass PropertyMatcher implements Matcher 9*dc4d9dc6SAnna Dabrowska{ 10*dc4d9dc6SAnna Dabrowska /** 11*dc4d9dc6SAnna Dabrowska * @var string 12*dc4d9dc6SAnna Dabrowska */ 13*dc4d9dc6SAnna Dabrowska private $class; 14*dc4d9dc6SAnna Dabrowska 15*dc4d9dc6SAnna Dabrowska /** 16*dc4d9dc6SAnna Dabrowska * @var string 17*dc4d9dc6SAnna Dabrowska */ 18*dc4d9dc6SAnna Dabrowska private $property; 19*dc4d9dc6SAnna Dabrowska 20*dc4d9dc6SAnna Dabrowska /** 21*dc4d9dc6SAnna Dabrowska * @param string $class Class name 22*dc4d9dc6SAnna Dabrowska * @param string $property Property name 23*dc4d9dc6SAnna Dabrowska */ 24*dc4d9dc6SAnna Dabrowska public function __construct($class, $property) 25*dc4d9dc6SAnna Dabrowska { 26*dc4d9dc6SAnna Dabrowska $this->class = $class; 27*dc4d9dc6SAnna Dabrowska $this->property = $property; 28*dc4d9dc6SAnna Dabrowska } 29*dc4d9dc6SAnna Dabrowska 30*dc4d9dc6SAnna Dabrowska /** 31*dc4d9dc6SAnna Dabrowska * Matches a specific property of a specific class. 32*dc4d9dc6SAnna Dabrowska * 33*dc4d9dc6SAnna Dabrowska * {@inheritdoc} 34*dc4d9dc6SAnna Dabrowska */ 35*dc4d9dc6SAnna Dabrowska public function matches($object, $property) 36*dc4d9dc6SAnna Dabrowska { 37*dc4d9dc6SAnna Dabrowska return ($object instanceof $this->class) && $property == $this->property; 38*dc4d9dc6SAnna Dabrowska } 39*dc4d9dc6SAnna Dabrowska} 40