Imported code from old repository

This commit is contained in:
2022-11-22 15:46:36 +01:00
parent 976fdc0199
commit 77cf9e05f1
91 changed files with 18969 additions and 2 deletions
+52
View File
@@ -0,0 +1,52 @@
<?php
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
namespace CloudObjects\PhpMAE;
use ML\IRI\IRI;
use ML\JsonLD\Node;
use CloudObjects\SDK\NodeReader;
class TypeChecker {
private static $reader;
public static function isType(Node $object, $typeString) {
if (!isset(self::$reader))
self::$reader = new NodeReader([ 'prefixes' => [
'phpmae' => 'coid://phpmae.dev/'
]]);
return self::$reader->hasType($object, $typeString);
}
public static function isClass(Node $object) {
return self::isType($object, 'phpmae:Class')
|| self::isType($object, 'phpmae:HTTPInvokableClass');
}
public static function isInterface(Node $object) {
return self::isType($object, 'phpmae:Interface');
}
public static function getAdditionalTypes(Node $object) {
$types = $object->getType();
if (!is_array($types))
return [];
$coids = [];
foreach ($types as $t) {
if (in_array($t->getId(), [ 'coid://phpmae.dev/Class',
'coid://phpmae.dev/HTTPInvokableClass',
'coid://phpmae.dev/Interface',
])) continue;
$coids[] = new IRI($t->getId());
}
return $coids;
}
}