Completed
Push — master ( 81db43...f030be )
by Aleh
12s
created

Index::addInterface()   A

Complexity

Conditions 4
Paths 6

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 11
rs 9.2
cc 4
eloc 7
nc 6
nop 1
1
<?php
2
3
namespace Padawan\Domain\Project;
4
5
use Padawan\Domain\Project\Node\ClassData;
6
use Padawan\Domain\Project\Node\FunctionData;
7
use Padawan\Domain\Project\Node\InterfaceData;
8
use Padawan\Domain\Project\File;
9
10
interface Index
11
{
12
    public function addFile(File $file);
13
14
    /**
15
     * @return FQCN[]
16
     */
17
    public function getFQCNs();
18
19
    public function findFileByPath($path);
20
21
    /**
22
     * @return FQCN
23
     */
24
    public function findFQCNByFile($file);
25
26
    /**
27
     * @return ClassData
28
     */
29
    public function findClassByFQCN(FQCN $fqcn);
30
31
    /**
32
     * @return InterfaceData
33
     */
34
    public function findInterfaceByFQCN(FQCN $fqcn);
35
36
    /**
37
     * @return FunctionData
38
     */
39
    public function findFunctionByName($functionName);
40
41
    /**
42
     * @return ClassData[]
43
     */
44
    public function findClassChildren(FQCN $class);
45
46
    /**
47
     * @return ClassData[]
48
     */
49
    public function findInterfaceChildrenClasses(FQCN $interface);
50
51
    /**
52
     * @return ClassData[]
53
     */
54
    public function getClasses();
55
56
    /**
57
     * @return InterfaceData[]
58
     */
59
    public function getInterfaces();
60
61
    /**
62
     * @return FunctionData[]
63
     */
64
    public function getFunctions();
65
66
    public function getImplements();
67
68
    public function getExtends();
69
}
70