Arbit - project tracking

PHPMD

Browse source code

File: / source/ PHP/ PMD/ Node/ AbstractType.php

Type
text/plain text/plain
Last Author
mapi
Version
214
Line Rev. Author Source
1 1 mapi <?php
2 mapi /**
3 mapi * This file is part of PHP_PMD.
4 mapi *
5 mapi * PHP Version 5
6 mapi *
7 174 mapi * Copyright (c) 2009-2010, Manuel Pichler <mapi@phpmd.org>.
8 1 mapi * All rights reserved.
9 mapi *
10 mapi * Redistribution and use in source and binary forms, with or without
11 mapi * modification, are permitted provided that the following conditions
12 mapi * are met:
13 mapi *
14 mapi * * Redistributions of source code must retain the above copyright
15 mapi * notice, this list of conditions and the following disclaimer.
16 mapi *
17 mapi * * Redistributions in binary form must reproduce the above copyright
18 mapi * notice, this list of conditions and the following disclaimer in
19 mapi * the documentation and/or other materials provided with the
20 mapi * distribution.
21 mapi *
22 mapi * * Neither the name of Manuel Pichler nor the names of his
23 mapi * contributors may be used to endorse or promote products derived
24 mapi * from this software without specific prior written permission.
25 mapi *
26 mapi * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
27 mapi * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28 mapi * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
29 mapi * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
30 mapi * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
31 mapi * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
32 mapi * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
33 mapi * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
34 mapi * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
35 mapi * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
36 mapi * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37 mapi * POSSIBILITY OF SUCH DAMAGE.
38 mapi *
39 mapi * @category PHP
40 mapi * @package PHP_PMD
41 14 mapi * @subpackage Node
42 174 mapi * @author Manuel Pichler <mapi@phpmd.org>
43 150 mapi * @copyright 2009-2010 Manuel Pichler. All rights reserved.
44 1 mapi * @license http://www.opensource.org/licenses/bsd-license.php BSD License
45 mapi * @version SVN: $Id$
46 174 mapi * @link http://phpmd.org
47 1 mapi */
48 mapi
49 200 mapi require_once 'PHP/PMD/Node/AbstractNode.php';
50 1 mapi
51 mapi /**
52 14 mapi * Abstract base class for classes and interfaces.
53 1 mapi *
54 mapi * @category PHP
55 mapi * @package PHP_PMD
56 14 mapi * @subpackage Node
57 174 mapi * @author Manuel Pichler <mapi@phpmd.org>
58 150 mapi * @copyright 2009-2010 Manuel Pichler. All rights reserved.
59 1 mapi * @license http://www.opensource.org/licenses/bsd-license.php BSD License
60 mapi * @version Release: @package_version@
61 174 mapi * @link http://phpmd.org
62 1 mapi */
63 200 mapi abstract class PHP_PMD_Node_AbstractType extends PHP_PMD_Node_AbstractNode
64 1 mapi {
65 14 mapi /**
66 36 mapi * Constructs a new generic class or interface node.
67 mapi *
68 214 mapi * @param PHP_Depend_Code_AbstractClassOrInterface $node The wrapped node.
69 36 mapi */
70 214 mapi public function __construct(PHP_Depend_Code_AbstractClassOrInterface $node)
71 1 mapi {
72 14 mapi parent::__construct($node);
73 mapi }
74 1 mapi
75 14 mapi /**
76 129 mapi * Returns an <b>array</b> with all methods defined in the context class or
77 mapi * interface.
78 mapi *
79 200 mapi * @return array(PHP_PMD_Node_Method)
80 129 mapi */
81 mapi public function getMethods()
82 mapi {
83 mapi $methods = array();
84 mapi foreach ($this->getNode()->getMethods() as $method) {
85 200 mapi $methods[] = new PHP_PMD_Node_Method($method);
86 129 mapi }
87 mapi return $methods;
88 mapi }
89 mapi
90 mapi /**
91 98 mapi * Returns an array with the names of all methods within this class or
92 mapi * interface node.
93 14 mapi *
94 98 mapi * @return array(string)
95 14 mapi */
96 98 mapi public function getMethodNames()
97 14 mapi {
98 98 mapi $names = array();
99 mapi foreach ($this->getNode()->getMethods() as $method) {
100 mapi $names[] = $method->getName();
101 mapi }
102 mapi return $names;
103 1 mapi }
104 14 mapi
105 mapi /**
106 mapi * Returns the number of constants declared in this type.
107 mapi *
108 mapi * @return integer
109 mapi */
110 mapi public function getConstantCount()
111 mapi {
112 73 mapi return $this->getNode()->getConstants()->count();
113 14 mapi }
114 mapi
115 mapi /**
116 mapi * Returns the name of the parent package.
117 mapi *
118 mapi * @return string
119 mapi */
120 17 mapi public function getPackageName()
121 14 mapi {
122 73 mapi return $this->getNode()->getPackage()->getName();
123 14 mapi }
124 mapi
125 mapi /**
126 17 mapi * Returns the name of the parent type or <b>null</b> when this node has no
127 mapi * parent type.
128 mapi *
129 mapi * @return string
130 mapi */
131 mapi public function getParentName()
132 mapi {
133 mapi return null;
134 mapi }
135 214 mapi }