diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml new file mode 100644 index 000000000..8fa3c9ec7 --- /dev/null +++ b/.github/workflows/static-analysis.yml @@ -0,0 +1,26 @@ +name: Static analysis + +on: [pull_request] + +jobs: + static-psalm-analysis: + runs-on: ubuntu-latest + strategy: + matrix: + ocp-version: [ 'dev-master' ] + name: Nextcloud ${{ matrix.ocp-version }} + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up php + uses: shivammathur/setup-php@v2 + with: + php-version: 7.4 + tools: composer:v1 + coverage: none + - name: Install dependencies + run: composer i + - name: Install dependencies + run: composer require --dev christophwurst/nextcloud:${{ matrix.ocp-version }} + - name: Run coding standards check + run: composer run psalm diff --git a/composer.json b/composer.json index 16f5aef13..263b97b58 100644 --- a/composer.json +++ b/composer.json @@ -25,9 +25,14 @@ "scripts": { "cs:check": "php-cs-fixer fix --dry-run --diff", "cs:fix": "php-cs-fixer fix", - "lint": "find . -name \\*.php -not -path './vendor/*' -print0 | xargs -0 -n1 php -l" + "lint": "find . -name \\*.php -not -path './vendor/*' -print0 | xargs -0 -n1 php -l", + "psalm": "psalm --threads=1 --update-baseline", + "psalm:update-baseline": "psalm --threads=1 --update-baseline", + "psalm:clear": "psalm --clear-cache && psalm --clear-global-cache", + "psalm:fix": "psalm --alter --issues=InvalidReturnType,InvalidNullableReturnType,MissingParamType,InvalidFalsableReturnType" }, "require-dev": { + "vimeo/psalm": "^4.24", "nextcloud/coding-standard": "^0.5.0", "phpunit/phpunit": "^9.5" } diff --git a/composer.lock b/composer.lock index 5b4f10afb..abc43c1c9 100644 --- a/composer.lock +++ b/composer.lock @@ -4,9 +4,248 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "0a8df5b2ed4503b7107a5e84d632826e", + "content-hash": "6e59f965e4812480a5366324b2e86b6d", "packages": [], "packages-dev": [ + { + "name": "amphp/amp", + "version": "v2.6.2", + "source": { + "type": "git", + "url": "https://github.com/amphp/amp.git", + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1", + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^7 | ^8 | ^9", + "psalm/phar": "^3.11@dev", + "react/promise": "^2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "files": [ + "lib/functions.php", + "lib/Internal/functions.php" + ], + "psr-4": { + "Amp\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "https://amphp.org/amp", + "keywords": [ + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/amp/issues", + "source": "https://github.com/amphp/amp/tree/v2.6.2" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2022-02-20T17:52:18+00:00" + }, + { + "name": "amphp/byte-stream", + "version": "v1.8.1", + "source": { + "type": "git", + "url": "https://github.com/amphp/byte-stream.git", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", + "shasum": "" + }, + "require": { + "amphp/amp": "^2", + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1.4", + "friendsofphp/php-cs-fixer": "^2.3", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6 || ^7 || ^8", + "psalm/phar": "^3.11.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "files": [ + "lib/functions.php" + ], + "psr-4": { + "Amp\\ByteStream\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "http://amphp.org/byte-stream", + "keywords": [ + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/byte-stream/issues", + "source": "https://github.com/amphp/byte-stream/tree/v1.8.1" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2021-03-30T17:13:30+00:00" + }, + { + "name": "composer/package-versions-deprecated", + "version": "1.11.99.5", + "source": { + "type": "git", + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" + }, + "replace": { + "ocramius/package-versions": "1.11.99" + }, + "require-dev": { + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-01-17T14:14:24+00:00" + }, { "name": "composer/pcre", "version": "1.0.1", @@ -225,6 +464,43 @@ ], "time": "2022-02-24T20:20:32+00:00" }, + { + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", + "source": { + "type": "git", + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "support": { + "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", + "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" + }, + "time": "2019-12-04T15:06:13+00:00" + }, { "name": "doctrine/annotations", "version": "1.13.2", @@ -443,6 +719,107 @@ ], "time": "2022-02-28T11:07:21+00:00" }, + { + "name": "felixfbecker/advanced-json-rpc", + "version": "v3.2.1", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", + "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447", + "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447", + "shasum": "" + }, + "require": { + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "php": "^7.1 || ^8.0", + "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "AdvancedJsonRpc\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "A more advanced JSONRPC implementation", + "support": { + "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", + "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1" + }, + "time": "2021-06-11T22:34:44+00:00" + }, + { + "name": "felixfbecker/language-server-protocol", + "version": "v1.5.2", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842", + "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "LanguageServerProtocol\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "PHP classes for the Language Server Protocol", + "keywords": [ + "language", + "microsoft", + "php", + "server" + ], + "support": { + "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2" + }, + "time": "2022-03-02T22:36:06+00:00" + }, { "name": "friendsofphp/php-cs-fixer", "version": "v2.19.3", @@ -611,6 +988,57 @@ ], "time": "2022-03-03T13:19:32+00:00" }, + { + "name": "netresearch/jsonmapper", + "version": "v4.0.0", + "source": { + "type": "git", + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", + "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0", + "squizlabs/php_codesniffer": "~3.5" + }, + "type": "library", + "autoload": { + "psr-0": { + "JsonMapper": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "OSL-3.0" + ], + "authors": [ + { + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" + } + ], + "description": "Map nested JSON structures onto PHP classes", + "support": { + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues", + "source": "https://github.com/cweiske/jsonmapper/tree/v4.0.0" + }, + "time": "2020-12-01T19:48:11+00:00" + }, { "name": "nextcloud/coding-standard", "version": "v0.5.0", @@ -708,6 +1136,59 @@ }, "time": "2021-11-30T19:35:32+00:00" }, + { + "name": "openlss/lib-array2xml", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/nullivex/lib-array2xml.git", + "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", + "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "autoload": { + "psr-0": { + "LSS": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Bryan Tong", + "email": "bryan@nullivex.com", + "homepage": "https://www.nullivex.com" + }, + { + "name": "Tony Butler", + "email": "spudz76@gmail.com", + "homepage": "https://www.nullivex.com" + } + ], + "description": "Array2XML conversion library credit to lalit.org", + "homepage": "https://www.nullivex.com", + "keywords": [ + "array", + "array conversion", + "xml", + "xml conversion" + ], + "support": { + "issues": "https://github.com/nullivex/lib-array2xml/issues", + "source": "https://github.com/nullivex/lib-array2xml/tree/master" + }, + "time": "2019-03-29T20:06:56+00:00" + }, { "name": "phar-io/manifest", "version": "2.0.3", @@ -4188,6 +4669,113 @@ ], "time": "2021-07-28T10:34:58+00:00" }, + { + "name": "vimeo/psalm", + "version": "4.24.0", + "source": { + "type": "git", + "url": "https://github.com/vimeo/psalm.git", + "reference": "06dd975cb55d36af80f242561738f16c5f58264f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/06dd975cb55d36af80f242561738f16c5f58264f", + "reference": "06dd975cb55d36af80f242561738f16c5f58264f", + "shasum": "" + }, + "require": { + "amphp/amp": "^2.4.2", + "amphp/byte-stream": "^1.5", + "composer/package-versions-deprecated": "^1.8.0", + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^1.1 || ^2.0 || ^3.0", + "dnoegel/php-xdg-base-dir": "^0.1.1", + "ext-ctype": "*", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-tokenizer": "*", + "felixfbecker/advanced-json-rpc": "^3.0.3", + "felixfbecker/language-server-protocol": "^1.5", + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "nikic/php-parser": "^4.13", + "openlss/lib-array2xml": "^1.0", + "php": "^7.1|^8", + "sebastian/diff": "^3.0 || ^4.0", + "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0", + "symfony/polyfill-php80": "^1.25", + "webmozart/path-util": "^2.3" + }, + "provide": { + "psalm/psalm": "self.version" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2", + "brianium/paratest": "^4.0||^6.0", + "ext-curl": "*", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpdocumentor/reflection-docblock": "^5", + "phpmyadmin/sql-parser": "5.1.0||dev-master", + "phpspec/prophecy": ">=1.9.0", + "phpunit/phpunit": "^9.0", + "psalm/plugin-phpunit": "^0.16", + "slevomat/coding-standard": "^7.0", + "squizlabs/php_codesniffer": "^3.5", + "symfony/process": "^4.3 || ^5.0 || ^6.0", + "weirdan/prophecy-shim": "^1.0 || ^2.0" + }, + "suggest": { + "ext-curl": "In order to send data to shepherd", + "ext-igbinary": "^2.0.5 is required, used to serialize caching data" + }, + "bin": [ + "psalm", + "psalm-language-server", + "psalm-plugin", + "psalm-refactor", + "psalter" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev", + "dev-3.x": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php", + "src/spl_object_id.php" + ], + "psr-4": { + "Psalm\\": "src/Psalm/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthew Brown" + } + ], + "description": "A static analysis tool for finding errors in PHP applications", + "keywords": [ + "code", + "inspection", + "php" + ], + "support": { + "issues": "https://github.com/vimeo/psalm/issues", + "source": "https://github.com/vimeo/psalm/tree/4.24.0" + }, + "time": "2022-06-26T11:47:54+00:00" + }, { "name": "webmozart/assert", "version": "1.10.0", @@ -4245,6 +4833,57 @@ "source": "https://github.com/webmozarts/assert/tree/1.10.0" }, "time": "2021-03-09T10:59:23+00:00" + }, + { + "name": "webmozart/path-util", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/path-util.git", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "webmozart/assert": "~1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\PathUtil\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", + "support": { + "issues": "https://github.com/webmozart/path-util/issues", + "source": "https://github.com/webmozart/path-util/tree/2.3.0" + }, + "abandoned": "symfony/filesystem", + "time": "2015-12-17T08:42:14+00:00" } ], "aliases": [], @@ -4257,5 +4896,5 @@ "platform-overrides": { "php": "7.4" }, - "plugin-api-version": "2.0.0" + "plugin-api-version": "2.2.0" } diff --git a/psalm.xml b/psalm.xml new file mode 100644 index 000000000..eac4c1739 --- /dev/null +++ b/psalm.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/psalm-baseline.xml b/tests/psalm-baseline.xml new file mode 100644 index 000000000..a3c0419bd --- /dev/null +++ b/tests/psalm-baseline.xml @@ -0,0 +1,3302 @@ + + + + + IFilter + + + + + IProvider + + + + + array<string,string|integer> + + + null + + + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IL10N + IManager + IURLGenerator + + + IL10N + IManager + IURLGenerator + + + Circles::generateAbsoluteLink($circle->getUniqueId()) + + + + + IEvent + IEvent + + + + + IEvent + IEvent + IEvent + + + + + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + + + + + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + IEvent + + + + + ISetting + + + + + ISetting + + + + + ISetting + + + + + \OC::$server + \OC::$server + \OC::$server + \OC::$server + \OC::$server + \OC::$server + + + + + App + IBootstrap + + + + + ICapability + + + + + Application + + + !$sendPasswordByMail + $sendPasswordByMail + + + $e + $share + $share + Defaults + IEMailTemplate + IEMailTemplate + IShare + IShare + IShare + IShare + IUser + Notifications + QueryException + QueryException + Util + + + $emailTemplate + $emailTemplate + $this->defaults + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->logger + $this->logger + $this->logger + $this->mailer + $this->mailer + $this->mailer + $this->mailer + $this->mailer + $this->urlGenerator + $this->userManager + Defaults + ICloudIdManager + IEMailTemplate + IEMailTemplate + IL10N + ILogger + IMailer + IRootFolder + IURLGenerator + IUserManager + IllegalIDChangeException + Notifications + OC::$server + OC::$server + OC::$server + OC::$server + OC::$server + OC::$server + OC::$server + OC::$server + OC::$server + OC::$server + OC::$server + OC::$server + OC::$server + OC::$server + private $l10n = null; + + + + + IFederatedUser + + + $this->federatedUserService->getCurrentUser() + + + + + $this->queryBuilder + $this->queryBuilder + $this->queryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + ICompositeExpression + ICompositeExpression + IQueryBuilder + + + + + ISearchPlugin + + + + + $this->capabilities + Application + Application + Application + Capabilities + Capabilities + + + AppConfig + + + OC::$server + + + + + IL10N + + + + + strtolower + + + + + (int)$type + + + IUserManager + + + IUserManager + + + + + Application + Application + Application + Application + + + setType + + + + + IInteractiveShellClient + + + + + Application + Application + + + null + + + $compareToInitiator !== null + $compareToOwner !== null + + + $owner === null + + + \OC::$server + + + + + IDBConnection + Share + + + $this->connection + $this->connection + $this->connection + IDBConnection + + + + + IL10N + + + IL10N + + + + + retrieveJson + + + + + getInstance + getInstance + getInvitedBy + getOwner + getSingleId + getStatus + hasInvitedBy + + + + + int|void|null + + + CardDavBackend + IUserManager + + + $this->cardDavBackend + $this->cardDavBackend + $this->userManager + CardDavBackend + IUserManager + + + + + OcsController + + + + + Controller + + + + + OcsController + + + + + Controller + + + + + TimedJob + + + + + TimedJob + + + + + TimedJob + + + + + TimedJob + + + + + $qb + + + $qb + + + + + $this->dbConnection + $this->dbConnection + $this->dbConnection + $this->dbConnection + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + + + + + $qb + + + + + ICompositeExpression + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IShare + IShare + + + $this->dbConnection + $this->dbConnection + $this->dbConnection + $this->dbConnection + $this->dbConnection + ICompositeExpression + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IShare + + + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + + + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + + + ExtendedQueryBuilder + + + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + CoreQueryBuilder + + + Connection + IShare + + + \OC::$server + + + dropTable + hasTable + + + + + $circle->getType() + + + $circle->getUniqueId(true) + $circleUniqueId + $circleUniqueId + (string)$uniqueId + -1 + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + + + + + IDBConnection + IL10N + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + + + $this->dbConnection + $this->dbConnection + $this->dbConnection + $this->dbConnection + ICompositeExpression + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + + + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + UniqueConstraintViolationException + + + $grp + $grp + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $this->groupManager + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + + + + + IDBConnection + IGroupManager + IL10N + + + $this->dbConnection + $this->dbConnection + $this->dbConnection + $this->dbConnection + IGroupManager + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + + + + + IDBConnection + IL10N + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + + + IDBConnection + IL10N + + + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + + + + + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + + + FederatedLink + + + $linkUniqueId + $linkUniqueId + $status + (string)$uniqueId + + + null + + + $link === null + + + $qb + $qb + $qb + $qb + $qb + $qb + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $this->l10n + $this->l10n + $this->l10n + + + + + IDBConnection + IL10N + + + $this->dbConnection + $this->dbConnection + $this->dbConnection + $this->dbConnection + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + + + + + self::SHARE_TYPE + self::SHARE_TYPE + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + + + + + IQueryBuilder + IQueryBuilder + IQueryBuilder + + + + + $qb + $qb + $qb + $qb + $qb + IQueryBuilder + IQueryBuilder + ShareNotFound + ShareNotFound + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + ShareNotFound + ShareNotFound + + + + + $this->dbConnection + $this->dbConnection + $this->dbConnection + $this->dbConnection + $this->dbConnection + $this->dbConnection + $this->dbConnection + $this->dbConnection + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + + + + + + $this->getItemsFromRequest($qb) + $this->getItemsFromRequest($qb) + $this->getItemsFromRequest($qb) + $this->getItemsFromRequest($qb) + $this->getItemsFromRequest($qb, true) + + + FederatedUser[] + Member[] + Member[] + Member[] + Member[] + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + + + Member|FederatedUser[] + + + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + CoreQueryBuilder + + + IQueryBuilder + + + + + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + + + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + IQueryBuilder + + + + + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + + + + + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + + + + + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + $getData + + + IShare + IShare + + + + + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + + + $shareId + $shareId + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + UniqueConstraintViolationException + + + $qb + $qb + $qb + $qb + $qb + $qb + $qb + $qb + \OC::$server + \OC::$server + + + + + $this->dbConnection + $this->dbConnection + $this->dbConnection + $this->dbConnection + IQueryBuilder + IQueryBuilder + IQueryBuilder + IQueryBuilder + + + + + CircleMemberGenericEvent + + + + + CircleResultGenericEvent + + + + + CircleResultGenericEvent + + + + + CircleResultGenericEvent + + + + + Event + + + + + CircleResultGenericEvent + + + + + CircleResultGenericEvent + + + + + CircleGenericEvent + + + + + CircleResultGenericEvent + + + + + CircleResultGenericEvent + + + + + Event + + + + + CircleGenericEvent + + + + + CircleGenericEvent + + + + + CircleGenericEvent + + + + + CircleMemberGenericEvent + + + + + CircleGenericEvent + + + + + CircleResultGenericEvent + + + + + CircleGenericEvent + + + + + Event + + + + + Event + + + + + Event + + + + + CircleMemberGenericEvent + + + + + CircleMemberGenericEvent + + + + + CircleMemberGenericEvent + + + + + Event + + + + + Http + + + + + Http + + + + + Http + + + + + Http + + + + + Http + + + + + Http + + + + + Http + + + + + Http + + + + + IUserManager + + + IUserManager + + + + + Application + + + + + CircleEventService + + + $this->circleEventService + CircleEventService + + + + + IUserManager + + + IUserManager + + + + + Defaults + IL10N + IMailer + IRootFolder + IURLGenerator + IUserManager + + + Defaults + IL10N + IMailer + IRootFolder + IURLGenerator + IUserManager + + + + + $mustBeChecked + + + + + $mustBeChecked + + + + + $mustBeChecked + + + + + $mustBeChecked + + + + + $mustBeChecked + + + !$sendPasswordByMail + $sendPasswordByMail + + + $e + IShare + IShare + IShare + NotFoundException + ShareNotFound + Util + + + $emailTemplate + $emailTemplate + $share + $share + $share + $share + $share + $this->defaults + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->mailer + $this->mailer + $this->mailer + IEMailTemplate + IShare + IllegalIDChangeException + ShareNotFound + + + + + $mustBeChecked + + + + + MountPoint + + + MoveableMount + + + + + ShareNotFound + ShareNotFound + + + + + IMountProvider + + + + + $mustBeChecked + + + + + $mustBeChecked + + + IEMailTemplate + IEMailTemplate + IEMailTemplate + IUser + + + $this->mailer + $this->urlGenerator + $this->userManager + + + + + $circle->getType() + + + $mustBeChecked + + + + + $mustBeChecked + + + + + $mustBeChecked + + + + + $mustBeChecked + + + + + $mustBeChecked + + + + + $mustBeChecked + + + + + IHandler + + + + + IUser + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IEventListener + + + + + IRepairStep + + + + + IRepairStep + + + + + SimpleMigrationStep + + + + + SimpleMigrationStep + + + + + SimpleMigrationStep + + + + + SimpleMigrationStep + + + + + SimpleMigrationStep + + + + + SimpleMigrationStep + + + + + SimpleMigrationStep + + + + + $this->type + + + string + + + $this->getUniqueId() + + + Application + + + (array)self::CIRCLES_SETTINGS_DEFAULT + + + IL10N + OC::$server + + + + + DeprecatedMember + + + $member->getType() + + + Application + + + self::fromArray(json_decode($json, true)) + + + IL10N + OC::$server + + + + + self + + + IHasher + + + $hasher + $hasher + \OC::$server + \OC::$server + + + + + $this->get('addressBookId', $data) + + + + + $this->l10n + $this->l10n + + + + + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + + + + + NCSignatory + + + + + $circleUniqueId + + + $this->circleUniqueId + + + string + + + $this->circleUniqueId + + + + + $arr + + + string[] + + + self + + + Circle|null + + + + + + string[] + + + CoreQueryBuilder + + + + + OC::$server + + + setBasedOn + setDisplayName + setInstance + setSingleId + setUserId + setUserType + + + + + $inheritedBy + + + $arr + + + string[] + + + self + + + + + $this->coreRequestBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + CoreQueryBuilder + + + IURLGenerator + + + $this->urlGenerator + IURLGenerator + + + + + $this->getCloudIdManager() + IClientService + IClientService + ICloudIdManager + ICloudIdManager + + + IClientService + ICloudIdManager + + + + + $this + + + + + IShare + IShare + IShare + + + + + '' + + + $arr + + + string[] + + + ShareByCircleProvider + ShareByCircleProvider + + + ?IShare + IRootFolder + IShare + IURLGenerator + IURLGenerator + IUserManager + Ishare + Ishare + + + + + $this->get('share_id', $data, '') + + + IShare + IShare + + + + + Application + + + null + + + null + null + + + + + MountPoint + + + MoveableMount + + + + + ShareNotFound + ShareNotFound + + + + + IMountProvider + + + + + INotifier + + + + + false + + + $result + + + search + + + Contacts + + + $search + + + \OC::$server + + + + + array + + + + + $result + + + array + + + $search + + + + + $result + + + search + + + LocalGroups + + + $search + + + \OC::$server + + + + + $result + + + LocalUsers + + + $search + + + ICollaboratorSearch + IShare + IShare + + + $this->search + ICollaboratorSearch + \OC::$server + + + + + CircleProbe|null + + + IHasher + IL10N + + + $this->hasher + $this->l10n + $this->l10n + $this->l10n + $this->l10n + IHasher + IL10N + + + + + $type + + + DeprecatedCircle + + + null|DeprecatedMember + + + Application + Application + Application + Application + Application + + + $type === '' + $type === '' + + + DeprecatedCircle + IGroupManager + IL10N + IUserSession + Member + Member + + + $this->groupManager + $this->groupManager + $this->groupManager + $this->l10n + $this->l10n + $this->l10n + $this->l10n + IGroupManager + IL10N + OC::$server + + + isFederatedCirclesAllowed + + + + + Application + Application + Application + Application + Application + + + IConfig + IURLGenerator + + + $this->config + $this->config + $this->config + $this->config + $this->config + $this->config + $this->config + $this->config + $this->config + $this->config + $this->config + $this->config + $this->config + $this->config + $this->config + $this->config + $this->config + $this->config + $this->config + $this->urlGenerator + IConfig + IURLGenerator + + + OC::$WEBROOT + + + + + is_null($contactId) + + + $addressBook + ContactsManager + IAddressBook + IAddressBook + IManager + IManager + IManager + IURLGenerator + + + IURLGenerator + OC::$server + OC::$server + + + + + $existing + + + DeprecatedCircle[] + + + $bookId + $bookId + $bookId + + + CardDavBackend + ICloudIdManager + IUserManager + ManagerEvent + + + $this->cardDavBackend + $this->cardDavBackend + $this->cardDavBackend + $this->cardDavBackend + $this->cardDavBackend + $this->userManager + $this->userManager + $this->userManager + $this->userManager + CardDavBackend + ICloudIdManager + IUserManager + + + + + AddingCircleMemberEvent + AddingCircleMemberEvent + CircleCreatedEvent + CircleDestroyedEvent + CircleEditedEvent + CircleGenericEvent + CircleGenericEvent + CircleGenericEvent + CircleGenericEvent + CircleGenericEvent + CircleGenericEvent + CircleGenericEvent + CircleGenericEvent + CircleGenericEvent + CircleGenericEvent + CircleGenericEvent + CircleGenericEvent + CircleGenericEvent + CircleGenericEvent + CircleGenericEvent + CircleGenericEvent + CircleMemberAddedEvent + CircleMemberAddedEvent + CircleMemberEditedEvent + CircleMemberEditedEvent + CircleMemberRemovedEvent + CircleMemberRemovedEvent + CircleMemberRequestedEvent + CircleMemberRequestedEvent + CreatingCircleEvent + CreatingFileShareEvent + DestroyingCircleEvent + EditingCircleEvent + EditingCircleMemberEvent + EditingCircleMemberEvent + FileShareCreatedEvent + MembershipsCreatedEvent + MembershipsRemovedEvent + PreparingCircleMemberEvent + PreparingFileShareEvent + RemovingCircleMemberEvent + RemovingCircleMemberEvent + RequestingCircleMemberEvent + RequestingCircleMemberEvent + + + IEventDispatcher + + + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + $this->eventDispatcher + IEventDispatcher + + + + + $context + new GenericEvent(null, $arguments) + + + Application + + + IActivityManager + IEvent + INotificationManager + ITimeFactory + IURLGenerator + IUserManager + + + $event + $event + $event + $event + $event + $event + $event + $event + $event + $event + $event + $event + $event + $event + $event + $event + $event + $event + $event + $event + $notification + $notification + $notification + $notification + $notification + $notification + $notification + $notification + $notification + $notification + $this->activityManager + $this->notificationManager + $this->notificationManager + $this->notificationManager + $this->notificationManager + $this->notificationManager + $this->notificationManager + $this->publishEvent($event, [$user]); + $this->time + $this->urlGenerator + $this->urlGenerator + $this->urlGenerator + $this->urlGenerator + $this->urlGenerator + $this->urlGenerator + $this->urlGenerator + $this->urlGenerator + $this->urlGenerator + $this->urlGenerator + $this->userManager + IActivityManager + INotification + INotificationManager + ITimeFactory + IURLGenerator + IUserManager + \OCP\Activity\IEvent + + + + + OC::$server + + + + + gObj + + + + + FederatedUser + + + Application + Application + Application + + + ICacheFactory + IGroupManager + IUserManager + IUserSession + IUser|null + + + $this->cache + $this->cache + $this->cache + $this->groupManager + $this->userManager + $this->userSession + ICache + IGroupManager + IUserManager + IUserSession + + + + + IURLGenerator + + + IURLGenerator + + + asyncBroadcast + checkEvent + checkEvent + checkEvent + getGlobalScaleEvent + getGlobalScaleEvent + getGlobalScaleEvent + + + + + $wrapper + + + $this->eventWrapperRequest->getByToken($token) + + + GSWrapper[] + + + configureRequest + + + IURLGenerator + + + $this->urlGenerator + $this->urlGenerator + $this->urlGenerator + IURLGenerator + + + asyncBroadcast + getGlobalScaleEvent + getGlobalScaleEvent + getInstances + getInstances + getKey + + + + + IURLGenerator + IUserManager + IUserSession + Signer + + + IURLGenerator + IUserManager + IUserSession + Signer + + + + + IGroupManager + IL10N + IUserManager + + + $this->groupManager + $this->groupManager + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->userManager + IGroupManager + IL10N + IUserManager + + + + + IRequest + IURLGenerator + + + IURLGenerator + + + + + IGroupManager + IUserManager + + + $this->userManager + IGroupManager + IUserManager + + + + + $members + + + DeprecatedMember[] + + + $circle->getType() + + + (int)$level + + + IL10N + IUserManager + + + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->userManager + IL10N + IUserManager + OC::$server + + + isInvitationSkipped + + + + + if (!in_array($member->getCircleId(), $knownIds)) { + + + + + Application + + + $addressBook + ContactsManager + IDBConnection + IManager + IShare + IShare + IShare + IShare + IURLGenerator + \OCP\DB\Exception + \OCP\DB\Exception + \OCP\DB\Exception + \OCP\DB\Exception + + + $cm + $cm + $this->dbConnection + $this->dbConnection + $this->dbConnection + $this->dbConnection + $this->dbConnection + $this->dbConnection + IDBConnection + IURLGenerator + OC::$server + OC::$server + \OCP\DB\Exception + + + + + string + + + Application + Application + + + is_array($contact) + + + DataResponse + DataResponse + Http + Http + IContactsStore + ILogger + IUserManager + + + $cManager + $cManager + $this->logger + $this->logger + $this->userManager + $this->userManager + $this->userManager + $this->userManager + DataResponse + DataResponse + IContactsStore + ILogger + IUserManager + OC::$server + OC::$server + OC::$server + OC::$server + OC::$server + OC::$server + OC::$server + + + + + $notification + $notification + $notification + $notification + $notification + $notification + $notification + $notification + INotification + INotificationManager + IURLGenerator + + + $this->notificationManager + $this->notificationManager + $this->urlGenerator + INotificationManager + IURLGenerator + + + + + IOutput + + + $this->migrationOutput + $this->migrationOutput + $this->migrationOutput + $this->migrationOutput + IOutput + + + + + IL10N + + + $this->l10n + IL10N + + + + + Application + Application + + + is_null($object) + + + $signed === null + + + Http + IURLGenerator + + + IURLGenerator + + + + + OC::$server + + + + + Defaults + IEMailTemplate + IEMailTemplate + IEMailTemplate + IHasher + IL10N + IMailer + \OCP\Util + + + $this->defaults + $this->hasher + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->l10n + $this->mailer + $this->mailer + $this->mailer + Defaults + IHasher + IL10N + IMailer + + + + + IShare + IURLGenerator + + + IURLGenerator + + + + + $this->cache + $this->cache + $this->cache + $this->cache + $this->cache + $this->cache + $this->cache + ICache + ICacheFactory + IShare + IShare + IShare + + + + + federatedEventService + federatedEventService + + + Application + Application + + + IGroupManager + IUserManager + + + $this->groupManager + $this->groupManager + $this->userManager + IGroupManager + IUserManager + + + + + TimeFactory + + + $this->timeFactory + TimeFactory + + + + + IShareProvider + + + + + IShareProvider + + + + + $varr[0] !== null + + + $request + $request + $request + $request + $request + $request + $request + $request + $request + $signedRequest->getIncomingRequest() + IRequest + + + OC::$server + + + + + QueryBuilder + + + + + IClient + IClient + + + IClient + + + + + BadResponseException + BadResponseException + BadResponseException|null + IResponse|null + + + BadResponseException + private $exception = null; + + + + + IRequest + IRequest + + + IRequest + + + + + $item + $this->data + $this->data + + + array + array + + + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + $this->data + + + + + getArray + + + + + IConfig + IConfig + IConfig + IConfig + IConfig + + + OC::$server + OC::$server + OC::$server + OC::$server + OC::$server + + + + + HintException + + + OC::$server + + + + + $e + + + $this->clientService() + ClientException + IClientService + IResponse + + + + + IConfig + + + $config + $config + OC::$server + + + + + $s[$e] + + + + + IProvider + + + + + SearchResultEntry + + + diff --git a/tests/stub.phpstub b/tests/stub.phpstub new file mode 100644 index 000000000..291a84402 --- /dev/null +++ b/tests/stub.phpstub @@ -0,0 +1,1023 @@ + + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +namespace OCA\Files_Trashbin\Trash { + use OCP\Files\Node; + use OCP\Files\Storage\IStorage; + use OCP\IUser; + use OCP\Files\FileInfo; + + interface ITrashManager { + public function pauseTrash(); + + public function resumeTrash(); + } + + interface ITrashBackend { + /** + * @return ITrashItem[] + */ + public function listTrashRoot(IUser $user): array; + + /** + * @return ITrashItem[] + */ + public function listTrashFolder(ITrashItem $folder): array; + + /** + * @param ITrashItem $item + */ + public function restoreItem(ITrashItem $item); + + public function removeItem(ITrashItem $item); + + public function moveToTrash(IStorage $storage, string $internalPath): bool; + + /** + * @return Node|null + */ + public function getTrashNodeById(IUser $user, int $fileId); + } + + interface ITrashItem extends FileInfo { + public function getTrashBackend(): ITrashBackend; + + public function getOriginalLocation(): string; + + public function getDeletedTime(): int; + + public function getTrashPath(): string; + + public function isRootItem(): bool; + + public function getUser(): IUser; + + public function getTitle(): string; + } + + class TrashItem implements ITrashItem { + public function getTrashBackend(): ITrashBackend { + throw new \Exception('stub'); + } + + public function getOriginalLocation(): string { + throw new \Exception('stub'); + } + + public function getDeletedTime(): int { + throw new \Exception('stub'); + } + + public function getTrashPath(): string { + throw new \Exception('stub'); + } + + public function isRootItem(): bool { + throw new \Exception('stub'); + } + + public function getUser(): IUser { + throw new \Exception('stub'); + } + + public function getEtag() { + } + + public function getId() { + } + + public function getSize($includeMounts = true) { + throw new \Exception('stub'); + } + + public function getMtime() { + throw new \Exception('stub'); + } + + public function getName() { + throw new \Exception('stub'); + } + + public function getInternalPath() { + throw new \Exception('stub'); + } + + public function getPath() { + throw new \Exception('stub'); + } + + public function getMimetype() { + throw new \Exception('stub'); + } + + public function getMimePart() { + throw new \Exception('stub'); + } + + public function getStorage() { + throw new \Exception('stub'); + } + + public function isEncrypted() { + throw new \Exception('stub'); + } + + public function getPermissions() { + throw new \Exception('stub'); + } + + public function getType() { + throw new \Exception('stub'); + } + + public function isReadable() { + throw new \Exception('stub'); + } + + public function isUpdateable() { + throw new \Exception('stub'); + } + + public function isCreatable() { + throw new \Exception('stub'); + } + + public function isDeletable() { + throw new \Exception('stub'); + } + + public function isShareable() { + throw new \Exception('stub'); + } + + public function isShared() { + throw new \Exception('stub'); + } + + public function isMounted() { + throw new \Exception('stub'); + } + + public function getMountPoint() { + throw new \Exception('stub'); + } + + public function getOwner() { + throw new \Exception('stub'); + } + + public function getChecksum() { + throw new \Exception('stub'); + } + + public function getExtension(): string { + throw new \Exception('stub'); + } + + public function getTitle(): string { + throw new \Exception('stub'); + } + + public function getCreationTime(): int { + throw new \Exception('stub'); + } + + public function getUploadTime(): int { + throw new \Exception('stub'); + } + } +} + +namespace OCA\Files_Trashbin { + class Expiration { + + public const DEFAULT_RETENTION_OBLIGATION = 30; + public const NO_OBLIGATION = -1; + + public function setRetentionObligation(string $obligation) {} + + /** @return bool */ + public function isEnabled() {} + + /** + * @param int $timestamp + * @param bool $quotaExceeded + * @return bool + */ + public function isExpired($timestamp, $quotaExceeded = false) {} + } +} + + +namespace OCA\Files_Versions\Versions { + use OCP\Files\File; + use OCP\Files\FileInfo; + use OCP\Files\NotFoundException; + use OCP\Files\Storage\IStorage; + use OCP\IUser; + + interface IVersionBackend { + public function useBackendForStorage(IStorage $storage): bool; + + /** + * @return IVersion[] + */ + public function getVersionsForFile(IUser $user, FileInfo $file): array; + + public function createVersion(IUser $user, FileInfo $file); + + public function rollback(IVersion $version); + + /** + * @return resource|false + * @throws NotFoundException + */ + public function read(IVersion $version); + + /** + * @param int|string $revision + */ + public function getVersionFile(IUser $user, FileInfo $sourceFile, $revision): ?File; + } + + interface IVersion { + public function getBackend(): IVersionBackend; + + public function getSourceFile(): FileInfo; + + /** + * @return int|string + */ + public function getRevisionId(); + + public function getTimestamp(): int; + + public function getSize(): int; + + public function getSourceFileName(): string; + + public function getMimeType(): string; + + public function getVersionPath(): string; + + public function getUser(): IUser; + } + + class Version implements IVersion { + public function __construct( + int $timestamp, + $revisionId, + string $name, + int $size, + string $mimetype, + string $path, + FileInfo $sourceFileInfo, + IVersionBackend $backend, + IUser $user + ) { + } + + public function getBackend(): IVersionBackend { + throw new \Exception('stub'); + } + + public function getSourceFile(): FileInfo { + throw new \Exception('stub'); + } + + public function getRevisionId() { + throw new \Exception('stub'); + } + + public function getTimestamp(): int { + throw new \Exception('stub'); + } + + public function getSize(): int { + throw new \Exception('stub'); + } + + public function getSourceFileName(): string { + throw new \Exception('stub'); + } + + public function getMimeType(): string { + throw new \Exception('stub'); + } + + public function getVersionPath(): string { + throw new \Exception('stub'); + } + + public function getUser(): IUser { + throw new \Exception('stub'); + } + } +} + +namespace OCA\Files_Versions { + class Expiration { + // how long do we keep files a version if no other value is defined in the config file (unit: days) + public const NO_OBLIGATION = -1; + /** @return bool */ + public function isEnabled() {} + + public function shouldAutoExpire() { } + + /** + * @param int $timestamp + * @param bool $quotaExceeded + * @return bool + */ + public function isExpired($timestamp, $quotaExceeded = false) {} + + /** @return int */ + public function getMaxAgeAsTimestamp() {} + } +} + +namespace { + + use OCP\IServerContainer; + + class OC { + static $CLI = false; + /** @var IServerContainer */ + static $server; + } +} + +namespace OC\Files\Node { + use OCP\Files\FileInfo; + abstract class Node implements \OCP\Files\Node { + /** @return FileInfo|\ArrayAccess */ + public function getFileInfo() {} + + /** @return \OCP\Files\Mount\IMountPoint */ + public function getMountPoint() {} + } +} + +namespace OC\Hooks { + class Emitter { + public function emit(string $class, string $value, array $option) {} + /** Closure $closure */ + public function listen(string $class, string $value, $closure) {} + } + class BasicEmitter extends Emitter { + } +} + +namespace OC\Cache { + class CappedMemoryCache { + public function get($key) {} + public function set($key, $value, $ttl = '') {} + } +} + +namespace OC\Core\Command { + use Symfony\Component\Console\Input\InputInterface; + use Symfony\Component\Console\Output\OutputInterface; + class Base { + public const OUTPUT_FORMAT_PLAIN = 'plain'; + public const OUTPUT_FORMAT_JSON = 'json'; + public const OUTPUT_FORMAT_JSON_PRETTY = 'json_pretty'; + + public function __construct() {} + protected function configure() {} + public function run(InputInterface $input, OutputInterface $output) {} + public function setName(string $name) {} + public function getHelper(string $name) {} + protected function writeArrayInOutputFormat(InputInterface $input, OutputInterface $output, $items, $prefix = ' - ') { + } + } +} + +namespace OC\Files\ObjectStore { + class NoopScanner {} +} + +namespace Symfony\Component\Console\Helper { + use Symfony\Component\Console\Output\OutputInterface; + class Table { + public function __construct(OutputInterface $text) {} + public function setHeaders(array $header) {} + public function setRows(array $rows) {} + public function render() {} + public function appendRow(array $row) {} + } +} + +namespace Symfony\Component\Console\Input { + class InputInterface { + public function getOption(string $key) {} + public function getArgument(string $key) {} + } + class InputArgument { + const REQUIRED = 0; + const OPTIONAL = 1; + const IS_ARRAY = 1; + } + class InputOption { + const VALUE_NONE = 1; + const VALUE_REQUIRED = 1; + const VALUE_OPTIONAL = 1; + } +} + +namespace Symfony\Component\Console\Question { + class ConfirmationQuestion { + public function __construct(string $text, bool $default, string $accept = 'y') {} + } +} + +namespace Symfony\Component\Console\Output { + class OutputInterface { + public const VERBOSITY_VERBOSE = 1; + public function writeln(string $text, int $flat = 0) {} + public function write(string $text, int $flat = 0) {} + } +} + +namespace OC\User { + class NoUserException extends \Exception {} +} + +namespace OC\DB { + use OCP\IDBConnection; + class ConnectionAdapter {} + + class SchemaWrapper { + public function __construct(IDBConnection $connection) {} + + public function performDropTableCalls(); + } +} + +namespace OC { + class SystemConfig {} +} + +namespace Doctrine\DBAL\Query { + class QueryBuilder { + public const SELECT = 'select'; + } +} + +namespace OC\DB\QueryBuilder { + use OCP\DB\IResult; + use OCP\DB\QueryBuilder\ICompositeExpression; + use OCP\DB\QueryBuilder\ILiteral; + use OCP\DB\QueryBuilder\IParameter; + use OCP\DB\QueryBuilder\IQueryBuilder; + use OCP\DB\QueryBuilder\IQueryFunction; + use Psr\Log\LoggerInterface; + + class QueryBuilder implements IQueryBuilder { + public function __construct(ConnectionAdapter $connection, SystemConfig $systemConfig, LoggerInterface $logger) { + } + public function automaticTablePrefix($enabled) { } + public function expr() { } + public function func() { } + public function getType() { } + public function getConnection() { } + public function getState() { } + public function execute() { } + public function executeQuery(): IResult { } + public function executeUpdate(): int { } + public function executeStatement(): int { } + public function getSQL() { } + public function setParameter($key, $value, $type = null) { } + public function setParameters(array $params, array $types = []) { } + public function getParameters() { } + public function getParameter($key) { } + public function getParameterTypes() { } + public function getParameterType($key) { } + public function setFirstResult($firstResult) { } + public function getFirstResult() { } + public function setMaxResults($maxResults) { } + public function getMaxResults() { } + public function select(...$selects) { } + public function selectAlias($select, $alias) { } + public function selectDistinct($select) { } + public function addSelect(...$selects) { } + public function delete($delete = null, $alias = null) { } + public function update($update = null, $alias = null) { } + public function insert($insert = null) { } + public function from($from, $alias = null) { } + public function join($fromAlias, $join, $alias, $condition = null) { } + public function innerJoin($fromAlias, $join, $alias, $condition = null) { } + public function leftJoin($fromAlias, $join, $alias, $condition = null) { } + public function rightJoin($fromAlias, $join, $alias, $condition = null) { } + public function set($key, $value) { } + public function where(...$predicates) { } + public function andWhere(...$where) { } + public function orWhere(...$where) { } + public function groupBy(...$groupBys) { } + public function addGroupBy(...$groupBys) { } + public function setValue($column, $value) { } + public function values(array $values) { } + public function having(...$having) { } + public function andHaving(...$having) { } + public function orHaving(...$having) { } + public function orderBy($sort, $order = null) { } + public function addOrderBy($sort, $order = null) { } + public function getQueryPart($queryPartName) { } + public function getQueryParts() { } + public function resetQueryParts($queryPartNames = null) { } + public function resetQueryPart($queryPartName) { } + public function createNamedParameter($value, $type = IQueryBuilder::PARAM_STR, $placeHolder = null) { } + public function createPositionalParameter($value, $type = IQueryBuilder::PARAM_STR) { } + public function createParameter($name) { } + public function createFunction($call) { } + public function getLastInsertId(): int { } + public function getTableName($table) { } + protected function prefixTableName($table) { } + public function getColumnName($column, $tableAlias = '') { } + public function quoteAlias($alias) { } + } +} + +namespace OC\Files\Cache { + use OCP\Files\Cache\ICache; + use OCP\Files\Cache\ICacheEntry; + use OCP\Files\Search\ISearchQuery; + use OCP\Files\Search\ISearchOperator; + use OCP\Files\Search\ISearchQuery; + use OCP\Files\IMimeTypeLoader; + + class Cache implements ICache { + /** + * @param \OCP\Files\Cache\ICache $cache + */ + public function __construct($cache) { + $this->cache = $cache; + } + public function getNumericStorageId() { } + public function get() { } + public function getIncomplete() {} + public function getPathById($id) {} + public function getAll() {} + public function get($file) {} + public function getFolderContents($folder) {} + public function getFolderContentsById($fileId) {} + public function put($file, array $data) {} + public function insert($file, array $data) {} + public function update($id, array $data) {} + public function getId($file) {} + public function getParentId($file) {} + public function inCache($file) {} + public function remove($file) {} + public function move($source, $target) {} + public function moveFromCache(ICache $sourceCache, $sourcePath, $targetPath) {} + public function clear() {} + public function getStatus($file) {} + public function search($pattern) {} + public function searchByMime($mimetype) {} + public function searchQuery(ISearchQuery $query) {} + public function correctFolderSize($path, $data = null, $isBackgroundScan = false) {} + public function copyFromCache(ICache $sourceCache, ICacheEntry $sourceEntry, string $targetPath): int {} + public function normalize($path) {} + public function getQueryFilterForStorage(): ISearchOperator {} + public function getCacheEntryFromSearchResult(ICacheEntry $rawEntry): ?ICacheEntry {} + public static function cacheEntryFromData($data, IMimeTypeLoader $mimetypeLoader): ICacheEntry {} + } +} + +namespace OC\Files\Cache\Wrapper { + use OC\Files\Cache\Cache; + class CacheWrapper extends Cache {} +} + +namespace OC\Files { + use OCP\Files\Cache\ICacheEntry; + use OCP\Files\Mount\IMountPoint; + use OCP\IUser; + + class Filesystem { + public static function addStorageWrapper(string $wrapperName, callable $wrapper, int $priority = 50) { + } + } + + class FileInfo implements \OCP\Files\FileInfo { + /** + * @param string|boolean $path + * @param \OCP\Files\Storage\IStorage $storage + * @param string $internalPath + * @param array|ICacheEntry $data + * @param \OCP\Files\Mount\IMountPoint $mount + * @param \OCP\IUser|null $owner + */ + public function __construct($path, $storage, $internalPath, $data, $mount, $owner = null) {} + } + class View { + public function __construct(string $path) {} + public function unlink($path) {} + } +} + +namespace OC\User { + use OCP\UserInterface; + use OCP\IUser; + use Symfony\Component\EventDispatcher\EventDispatcherInterface; + class User implements IUser { + public function __construct(string $uid, ?UserInterface $backend, EventDispatcherInterface $dispatcher, $emitter = null, IConfig $config = null, $urlGenerator = null) {} + } +} + +namespace OCA\DAV\Upload { + + use Sabre\DAV\File; + + abstract class FutureFile extends File {} +} + +namespace OCA\DAV\Connector\Sabre { + + class Node { + public function getFileInfo(): \OCP\Files\FileInfo {} + } +} + +namespace OC\BackgroundJob { + + use OCP\BackgroundJob\IJob; + use OCP\BackgroundJob\IJobList; + use OCP\ILogger; + + abstract class TimedJob implements IJob { + public function execute(IJobList $jobList, ILogger $logger = null) { + } + + abstract protected function run($argument); + + public function setId(int $id) { + } + + public function setLastRun(int $lastRun) { + } + + public function setArgument($argument) { + } + + public function getId() { + } + + public function getLastRun() { + } + + public function getArgument() { + } + } +} + +namespace OC\Files\Mount { + use OC\Files\Filesystem; + use OC\Files\Storage\Storage; + use OC\Files\Storage\StorageFactory; + use OCP\Files\Mount\IMountPoint; + + class MountPoint implements IMountPoint { + /** + * @var \OC\Files\Storage\Storage $storage + */ + protected $storage = null; + protected $class; + protected $storageId; + protected $rootId = null; + + /** @var int|null */ + protected $mountId; + + /** + * @param string|\OCP\Files\Storage\IStorage $storage + * @param string $mountpoint + * @param array $arguments (optional) configuration for the storage backend + * @param \OCP\Files\Storage\IStorageFactory $loader + * @param array $mountOptions mount specific options + * @param int|null $mountId + * @throws \Exception + */ + public function __construct($storage, $mountpoint, $arguments = null, $loader = null, $mountOptions = null, $mountId = null) { + throw new \Exception('stub'); + } + + /** + * get complete path to the mount point, relative to data/ + * + * @return string + */ + public function getMountPoint() { + throw new \Exception('stub'); + } + + /** + * Sets the mount point path, relative to data/ + * + * @param string $mountPoint new mount point + */ + public function setMountPoint($mountPoint) { + throw new \Exception('stub'); + } + + /** + * @return \OCP\Files\Storage\IStorage + */ + public function getStorage() { + throw new \Exception('stub'); + } + + /** + * @return string + */ + public function getStorageId() { + throw new \Exception('stub'); + } + + /** + * @return int + */ + public function getNumericStorageId() { + throw new \Exception('stub'); + } + + /** + * @param string $path + * @return string + */ + public function getInternalPath($path) { + throw new \Exception('stub'); + } + + /** + * @param callable $wrapper + */ + public function wrapStorage($wrapper) { + throw new \Exception('stub'); + } + + /** + * Get a mount option + * + * @param string $name Name of the mount option to get + * @param mixed $default Default value for the mount option + * @return mixed + */ + public function getOption($name, $default) { + throw new \Exception('stub'); + } + + /** + * Get all options for the mount + * + * @return array + */ + public function getOptions() { + throw new \Exception('stub'); + } + + /** + * @return int + */ + public function getStorageRootId() { + throw new \Exception('stub'); + } + + public function getMountId() { + throw new \Exception('stub'); + } + + public function getMountType() { + throw new \Exception('stub'); + } + + public function getMountProvider(): string { + throw new \Exception('stub'); + } + } +} + +namespace OC\Files\Storage\Wrapper{ + + use OCP\Files\Cache\ICache; + use OCP\Files\Cache\ICacheEntry; + use OCP\Files\Search\ISearchQuery; + use OCP\Files\Storage\IStorage; + + class Wrapper implements IStorage { + public function __construct(array $parameters) { + } + + public function getWrapperStorage(): ?IStorage {} + + public function getId() {} + + public function mkdir($path) {} + + public function rmdir($path) {} + + public function opendir($path) { + throw new \Exception('stub'); + } + + public function is_dir($path) { + throw new \Exception('stub'); + } + + public function is_file($path) { + throw new \Exception('stub'); + } + + public function stat($path) { + throw new \Exception('stub'); + } + + public function filetype($path) { + throw new \Exception('stub'); + } + + public function filesize($path) { + throw new \Exception('stub'); + } + + public function isCreatable($path) { + throw new \Exception('stub'); + } + + public function isReadable($path) { + throw new \Exception('stub'); + } + + public function isUpdatable($path) { + throw new \Exception('stub'); + } + + public function isDeletable($path) { + throw new \Exception('stub'); + } + + public function isSharable($path) { + throw new \Exception('stub'); + } + + public function getPermissions($path) { + throw new \Exception('stub'); + } + + public function file_exists($path) { + throw new \Exception('stub'); + } + + public function filemtime($path) { + throw new \Exception('stub'); + } + + public function file_get_contents($path) { + throw new \Exception('stub'); + } + + public function file_put_contents($path, $data) { + throw new \Exception('stub'); + } + + public function unlink($path) { + throw new \Exception('stub'); + } + + public function rename($path1, $path2) { + throw new \Exception('stub'); + } + + public function copy($path1, $path2) { + throw new \Exception('stub'); + } + + public function fopen($path, $mode) { + throw new \Exception('stub'); + } + + public function getMimeType($path) { + throw new \Exception('stub'); + } + + public function hash($type, $path, $raw = false) { + throw new \Exception('stub'); + } + + public function free_space($path) { + throw new \Exception('stub'); + } + + public function touch($path, $mtime = null) { + throw new \Exception('stub'); + } + + public function getLocalFile($path) { + throw new \Exception('stub'); + } + + public function hasUpdated($path, $time) { + throw new \Exception('stub'); + } + + public function getETag($path) { + throw new \Exception('stub'); + } + + public function isLocal() { + throw new \Exception('stub'); + } + + public function instanceOfStorage($class) { + throw new \Exception('stub'); + } + + public function getDirectDownload($path) { + throw new \Exception('stub'); + } + + public function verifyPath($path, $fileName) { + throw new \Exception('stub'); + } + + public function copyFromStorage(IStorage $sourceStorage, $sourceInternalPath, $targetInternalPath) { + throw new \Exception('stub'); + } + + public function moveFromStorage(IStorage $sourceStorage, $sourceInternalPath, $targetInternalPath) { + throw new \Exception('stub'); + } + + public function test() { + throw new \Exception('stub'); + } + + public function getAvailability() { + throw new \Exception('stub'); + } + + public function setAvailability($isAvailable) { + throw new \Exception('stub'); + } + + public function getOwner($path) { + throw new \Exception('stub'); + } + + public function getCache() { + throw new \Exception('stub'); + } + + public function getPropagator() { + throw new \Exception('stub'); + } + + public function getScanner() { + throw new \Exception('stub'); + } + + public function getUpdater() { + throw new \Exception('stub'); + } + + public function getWatcher() { + throw new \Exception('stub'); + } + } + + class Jail extends Wrapper { + public function getUnjailedPath(string $path): string {} + } + + class Quota extends Wrapper { + public function getQuota() {} + } + + class PermissionsMask extends Wrapper { + public function getQuota() {} + } +} + +namespace OC\AppFramework\Middleware\Security\Exceptions { + class NotLoggedInException extends \Exception {} +}