55use Smeghead \PhpClassDiagram \Php \ {
66 PhpClass ,
77 PhpAccessModifier ,
8+ PhpMethodParameter ,
89};
910
1011class Entry {
11- public Options $ options ;
12- public string $ directory ;
13- public PhpClass $ class ;
12+ private Options $ options ;
13+ private string $ directory ;
14+ private PhpClass $ class ;
15+
1416 public function __construct (string $ directory , PhpClass $ class , Options $ options ) {
1517 $ this ->directory = $ directory ;
1618 $ this ->class = $ class ;
1719 $ this ->options = $ options ;
1820 }
1921
22+ public function getOptions (): Options {
23+ return $ this ->options ;
24+ }
25+
26+ public function getDirectory (): string {
27+ return $ this ->directory ;
28+ }
29+
30+ public function getClass (): PhpClass {
31+ return $ this ->class ;
32+ }
33+
2034 public function dump ($ level = 0 ): array {
2135 $ indent = str_repeat (' ' , $ level );
2236 $ lines = [];
23- $ meta = $ this ->class ->getClassType ()->meta === 'Stmt_Interface ' ? 'interface ' : 'class ' ;
37+ $ meta = $ this ->class ->getClassType ()->getMeta () === 'Stmt_Interface ' ? 'interface ' : 'class ' ;
2438 if ($ this ->options ->classProperties () || $ this ->options ->classMethods ()) {
2539 $ lines [] = sprintf ('%s%s %s { ' , $ indent , $ meta , $ this ->class ->getLogicalName ());
2640 if ($ this ->options ->classProperties ()) {
2741 foreach ($ this ->class ->getProperties () as $ p ) {
28- $ lines [] = sprintf (' %s%s%s : %s ' , $ indent , $ this ->modifier ($ p ->accessModifier ) , $ p ->name , $ p ->type -> name );
42+ $ lines [] = sprintf (' %s%s%s : %s ' , $ indent , $ this ->modifier ($ p ->getAccessModifier ()) , $ p ->getName () , $ p ->getType ()-> getName () );
2943 }
3044 }
3145 if ($ this ->options ->classMethods ()) {
3246 foreach ($ this ->class ->getMethods () as $ m ) {
33- $ params = array_map (function ($ x ){
34- return $ x ->name ;
35- }, $ m ->params );
36- $ lines [] = sprintf (' %s%s%s(%s) ' , $ indent , $ this ->modifier ($ m ->accessModifier ) , $ m ->name , implode (', ' , $ params ));
47+ $ params = array_map (function (PhpMethodParameter $ x ){
48+ return $ x ->getName () ;
49+ }, $ m ->getParams () );
50+ $ lines [] = sprintf (' %s%s%s(%s) ' , $ indent , $ this ->modifier ($ m ->getAccessModifier ()) , $ m ->getName () , implode (', ' , $ params ));
3751 }
3852 }
3953 $ lines [] = sprintf ('%s} ' , $ indent );
@@ -45,19 +59,19 @@ public function dump($level = 0): array {
4559
4660 private function modifier (PhpAccessModifier $ modifier ): string {
4761 $ expressions = [];
48- if ($ modifier ->static ) {
62+ if ($ modifier ->isStatic () ) {
4963 $ expressions [] = '{static} ' ;
5064 }
51- if ($ modifier ->abstract ) {
65+ if ($ modifier ->isAbstract () ) {
5266 $ expressions [] = '{abstract} ' ;
5367 }
54- if ($ modifier ->public ) {
68+ if ($ modifier ->isPublic () ) {
5569 $ expressions [] = '+ ' ;
5670 }
57- if ($ modifier ->protected ) {
71+ if ($ modifier ->isProtected () ) {
5872 $ expressions [] = '# ' ;
5973 }
60- if ($ modifier ->private ) {
74+ if ($ modifier ->isPrivate () ) {
6175 $ expressions [] = '- ' ;
6276 }
6377 return implode (' ' , $ expressions );
@@ -67,16 +81,16 @@ public function getArrows(): array {
6781 $ arrows = [];
6882 //フィールド変数の型に対しての依存をArrowとして追加する。
6983 foreach ($ this ->class ->getProperties () as $ p ) {
70- $ arrows [] = new ArrowDependency ($ this ->class , $ p ->type );
84+ $ arrows [] = new ArrowDependency ($ this ->class , $ p ->getType () );
7185 }
7286 foreach ($ this ->class ->getMethods () as $ m ) {
73- if ( ! $ m ->accessModifier -> public ) {
87+ if ( ! $ m ->getAccessModifier ()-> isPublic () ) {
7488 continue ;
7589 }
76- if (count ($ m ->params ) > 0 ) {
90+ if (count ($ m ->getParams () ) > 0 ) {
7791 continue ;
7892 }
79- $ arrows [] = new ArrowDependency ($ this ->class , $ m ->type );
93+ $ arrows [] = new ArrowDependency ($ this ->class , $ m ->getType () );
8094 }
8195 $ extends = $ this ->class ->getExtends ();
8296 if ( ! empty ($ extends )) {
0 commit comments