xref: /plugin/dw2pdf/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyMatcher.php (revision dc4d9dc689082c963d5c1d9ee679553326788c6e)
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