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