xref: /plugin/struct/_test/mock/AccessTable.php (revision 1e11f3d953de62eea93e7ca4b557516706add6a2)
1ea9843dcSAndreas Gohr<?php
2ea9843dcSAndreas Gohr
3ea9843dcSAndreas Gohrnamespace dokuwiki\plugin\struct\test\mock;
4ea9843dcSAndreas Gohr
5ea9843dcSAndreas Gohruse dokuwiki\plugin\struct\meta;
6*1e11f3d9SAnna Dabrowskause dokuwiki\plugin\struct\meta\AccessTableLookup;
7daf34b99SAndreas Gohruse dokuwiki\plugin\struct\meta\Schema;
8ea9843dcSAndreas Gohr
9ea9843dcSAndreas Gohrabstract class AccessTable extends meta\AccessTable {
10ea9843dcSAndreas Gohr
11ea9843dcSAndreas Gohr    /**
12ea9843dcSAndreas Gohr     * @param Schema $schema
13ea9843dcSAndreas Gohr     * @param int|string $pid
14daf34b99SAndreas Gohr     * @param int $ts
1510575566SAnna Dabrowska     * @param int $rid
16*1e11f3d9SAnna Dabrowska     * @return AccessTableLookup|AccessTableData
17ea9843dcSAndreas Gohr     */
1810575566SAnna Dabrowska    public static function bySchema(Schema $schema, $pid, $ts = 0, $rid = 0) {
19*1e11f3d9SAnna Dabrowska        if (self::isTypePage($pid, $ts, $rid)) {
20*1e11f3d9SAnna Dabrowska            return new AccessTableData($schema, $pid, $ts, $rid);
21ea9843dcSAndreas Gohr        }
22*1e11f3d9SAnna Dabrowska        return new AccessTableLookup($schema, $pid, $ts, $rid);
2310575566SAnna Dabrowska    }
24ea9843dcSAndreas Gohr
2510575566SAnna Dabrowska    public static function byTableName($tablename, $pid, $ts = 0, $rid = 0) {
26ea9843dcSAndreas Gohr        $schema = new Schema($tablename, $ts);
27daf34b99SAndreas Gohr        return self::bySchema($schema, $pid, $ts); // becuse we have a static call here we can not rely on inheritance
28ea9843dcSAndreas Gohr    }
29ea9843dcSAndreas Gohr
30ea9843dcSAndreas Gohr}
31