1 | <?php |
||
50 | trait PropertyProcessorTrait |
||
51 | { |
||
52 | /** |
||
53 | * Create a property by prefix and name |
||
54 | * |
||
55 | * @param string $prefix Property prefix |
||
56 | * @param string $name Property name |
||
57 | * @param \DOMElement $element DOM element |
||
58 | * @param ContextInterface $context Inherited Context |
||
59 | * @param boolean $last Last property |
||
60 | * @return ContextInterface Local context for this element |
||
61 | */ |
||
62 | 8 | protected function processPropertyPrefixName($prefix, $name, \DOMElement $element, ContextInterface $context, $last) |
|
71 | |||
72 | /** |
||
73 | * Add a single property |
||
74 | * |
||
75 | * @param \DOMElement $element DOM element |
||
76 | * @param ContextInterface $context Inherited Context |
||
77 | * @param string $name Property name |
||
78 | * @param VocabularyInterface $vocabulary Property vocabulary |
||
79 | * @param boolean $last Last property |
||
80 | * @return ContextInterface Local context for this element |
||
81 | */ |
||
82 | 8 | protected function addProperty( |
|
100 | |||
101 | /** |
||
102 | * Return a property value (type and tag name dependent) |
||
103 | * |
||
104 | * @param \DOMElement $element DOM element |
||
105 | * @param ContextInterface $context Context |
||
106 | * @return ThingInterface|string Property value |
||
107 | */ |
||
108 | 8 | protected function getPropertyValue(\DOMElement $element, ContextInterface $context) |
|
123 | |||
124 | /** |
||
125 | * Return a cached property value (if available) |
||
126 | * |
||
127 | * @param \DOMElement $element Element |
||
128 | * @return mixed|null Property value |
||
129 | */ |
||
130 | 8 | protected function getPropertyCache(\DOMElement $element) |
|
135 | |||
136 | /** |
||
137 | * Return a property child value |
||
138 | * |
||
139 | * @param \DOMElement $element DOM element |
||
140 | * @param ContextInterface $context Context |
||
141 | * @return ThingInterface|null Property child value |
||
142 | */ |
||
143 | abstract protected function getPropertyChildValue(\DOMElement $element, ContextInterface $context); |
||
144 | |||
145 | /** |
||
146 | * Cache a property value |
||
147 | * |
||
148 | * @param \DOMElement $element DOM element |
||
149 | * @param mixed $value Value |
||
150 | * @return mixed $value Value |
||
151 | */ |
||
152 | 8 | protected function setPropertyCache(\DOMElement $element, $value) |
|
156 | |||
157 | /** |
||
158 | * Return a property value (type and tag name dependent) |
||
159 | * |
||
160 | * @param \DOMElement $element DOM element |
||
161 | * @return string Property value |
||
162 | */ |
||
163 | 8 | protected function getPropertyStringValue(\DOMElement $element) |
|
176 | |||
177 | /** |
||
178 | * Return a property value (type and tag name dependent) |
||
179 | * |
||
180 | * @param \DOMElement $element DOM element |
||
181 | * @return string|null Property value |
||
182 | */ |
||
183 | 7 | protected function getPropertyHtmlValue(\DOMElement $element) |
|
197 | |||
198 | /** |
||
199 | * Add a property child |
||
200 | * |
||
201 | * @param string|ThingInterface Property value |
||
202 | * @param ContextInterface $context Inherited Context |
||
203 | * @param boolean $last Last property |
||
204 | * @return ContextInterface Local context for this element |
||
205 | */ |
||
206 | 7 | protected function addPropertyChild($propertyValue, ContextInterface $context, $last) |
|
216 | |||
217 | /** |
||
218 | * Create a property |
||
219 | * |
||
220 | * @param \DOMElement $element DOM element |
||
221 | * @param ContextInterface $context Inherited Context |
||
222 | * @return ContextInterface Local context for this element |
||
223 | */ |
||
224 | abstract protected function processProperty(\DOMElement $element, ContextInterface $context); |
||
225 | } |
||
226 |
This check looks for methods that are used by a trait but not required by it.
To illustrate, let’s look at the following code example
The trait
Idable
provides a methodequalsId
that in turn relies on the methodgetId()
. If this method does not exist on a class mixing in this trait, the method will fail.Adding the
getId()
as an abstract method to the trait will make sure it is available.