@@ 156-180 (lines=25) @@ | ||
153 | * |
|
154 | * @return BaseDatapackage::class |
|
155 | */ |
|
156 | public static function getDatapackageClass($descriptor) |
|
157 | { |
|
158 | $datapackageClasses = array_merge( |
|
159 | // custom classes |
|
160 | static::$registeredDatapackageClasses, |
|
161 | // core classes |
|
162 | [ |
|
163 | "frictionlessdata\\datapackage\\Datapackages\TabularDatapackage", |
|
164 | "frictionlessdata\\datapackage\\Datapackages\DefaultDatapackage", |
|
165 | ] |
|
166 | ); |
|
167 | $res = null; |
|
168 | foreach ($datapackageClasses as $datapackageClass) { |
|
169 | if (call_user_func([$datapackageClass, 'handlesDescriptor'], $descriptor)) { |
|
170 | $res = $datapackageClass; |
|
171 | break; |
|
172 | } |
|
173 | } |
|
174 | if (!$res) { |
|
175 | // not matched by any known classes |
|
176 | $res = "frictionlessdata\\datapackage\\Datapackages\CustomDatapackage"; |
|
177 | } |
|
178 | ||
179 | return $res; |
|
180 | } |
|
181 | ||
182 | public static function registerResourceClass($resourceClass) |
|
183 | { |
|
@@ 197-222 (lines=26) @@ | ||
194 | * |
|
195 | * @return BaseResource::class |
|
196 | */ |
|
197 | public static function getResourceClass($descriptor) |
|
198 | { |
|
199 | $descriptor = Utils::objectify($descriptor); |
|
200 | $resourceClasses = array_merge( |
|
201 | // custom classes |
|
202 | static::$registeredResourceClasses, |
|
203 | // core classes |
|
204 | [ |
|
205 | 'frictionlessdata\\datapackage\\Resources\\TabularResource', |
|
206 | 'frictionlessdata\\datapackage\\Resources\\DefaultResource', |
|
207 | ] |
|
208 | ); |
|
209 | $res = null; |
|
210 | foreach ($resourceClasses as $resourceClass) { |
|
211 | if (call_user_func([$resourceClass, 'handlesDescriptor'], $descriptor)) { |
|
212 | $res = $resourceClass; |
|
213 | break; |
|
214 | } |
|
215 | } |
|
216 | if (!$res) { |
|
217 | // not matched by any known classes |
|
218 | $res = 'frictionlessdata\\datapackage\\Resources\\CustomResource'; |
|
219 | } |
|
220 | ||
221 | return $res; |
|
222 | } |
|
223 | ||
224 | protected static $registeredDatapackageClasses = []; |
|
225 | protected static $registeredResourceClasses = []; |