xref: /plugin/struct/_test/mock/AccessTable.php (revision 4cd5cc28e2bf004aed676e9b1f46cc188a4b2240)
1ea9843dcSAndreas Gohr<?php
2ea9843dcSAndreas Gohr
3ea9843dcSAndreas Gohrnamespace dokuwiki\plugin\struct\test\mock;
4ea9843dcSAndreas Gohr
5ea9843dcSAndreas Gohruse dokuwiki\plugin\struct\meta;
61e11f3d9SAnna Dabrowskause dokuwiki\plugin\struct\meta\AccessTableLookup;
7daf34b99SAndreas Gohruse dokuwiki\plugin\struct\meta\Schema;
8ea9843dcSAndreas Gohr
9ea9843dcSAndreas Gohrabstract class AccessTable extends meta\AccessTable {
10ea9843dcSAndreas Gohr
11*4cd5cc28SAnna Dabrowska    public static function getPageAccess($tablename, $pid, $ts = 0)
12*4cd5cc28SAnna Dabrowska    {
13*4cd5cc28SAnna Dabrowska        $schema = new Schema($tablename, $ts);
14*4cd5cc28SAnna Dabrowska        return new AccessTableData($schema, $pid, $ts, 0);
15*4cd5cc28SAnna Dabrowska    }
16*4cd5cc28SAnna Dabrowska
17ea9843dcSAndreas Gohr    /**
18*4cd5cc28SAnna Dabrowska     * @deprecated
19ea9843dcSAndreas Gohr     * @param Schema $schema
20ea9843dcSAndreas Gohr     * @param int|string $pid
21daf34b99SAndreas Gohr     * @param int $ts
2210575566SAnna Dabrowska     * @param int $rid
231e11f3d9SAnna Dabrowska     * @return AccessTableLookup|AccessTableData
24ea9843dcSAndreas Gohr     */
2510575566SAnna Dabrowska    public static function bySchema(Schema $schema, $pid, $ts = 0, $rid = 0) {
261e11f3d9SAnna Dabrowska        if (self::isTypePage($pid, $ts, $rid)) {
271e11f3d9SAnna Dabrowska            return new AccessTableData($schema, $pid, $ts, $rid);
28ea9843dcSAndreas Gohr        }
291e11f3d9SAnna Dabrowska        return new AccessTableLookup($schema, $pid, $ts, $rid);
3010575566SAnna Dabrowska    }
31ea9843dcSAndreas Gohr
32*4cd5cc28SAnna Dabrowska    /**
33*4cd5cc28SAnna Dabrowska     * @deprecated
34*4cd5cc28SAnna Dabrowska     * @param string $tablename
35*4cd5cc28SAnna Dabrowska     * @param string $pid
36*4cd5cc28SAnna Dabrowska     * @param int $ts
37*4cd5cc28SAnna Dabrowska     * @param int $rid
38*4cd5cc28SAnna Dabrowska     * @return meta\AccessTableData|AccessTableLookup|AccessTableData
39*4cd5cc28SAnna Dabrowska     */
4010575566SAnna Dabrowska    public static function byTableName($tablename, $pid, $ts = 0, $rid = 0) {
41ea9843dcSAndreas Gohr        $schema = new Schema($tablename, $ts);
42daf34b99SAndreas Gohr        return self::bySchema($schema, $pid, $ts); // becuse we have a static call here we can not rely on inheritance
43ea9843dcSAndreas Gohr    }
44ea9843dcSAndreas Gohr
45ea9843dcSAndreas Gohr}
46