13
13
14
14
namespace Laudis \Neo4j \Databags ;
15
15
16
- use function call_user_func ;
17
- use function is_callable ;
18
-
19
16
use Laudis \Neo4j \Enum \AccessMode ;
20
17
21
18
use function parse_str ;
@@ -35,26 +32,21 @@ final class SessionConfiguration
35
32
public const DEFAULT_BOOKMARKS = '[] ' ;
36
33
37
34
/**
38
- * @param pure-callable():(int|null)|int|null $fetchSize
39
- * @param pure-callable():(iterable<Bookmark>|null)|iterable<Bookmark>|null $bookmarks
40
- * @param pure-callable():((AccessMode | null))|AccessMode|null $accessMode
35
+ * @param list<Bookmark>|null $bookmarks
41
36
*/
42
37
public function __construct (
43
38
private ?string $ database = null ,
44
- private $ fetchSize = null ,
45
- private $ accessMode = null ,
46
- private $ bookmarks = null
39
+ private int | null $ fetchSize = null ,
40
+ private AccessMode | null $ accessMode = null ,
41
+ private array | null $ bookmarks = null
47
42
) {}
48
43
49
44
/**
50
45
* @pure
51
46
*
52
- * @param string|null $database
53
- * @param pure-callable():(int|null)|int|null $fetchSize
54
- * @param pure-callable():(AccessMode|null)|AccessMode|null $defaultAccessMode
55
- * @param pure-callable():(iterable<Bookmark>|null)|iterable<Bookmark> $bookmarks
47
+ * @param list<Bookmark>|null $bookmarks
56
48
*/
57
- public static function create ($ database = null , $ fetchSize = null , $ defaultAccessMode = null , $ bookmarks = null ): self
49
+ public static function create (string | null $ database = null , int | null $ fetchSize = null , AccessMode | null $ defaultAccessMode = null , array | null $ bookmarks = null ): self
58
50
{
59
51
return new self ($ database , $ fetchSize , $ defaultAccessMode , $ bookmarks );
60
52
}
@@ -69,40 +61,34 @@ public static function default(): self
69
61
70
62
/**
71
63
* Creates a new session with the provided database.
72
- *
73
- * @param string|null $database
74
64
*/
75
- public function withDatabase ($ database ): self
65
+ public function withDatabase (? string $ database ): self
76
66
{
77
67
return new self ($ database , $ this ->fetchSize , $ this ->accessMode , $ this ->bookmarks );
78
68
}
79
69
80
70
/**
81
71
* Creates a new session with the provided fetch size.
82
- *
83
- * @param pure-callable():(int|null)|int|null $size
84
72
*/
85
- public function withFetchSize ($ size ): self
73
+ public function withFetchSize (? int $ size ): self
86
74
{
87
75
return new self ($ this ->database , $ size , $ this ->accessMode , $ this ->bookmarks );
88
76
}
89
77
90
78
/**
91
79
* Creates a new session with the provided access mode.
92
- *
93
- * @param pure-callable():(AccessMode|null)|AccessMode|null $defaultAccessMode
94
80
*/
95
- public function withAccessMode ($ defaultAccessMode ): self
81
+ public function withAccessMode (? AccessMode $ defaultAccessMode ): self
96
82
{
97
83
return new self ($ this ->database , $ this ->fetchSize , $ defaultAccessMode , $ this ->bookmarks );
98
84
}
99
85
100
86
/**
101
87
* Creates a new session with the provided bookmarks.
102
88
*
103
- * @param pure-callable():(iterable<Bookmark>|null)|iterable <Bookmark>|null $bookmarks
89
+ * @param list <Bookmark>|null $bookmarks
104
90
*/
105
- public function withBookmarks ($ bookmarks ): self
91
+ public function withBookmarks (? array $ bookmarks ): self
106
92
{
107
93
return new self ($ this ->database , $ this ->fetchSize , $ this ->accessMode , $ bookmarks );
108
94
}
@@ -112,9 +98,7 @@ public function withBookmarks($bookmarks): self
112
98
*/
113
99
public function getFetchSize (): int
114
100
{
115
- $ fetchSize = is_callable ($ this ->fetchSize ) ? call_user_func ($ this ->fetchSize ) : $ this ->fetchSize ;
116
-
117
- return $ fetchSize ?? self ::DEFAULT_FETCH_SIZE ;
101
+ return $ this ->fetchSize ?? self ::DEFAULT_FETCH_SIZE ;
118
102
}
119
103
120
104
/**
@@ -124,10 +108,7 @@ public function getFetchSize(): int
124
108
*/
125
109
public function getAccessMode (): AccessMode
126
110
{
127
- $ accessMode = is_callable ($ this ->accessMode ) ? call_user_func ($ this ->accessMode ) : $ this ->accessMode ;
128
-
129
- /** @psalm-suppress ImpureMethodCall */
130
- return $ accessMode ?? AccessMode::WRITE ();
111
+ return $ this ->accessMode ?? AccessMode::WRITE ();
131
112
}
132
113
133
114
/**
@@ -141,13 +122,11 @@ public function getDatabase(): ?string
141
122
/**
142
123
* Returns the initial bookmarks.
143
124
*
144
- * @return iterable <Bookmark>
125
+ * @return list <Bookmark>
145
126
*/
146
- public function getBookmarks (): iterable
127
+ public function getBookmarks (): array
147
128
{
148
- $ bookmarks = is_callable ($ this ->bookmarks ) ? call_user_func ($ this ->bookmarks ) : $ this ->bookmarks ;
149
-
150
- return $ bookmarks ?? [];
129
+ return $ this ->bookmarks ?? [];
151
130
}
152
131
153
132
/**
0 commit comments