From 469fd3b3a3a256d7651eac364d96fbbae16c389b Mon Sep 17 00:00:00 2001 From: Olivier Paroz Date: Sun, 14 Dec 2014 23:54:31 +0100 Subject: [PATCH] Olivier Paroz \OCP\AppFramework\Utility\IControllerMethodReflector --- .../utility/controllermethodreflector.php | 4 +- .../utility/icontrollermethodreflector.php | 63 +++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 lib/public/appframework/utility/icontrollermethodreflector.php diff --git a/lib/private/appframework/utility/controllermethodreflector.php b/lib/private/appframework/utility/controllermethodreflector.php index 8ad35ed35c2..00d6e1f1573 100644 --- a/lib/private/appframework/utility/controllermethodreflector.php +++ b/lib/private/appframework/utility/controllermethodreflector.php @@ -24,11 +24,13 @@ namespace OC\AppFramework\Utility; +use \OCP\AppFramework\Utility\IControllerMethodReflector; + /** * Reads and parses annotations from doc comments */ -class ControllerMethodReflector { +class ControllerMethodReflector implements IControllerMethodReflector{ private $annotations; private $types; diff --git a/lib/public/appframework/utility/icontrollermethodreflector.php b/lib/public/appframework/utility/icontrollermethodreflector.php new file mode 100644 index 00000000000..190fc15a4fe --- /dev/null +++ b/lib/public/appframework/utility/icontrollermethodreflector.php @@ -0,0 +1,63 @@ + + * @copyright Olivier Paroz 2014 + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library 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 library. If not, see . + * + */ + +namespace OCP\AppFramework\Utility; + +/** + * Interface ControllerMethodReflector + * + * Reads and parses annotations from doc comments + * + * @package OCP\AppFramework\Utility + */ +interface IControllerMethodReflector { + + /** + * @param object $object an object or classname + * @param string $method the method which we want to inspect + */ + public function reflect($object, $method); + + /** + * Inspects the PHPDoc parameters for types + * + * @param string $parameter the parameter whose type comments should be + * parsed + * @return string|null type in the type parameters (@param int $something) + * would return int or null if not existing + */ + public function getType($parameter); + + /** + * @return array the arguments of the method with key => default value + */ + public function getParameters(); + + /** + * Check if a method contains an annotation + * + * @param string $name the name of the annotation + * @return bool true if the annotation is found + */ + public function hasAnnotation($name); + +} \ No newline at end of file -- 2.39.5