@@ 158-179 (lines=22) @@ | ||
155 | * @return mixed |
|
156 | * @throws NotIterableAttribute |
|
157 | */ |
|
158 | protected function processHandlerToResource(Attribute $definition, $value) |
|
159 | { |
|
160 | $type = $definition->getType(); |
|
161 | $handler = $this->registeredTypes[$type]; |
|
162 | $parameters = $definition->getTypeParameters(); |
|
163 | ||
164 | if (! $definition->isMany()) { |
|
165 | return $handler->toResource($value, $parameters); |
|
166 | } |
|
167 | ||
168 | if (! $value instanceof \Traversable && ! is_array($value)) { |
|
169 | throw new NotIterableAttribute($definition, $value); |
|
170 | } |
|
171 | ||
172 | $collection = []; |
|
173 | ||
174 | foreach ($value as $item) { |
|
175 | $collection[] = $handler->toResource($item, $parameters); |
|
176 | } |
|
177 | ||
178 | return $collection; |
|
179 | } |
|
180 | ||
181 | /** |
|
182 | * Process value by registered data-type handler. |
|
@@ 190-211 (lines=22) @@ | ||
187 | * @return mixed |
|
188 | * @throws NotIterableAttribute |
|
189 | */ |
|
190 | protected function processHandlerFromResource(Attribute $definition, $value) |
|
191 | { |
|
192 | $type = $definition->getType(); |
|
193 | $handler = $this->registeredTypes[$type]; |
|
194 | $parameters = $definition->getTypeParameters(); |
|
195 | ||
196 | if (! $definition->isMany()) { |
|
197 | return $handler->fromResource($value, $parameters); |
|
198 | } |
|
199 | ||
200 | if (! $value instanceof \Traversable && ! is_array($value)) { |
|
201 | throw new NotIterableAttribute($definition, $value); |
|
202 | } |
|
203 | ||
204 | $collection = new \ArrayObject(); |
|
205 | ||
206 | foreach ($value as $item) { |
|
207 | $collection[] = $handler->fromResource($item, $parameters); |
|
208 | } |
|
209 | ||
210 | return $collection; |
|
211 | } |
|
212 | ||
213 | /** |
|
214 | * Process value by generic data-type |