1 | <?php |
||
44 | class WikibaseFactory { |
||
45 | |||
46 | /** |
||
47 | * @var MediawikiApi |
||
48 | */ |
||
49 | private $api; |
||
50 | |||
51 | /** |
||
52 | * @var Deserializer |
||
53 | */ |
||
54 | private $dataValueDeserializer; |
||
55 | |||
56 | /** |
||
57 | * @var Serializer |
||
58 | */ |
||
59 | private $dataValueSerializer; |
||
60 | |||
61 | /** |
||
62 | * @param MediawikiApi $api |
||
63 | * @param Deserializer $dvDeserializer |
||
64 | * @param Serializer $dvSerializer |
||
65 | */ |
||
66 | 16 | public function __construct( MediawikiApi $api, Deserializer $dvDeserializer, Serializer $dvSerializer ) { |
|
67 | 16 | $this->api = $api; |
|
68 | 16 | $this->dataValueDeserializer = $dvDeserializer; |
|
69 | 16 | $this->dataValueSerializer = $dvSerializer; |
|
70 | 16 | } |
|
71 | |||
72 | /** |
||
73 | * @since 0.1 |
||
74 | * @return RevisionSaver |
||
75 | */ |
||
76 | 1 | public function newRevisionSaver() { |
|
77 | 1 | return new RevisionSaver( |
|
78 | 1 | $this->newWikibaseApi(), |
|
79 | 1 | $this->newDataModelDeserializerFactory()->newEntityDeserializer(), |
|
80 | 1 | $this->newDataModelSerializerFactory()->newEntitySerializer() |
|
81 | 1 | ); |
|
82 | } |
||
83 | |||
84 | /** |
||
85 | * @since 0.1 |
||
86 | * @return RevisionGetter |
||
87 | */ |
||
88 | 1 | public function newRevisionGetter() { |
|
89 | 1 | return new RevisionGetter( |
|
90 | 1 | $this->api, |
|
91 | 1 | $this->newDataModelDeserializerFactory()->newEntityDeserializer() |
|
92 | 1 | ); |
|
93 | } |
||
94 | |||
95 | /** |
||
96 | * @since 0.4 |
||
97 | * @return RevisionsGetter |
||
98 | */ |
||
99 | 1 | public function newRevisionsGetter() { |
|
100 | return new RevisionsGetter( |
||
101 | $this->api, |
||
102 | 1 | $this->newDataModelDeserializerFactory()->newEntityDeserializer() |
|
103 | 1 | ); |
|
104 | 1 | } |
|
105 | |||
106 | /** |
||
107 | * @since 0.2 |
||
108 | * @return ValueParser |
||
109 | */ |
||
110 | 1 | public function newValueParser() { |
|
111 | 1 | return new ValueParser( |
|
112 | 1 | $this->api, |
|
113 | 1 | $this->dataValueDeserializer |
|
114 | 1 | ); |
|
115 | } |
||
116 | |||
117 | /** |
||
118 | * @since 0.2 |
||
119 | * @return ValueFormatter |
||
120 | */ |
||
121 | 1 | public function newValueFormatter() { |
|
122 | 1 | return new ValueFormatter( |
|
123 | 1 | $this->api, |
|
124 | 1 | $this->dataValueDeserializer |
|
125 | 1 | ); |
|
126 | } |
||
127 | |||
128 | /** |
||
129 | * @since 0.2 |
||
130 | * @return ItemMerger |
||
131 | */ |
||
132 | 1 | public function newItemMerger() { |
|
133 | 1 | return new ItemMerger( $this->newWikibaseApi() ); |
|
134 | } |
||
135 | |||
136 | /** |
||
137 | * @since 0.2 |
||
138 | * @return AliasGroupSetter |
||
139 | */ |
||
140 | 1 | public function newAliasGroupSetter() { |
|
141 | 1 | return new AliasGroupSetter( $this->newWikibaseApi() ); |
|
142 | } |
||
143 | |||
144 | /** |
||
145 | * @since 0.2 |
||
146 | * @return DescriptionSetter |
||
147 | */ |
||
148 | 2 | public function newDescriptionSetter() { |
|
151 | |||
152 | /** |
||
153 | * @since 0.2 |
||
154 | * @return LabelSetter |
||
155 | */ |
||
156 | 1 | public function newLabelSetter() { |
|
157 | 1 | return new LabelSetter( $this->newWikibaseApi() ); |
|
158 | } |
||
159 | |||
160 | /** |
||
161 | * @since 0.2 |
||
162 | * @return ReferenceRemover |
||
163 | */ |
||
164 | 1 | public function newReferenceRemover() { |
|
167 | |||
168 | /** |
||
169 | * @since 0.2 |
||
170 | * @return ReferenceSetter |
||
171 | */ |
||
172 | 1 | public function newReferenceSetter() { |
|
178 | |||
179 | /** |
||
180 | * @since 0.2 |
||
181 | * @return SiteLinkLinker |
||
182 | */ |
||
183 | 1 | public function newSiteLinkLinker() { |
|
186 | |||
187 | /** |
||
188 | * @since 0.2 |
||
189 | * @return SiteLinkSetter |
||
190 | */ |
||
191 | 1 | public function newSiteLinkSetter() { |
|
194 | |||
195 | /** |
||
196 | * @since 0.5 |
||
197 | * @return BadgeIdsGetter |
||
198 | */ |
||
199 | public function newBadgeIdsGetter() { |
||
202 | |||
203 | /** |
||
204 | * @since 0.5 |
||
205 | * @return RedirectCreator |
||
206 | */ |
||
207 | public function newRedirectCreator() { |
||
210 | |||
211 | 3 | private function newDataModelDeserializerFactory() { |
|
217 | |||
218 | 3 | private function newDataModelSerializerFactory() { |
|
221 | |||
222 | /** |
||
223 | * @since 0.5 |
||
224 | * @return StatementGetter |
||
225 | */ |
||
226 | 1 | public function newStatementGetter() { |
|
232 | |||
233 | /** |
||
234 | * @since 0.5 |
||
235 | * @return StatementSetter |
||
236 | */ |
||
237 | 1 | public function newStatementSetter() { |
|
243 | |||
244 | /** |
||
245 | * @since 0.5 |
||
246 | * @return StatementCreator |
||
247 | */ |
||
248 | 1 | public function newStatementCreator() { |
|
254 | |||
255 | /** |
||
256 | * @since 0.5 |
||
257 | * @return StatementRemover |
||
258 | */ |
||
259 | 1 | public function newStatementRemover() { |
|
262 | |||
263 | /** |
||
264 | * @return WikibaseApi |
||
265 | */ |
||
266 | 12 | private function newWikibaseApi() { |
|
269 | |||
270 | /** |
||
271 | * @since 0.7 |
||
272 | * @return EntityLookup |
||
273 | */ |
||
274 | public function newEntityLookup() { |
||
277 | |||
278 | /** |
||
279 | * @since 0.7 |
||
280 | * @return ItemLookup |
||
281 | */ |
||
282 | public function newItemLookup() { |
||
285 | |||
286 | /** |
||
287 | * @since 0.7 |
||
288 | * @return PropertyLookup |
||
289 | */ |
||
290 | public function newPropertyLookup() { |
||
293 | |||
294 | /** |
||
295 | * @since 0.7 |
||
296 | * @return TermLookup |
||
297 | */ |
||
298 | public function newTermLookup() { |
||
301 | |||
302 | /** |
||
303 | * @since 0.7 |
||
304 | * @return EntityDocumentSaver |
||
305 | */ |
||
306 | public function newEntityDocumentSaver() { |
||
309 | |||
310 | } |
||
311 |