/** * @return \Donquixote\HastyReflectionCommon\Reflection\FunctionLike\MethodReflectionInterface[] */ protected function findMethods() { $methods = $this->getOwnMethods(); $parentClass = $this->extends->getParentClass(); if (NULL !== $parentClass) { $methods += $parentClass->getMethods(); } foreach ($this->interfacesAll->getAllInterfaces(FALSE) as $interface) { $methods += $interface->getOwnMethods(); } return $methods; }
/** * @return bool */ protected function calcHasMethods() { if ($this->ownBody->hasOwnMethods()) { return TRUE; } if (NULL !== ($parentClass = $this->extends->getParentClass())) { if ($parentClass->hasMethods()) { return TRUE; } } foreach ($this->interfacesAll->getAllInterfaces(FALSE) as $interface) { if ($interface->hasMethods()) { return TRUE; } } return FALSE; }
/** * Gets the interfaces directly/explicitly implemented or extended by this * class or interface. * * This does not include interfaces implemented by parent classes, or extended * by explicitly implemented interfaces. * * If the class itself is an interface, it will NOT be part of the returned * array. * * Some implementations with no access to a parser might simply return ALL * interfaces, but without the class itself, if it is an interface. * * @return \Donquixote\HastyReflectionCommon\Reflection\ClassLike\ClassLikeReflectionInterface[] */ function getOwnInterfaces() { return $this->allInterfaces->getAllInterfaces(FALSE); }
/** * @param string $interfaceName * @param bool $includeSelf * * @return bool */ function extendsOrImplementsInterface($interfaceName, $includeSelf) { return $this->interfacesAll->extendsOrImplementsInterface($interfaceName, $includeSelf); }