<?php /** * Linking to element documentation is performed by the classes in this file. * * abstractLink descendants contain enough information to differentiate every * documentable element, and so can be converted to a link string by * {@link Converter::returnSee()} * * phpDocumentor :: automatic documentation generator * * PHP versions 4 and 5 * * Copyright (c) 2002-2008 Gregory Beaver * * LICENSE: * * This library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General * Public License as published by the Free Software Foundation; * either version 2.1 of the License, or (at your option) 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * @category ToolsAndUtilities * @package phpDocumentor * @subpackage Links * @author Gregory Beaver <cellog@php.net> * @copyright 2002-2008 Gregory Beaver * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version CVS: $Id: LinkClasses.inc 253641 2008-02-24 02:35:44Z ashnazg $ * @filesource * @link http://www.phpdoc.org * @link http://pear.php.net/PhpDocumentor * @since 1.2.0 * @todo CS cleanup - change package to PhpDocumentor */ /** * linking classes parent * * @category ToolsAndUtilities * @package phpDocumentor * @subpackage Links * @author Gregory Beaver <cellog@php.net> * @copyright 2002-2008 Gregory Beaver * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version Release: 1.4.3 * @link http://www.phpdoc.org * @link http://pear.php.net/PhpDocumentor * @todo CS cleanup - change package to PhpDocumentor * @todo CS cleanup - change classname to PhpDocumentor_* */ class abstractLink { /**#@+ * @var string */ var $path; /** * phpdoc alias _phpdoc_inc for phpdoc.inc */ var $fileAlias = ''; /** * element type linked to. * can only be a documentable element */ var $type = ''; var $name = ''; var $category = ''; var $package = ''; var $subpackage = ''; /**#@-*/ /** * sets up the link * * @param string $path full path to file containing element * @param string $fileAlias page name, as configured by {@link Parser::parse} * @param string $name element name * @param string $package package element is in * @param string $subpackage subpackage element is in * @param string $category optional category that documentation is in * * @return void */ function addLink($path, $fileAlias, $name, $package, $subpackage, $category = false) { $this->path = $path; $this->fileAlias = $fileAlias; $this->name = $name; $this->category = $category; $this->package = $package; $this->subpackage = $subpackage; } } /** * procedural page link * * @category ToolsAndUtilities * @package phpDocumentor * @subpackage Links * @author Gregory Beaver <cellog@php.net> * @copyright 2002-2008 Gregory Beaver * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version Release: 1.4.3 * @link http://www.phpdoc.org * @link http://pear.php.net/PhpDocumentor * @todo CS cleanup - change package to PhpDocumentor * @todo CS cleanup - change classname to PhpDocumentor_* */ class pageLink extends abstractLink { /** * @var string */ var $type = 'page'; } /** * function link * * @category ToolsAndUtilities * @package phpDocumentor * @subpackage Links * @author Gregory Beaver <cellog@php.net> * @copyright 2002-2008 Gregory Beaver * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version Release: 1.4.3 * @link http://www.phpdoc.org * @link http://pear.php.net/PhpDocumentor * @todo CS cleanup - change package to PhpDocumentor * @todo CS cleanup - change classname to PhpDocumentor_* */ class functionLink extends abstractLink { /** * @var string */ var $type = 'function'; } /** * define link * * @category ToolsAndUtilities * @package phpDocumentor * @subpackage Links * @author Gregory Beaver <cellog@php.net> * @copyright 2002-2008 Gregory Beaver * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version Release: 1.4.3 * @link http://www.phpdoc.org * @link http://pear.php.net/PhpDocumentor * @todo CS cleanup - change package to PhpDocumentor * @todo CS cleanup - change classname to PhpDocumentor_* */ class defineLink extends abstractLink { /** * @var string */ var $type = 'define'; } /** * global variable link * * @category ToolsAndUtilities * @package phpDocumentor * @subpackage Links * @author Gregory Beaver <cellog@php.net> * @copyright 2002-2008 Gregory Beaver * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version Release: 1.4.3 * @link http://www.phpdoc.org * @link http://pear.php.net/PhpDocumentor * @todo CS cleanup - change package to PhpDocumentor * @todo CS cleanup - change classname to PhpDocumentor_* */ class globalLink extends abstractLink { /** * @var string */ var $type = 'global'; } /** * class link * * @category ToolsAndUtilities * @package phpDocumentor * @subpackage Links * @author Gregory Beaver <cellog@php.net> * @copyright 2002-2008 Gregory Beaver * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version Release: 1.4.3 * @link http://www.phpdoc.org * @link http://pear.php.net/PhpDocumentor * @todo CS cleanup - change package to PhpDocumentor * @todo CS cleanup - change classname to PhpDocumentor_* */ class classLink extends abstractLink { /** * @var string */ var $type = 'class'; } /** * method link * * @category ToolsAndUtilities * @package phpDocumentor * @subpackage Links * @author Gregory Beaver <cellog@php.net> * @copyright 2002-2008 Gregory Beaver * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version Release: 1.4.3 * @link http://www.phpdoc.org * @link http://pear.php.net/PhpDocumentor * @todo CS cleanup - change package to PhpDocumentor * @todo CS cleanup - change classname to PhpDocumentor_* */ class methodLink extends abstractLink { /** * @var string */ var $type = 'method'; /** * @var string */ var $class = ''; /** * sets up the link * * @param string $class class name * @param string $path full path to file containing element * @param string $fileAlias page name, as configured by {@link Parser::parse} * @param string $name element name * @param string $package package element is in * @param string $subpackage subpackage element is in * @param string $category optional category that documentation is in * * @return void */ function addLink($class, $path , $fileAlias, $name, $package, $subpackage, $category = false) { $this->class = $class; abstractLink::addLink($path, $fileAlias, $name, $package, $subpackage, $category); } } /** * class variable link * * @category ToolsAndUtilities * @package phpDocumentor * @subpackage Links * @author Gregory Beaver <cellog@php.net> * @copyright 2002-2008 Gregory Beaver * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version Release: 1.4.3 * @link http://www.phpdoc.org * @link http://pear.php.net/PhpDocumentor * @todo CS cleanup - change package to PhpDocumentor * @todo CS cleanup - change classname to PhpDocumentor_* */ class varLink extends methodLink { /** * @var string */ var $type = 'var'; } /** * class constant link * * @category ToolsAndUtilities * @package phpDocumentor * @subpackage Links * @author Gregory Beaver <cellog@php.net> * @copyright 2002-2008 Gregory Beaver * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version Release: 1.4.3 * @link http://www.phpdoc.org * @link http://pear.php.net/PhpDocumentor * @todo CS cleanup - change package to PhpDocumentor * @todo CS cleanup - change classname to PhpDocumentor_* */ class constLink extends methodLink { /** * @var string */ var $type = 'const'; } /** * tutorial link * * @category ToolsAndUtilities * @package phpDocumentor * @subpackage Links * @author Gregory Beaver <cellog@php.net> * @copyright 2002-2008 Gregory Beaver * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version Release: 1.4.3 * @link http://www.phpdoc.org * @link http://pear.php.net/PhpDocumentor * @todo CS cleanup - change package to PhpDocumentor * @todo CS cleanup - change classname to PhpDocumentor_* */ class tutorialLink extends abstractLink { /**#@+ * @var string */ var $type = 'tutorial'; var $section = ''; var $title = false; /**#@-*/ /** * sets up the link * * @param string $section section/subsection name * @param string $path full path to file containing element * @param string $name page name, as configured by {@link Parser::parse} * @param string $package package element is in * @param string $subpackage subpackage element is in * @param string $title title of tutorial * @param string $category optional category that documentation is in * * @return void */ function addLink($section, $path, $name, $package, $subpackage, $title = false, $category = false) { $this->section = $section; $this->title = $title; parent::addLink($path, '', $name, $package, $subpackage, $category); } } ?>