xref: /plugin/struct/_test/mock/AccessTable.php (revision 1057556627155ce214796eceb5b80361493f882a)
1ea9843dcSAndreas Gohr<?php
2ea9843dcSAndreas Gohr
3ea9843dcSAndreas Gohrnamespace dokuwiki\plugin\struct\test\mock;
4ea9843dcSAndreas Gohr
5ea9843dcSAndreas Gohruse dokuwiki\plugin\struct\meta;
6daf34b99SAndreas Gohruse dokuwiki\plugin\struct\meta\Schema;
7ea9843dcSAndreas Gohr
8ea9843dcSAndreas Gohrabstract class AccessTable extends meta\AccessTable {
9ea9843dcSAndreas Gohr
10ea9843dcSAndreas Gohr    /**
11ea9843dcSAndreas Gohr     * @param Schema $schema
12ea9843dcSAndreas Gohr     * @param int|string $pid
13daf34b99SAndreas Gohr     * @param int $ts
14*10575566SAnna Dabrowska     * @param int $rid
1594c9aa4cSAndreas Gohr     * @return meta\AccessTableLookup|AccessTableData
16ea9843dcSAndreas Gohr     */
17*10575566SAnna Dabrowska    public static function bySchema(Schema $schema, $pid, $ts = 0, $rid = 0) {
18*10575566SAnna Dabrowska        if(!$pid && $ts === 0) {
19*10575566SAnna Dabrowska            return new meta\AccessTableLookup($schema, $pid, $ts, $rid); // FIXME not mocked, yet
20*10575566SAnna Dabrowska        } else {
21daf34b99SAndreas Gohr            return new AccessTableData($schema, $pid, $ts);
22ea9843dcSAndreas Gohr        }
23*10575566SAnna Dabrowska    }
24ea9843dcSAndreas Gohr
25*10575566SAnna 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