TournamentRealtimeMatchFrame   F
last analyzed

Complexity

Total Complexity 97

Size/Duplication

Total Lines 425
Duplicated Lines 0 %

Coupling/Cohesion

Components 4
Dependencies 2
Metric Value
wmc 97
lcom 4
cbo 2
dl 0
loc 425
rs 1.5789

9 Methods

Rating   Name   Duplication   Size   Complexity  
D setRedTeamShipData() 0 160 39
D setBlueTeamShipData() 0 160 39
C setBlueTeamFleetAttributes() 0 23 7
A setFrameNum() 0 4 1
A setTidiFactor() 0 4 1
A setTime() 0 4 1
C setRedTeamFleetAttributes() 0 23 7
A setPrevFrame() 0 4 1
A setNextFrame() 0 4 1

How to fix   Complexity   

Complex Class

Complex classes like TournamentRealtimeMatchFrame often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes. You can also have a look at the cohesion graph to spot any un-connected, or weakly-connected components.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

While breaking up the class, it is a good idea to analyze how other classes use TournamentRealtimeMatchFrame, and based on these observations, apply Extract Interface, too.

1
<?php
2
namespace Perry\Representation\Eve\v2;
3
4
use \Perry\Representation\Reference as Reference;
5
use \Perry\Representation\Uri as Uri;
6
use \Perry\Representation\Base as Base;
7
8
class TournamentRealtimeMatchFrame extends Base
9
{
10
    public $redTeamShipData = [];
11
12
    public $blueTeamShipData = [];
13
14
    public $blueTeamFleetAttributes;
15
16
    public $frameNum;
17
18
    public $tidiFactor;
19
20
    public $time;
21
22
    public $redTeamFleetAttributes;
23
24
    public $prevFrame;
25
26
    public $nextFrame;
27
28
    // by Warringer\Types\ArrayType
29
    public function setRedTeamShipData($redTeamShipData)
30
    {
31
        // by Warringer\Types\Base
32
        $converters = [];
33
        $converters['physicsData'] = function ($value) { return $value; };
34
        $converters['missiles'] = function ($values) {
35
        // by Warringer\Types\Dict
36
        $converters = [];
37
        $converters['itemID'] = function ($value) { return $value; };
38
        $converters['physicsData'] = function ($value) { return $value; };
39
        $converters['type'] = function ($value) { return new Reference($value); };
40
41
        $func = function ($value) use($converters) {
42
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
43
            $return['itemID'] = isset($value->{'itemID'}) ? $converters['itemID']($value->{'itemID'}) : null;
44
            $return['physicsData'] = isset($value->{'physicsData'}) ? $converters['physicsData']($value->{'physicsData'}) : null;
45
            $return['type'] = isset($value->{'type'}) ? $converters['type']($value->{'type'}) : null;
46
            return $return;
47
        };
48
49
            foreach ($values as $key => $value) {
50
                 $values[$key] = $func($value);
51
            }
52
           return $values;
53
        };
54
55
        $converters['shield'] = function ($value) { return $value; };
56
        $converters['itemRef'] = function ($value) { return new Reference($value); };
57
        $converters['armor'] = function ($value) { return $value; };
58
        $converters['effects'] = function ($values) {
59
        // by Warringer\Types\Base
60
        $converters = [];
61
        $converters['ammoGraphicResource'] = function ($value) { return new Reference($value); };
62
        $converters['targetID'] = function ($value) { return $value; };
63
        $converters['modules'] = function ($values) {
64
        // by Warringer\Types\Dict
65
        $converters = [];
66
        $converters['moduleID'] = function ($value) { return $value; };
67
68
        $func = function ($value) use($converters) {
69
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
70
            $return['moduleID'] = isset($value->{'moduleID'}) ? $converters['moduleID']($value->{'moduleID'}) : null;
71
            return $return;
72
        };
73
74
            foreach ($values as $key => $value) {
75
                 $values[$key] = $func($value);
76
            }
77
           return $values;
78
        };
79
80
        $converters['effectName'] = function ($value) { return $value; };
81
        $converters['startTime'] = function ($value) { return $value; };
82
        $converters['duration'] = function ($value) { return $value; };
83
        $converters['guid'] = function ($value) { return $value; };
84
85
        $func = function ($value) use($converters) {
86
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
87
            $return['ammoGraphicResource'] = isset($value->{'ammoGraphicResource'}) ? $converters['ammoGraphicResource']($value->{'ammoGraphicResource'}) : null;
88
            $return['targetID'] = isset($value->{'targetID'}) ? $converters['targetID']($value->{'targetID'}) : null;
89
            $return['modules'] = isset($value->{'modules'}) ? $converters['modules']($value->{'modules'}) : null;
90
            $return['effectName'] = isset($value->{'effectName'}) ? $converters['effectName']($value->{'effectName'}) : null;
91
            $return['startTime'] = isset($value->{'startTime'}) ? $converters['startTime']($value->{'startTime'}) : null;
92
            $return['duration'] = isset($value->{'duration'}) ? $converters['duration']($value->{'duration'}) : null;
93
            $return['guid'] = isset($value->{'guid'}) ? $converters['guid']($value->{'guid'}) : null;
94
            return $return;
95
        };
96
97
            foreach ($values as $key => $value) {
98
                 $values[$key] = $func($value);
99
            }
100
           return $values;
101
        };
102
103
        $converters['drones'] = function ($values) {
104
        // by Warringer\Types\Dict
105
        $converters = [];
106
        $converters['itemID'] = function ($value) { return $value; };
107
        $converters['physicsData'] = function ($value) { return $value; };
108
        $converters['type'] = function ($value) { return new Reference($value); };
109
        $converters['effects'] = function ($values) {
110
        // by Warringer\Types\Base
111
        $converters = [];
112
        $converters['ammoGraphicResource'] = function ($value) { return new Reference($value); };
113
        $converters['targetID'] = function ($value) { return $value; };
114
        $converters['modules'] = function ($values) {
115
        // by Warringer\Types\Dict
116
        $converters = [];
117
        $converters['moduleID'] = function ($value) { return $value; };
118
119
        $func = function ($value) use($converters) {
120
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
121
            $return['moduleID'] = isset($value->{'moduleID'}) ? $converters['moduleID']($value->{'moduleID'}) : null;
122
            return $return;
123
        };
124
125
            foreach ($values as $key => $value) {
126
                 $values[$key] = $func($value);
127
            }
128
           return $values;
129
        };
130
131
        $converters['effectName'] = function ($value) { return $value; };
132
        $converters['startTime'] = function ($value) { return $value; };
133
        $converters['duration'] = function ($value) { return $value; };
134
        $converters['guid'] = function ($value) { return $value; };
135
136
        $func = function ($value) use($converters) {
137
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
138
            $return['ammoGraphicResource'] = isset($value->{'ammoGraphicResource'}) ? $converters['ammoGraphicResource']($value->{'ammoGraphicResource'}) : null;
139
            $return['targetID'] = isset($value->{'targetID'}) ? $converters['targetID']($value->{'targetID'}) : null;
140
            $return['modules'] = isset($value->{'modules'}) ? $converters['modules']($value->{'modules'}) : null;
141
            $return['effectName'] = isset($value->{'effectName'}) ? $converters['effectName']($value->{'effectName'}) : null;
142
            $return['startTime'] = isset($value->{'startTime'}) ? $converters['startTime']($value->{'startTime'}) : null;
143
            $return['duration'] = isset($value->{'duration'}) ? $converters['duration']($value->{'duration'}) : null;
144
            $return['guid'] = isset($value->{'guid'}) ? $converters['guid']($value->{'guid'}) : null;
145
            return $return;
146
        };
147
148
            foreach ($values as $key => $value) {
149
                 $values[$key] = $func($value);
150
            }
151
           return $values;
152
        };
153
154
155
        $func = function ($value) use($converters) {
156
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
157
            $return['itemID'] = isset($value->{'itemID'}) ? $converters['itemID']($value->{'itemID'}) : null;
158
            $return['physicsData'] = isset($value->{'physicsData'}) ? $converters['physicsData']($value->{'physicsData'}) : null;
159
            $return['type'] = isset($value->{'type'}) ? $converters['type']($value->{'type'}) : null;
160
            $return['effects'] = isset($value->{'effects'}) ? $converters['effects']($value->{'effects'}) : null;
161
            return $return;
162
        };
163
164
            foreach ($values as $key => $value) {
165
                 $values[$key] = $func($value);
166
            }
167
           return $values;
168
        };
169
170
        $converters['structure'] = function ($value) { return $value; };
171
172
        $func = function ($value) use($converters) {
173
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
174
            $return['physicsData'] = isset($value->{'physicsData'}) ? $converters['physicsData']($value->{'physicsData'}) : null;
175
            $return['missiles'] = isset($value->{'missiles'}) ? $converters['missiles']($value->{'missiles'}) : null;
176
            $return['shield'] = isset($value->{'shield'}) ? $converters['shield']($value->{'shield'}) : null;
177
            $return['itemRef'] = isset($value->{'itemRef'}) ? $converters['itemRef']($value->{'itemRef'}) : null;
178
            $return['armor'] = isset($value->{'armor'}) ? $converters['armor']($value->{'armor'}) : null;
179
            $return['effects'] = isset($value->{'effects'}) ? $converters['effects']($value->{'effects'}) : null;
180
            $return['drones'] = isset($value->{'drones'}) ? $converters['drones']($value->{'drones'}) : null;
181
            $return['structure'] = isset($value->{'structure'}) ? $converters['structure']($value->{'structure'}) : null;
182
            return $return;
183
        };
184
185
        foreach ($redTeamShipData as $key => $value) {
186
            $this->redTeamShipData[$key] = $func($value);
187
        }
188
    }
189
190
    // by Warringer\Types\ArrayType
191
    public function setBlueTeamShipData($blueTeamShipData)
192
    {
193
        // by Warringer\Types\Base
194
        $converters = [];
195
        $converters['physicsData'] = function ($value) { return $value; };
196
        $converters['missiles'] = function ($values) {
197
        // by Warringer\Types\Dict
198
        $converters = [];
199
        $converters['itemID'] = function ($value) { return $value; };
200
        $converters['physicsData'] = function ($value) { return $value; };
201
        $converters['type'] = function ($value) { return new Reference($value); };
202
203
        $func = function ($value) use($converters) {
204
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
205
            $return['itemID'] = isset($value->{'itemID'}) ? $converters['itemID']($value->{'itemID'}) : null;
206
            $return['physicsData'] = isset($value->{'physicsData'}) ? $converters['physicsData']($value->{'physicsData'}) : null;
207
            $return['type'] = isset($value->{'type'}) ? $converters['type']($value->{'type'}) : null;
208
            return $return;
209
        };
210
211
            foreach ($values as $key => $value) {
212
                 $values[$key] = $func($value);
213
            }
214
           return $values;
215
        };
216
217
        $converters['shield'] = function ($value) { return $value; };
218
        $converters['itemRef'] = function ($value) { return new Reference($value); };
219
        $converters['armor'] = function ($value) { return $value; };
220
        $converters['effects'] = function ($values) {
221
        // by Warringer\Types\Base
222
        $converters = [];
223
        $converters['ammoGraphicResource'] = function ($value) { return new Reference($value); };
224
        $converters['targetID'] = function ($value) { return $value; };
225
        $converters['modules'] = function ($values) {
226
        // by Warringer\Types\Dict
227
        $converters = [];
228
        $converters['moduleID'] = function ($value) { return $value; };
229
230
        $func = function ($value) use($converters) {
231
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
232
            $return['moduleID'] = isset($value->{'moduleID'}) ? $converters['moduleID']($value->{'moduleID'}) : null;
233
            return $return;
234
        };
235
236
            foreach ($values as $key => $value) {
237
                 $values[$key] = $func($value);
238
            }
239
           return $values;
240
        };
241
242
        $converters['effectName'] = function ($value) { return $value; };
243
        $converters['startTime'] = function ($value) { return $value; };
244
        $converters['duration'] = function ($value) { return $value; };
245
        $converters['guid'] = function ($value) { return $value; };
246
247
        $func = function ($value) use($converters) {
248
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
249
            $return['ammoGraphicResource'] = isset($value->{'ammoGraphicResource'}) ? $converters['ammoGraphicResource']($value->{'ammoGraphicResource'}) : null;
250
            $return['targetID'] = isset($value->{'targetID'}) ? $converters['targetID']($value->{'targetID'}) : null;
251
            $return['modules'] = isset($value->{'modules'}) ? $converters['modules']($value->{'modules'}) : null;
252
            $return['effectName'] = isset($value->{'effectName'}) ? $converters['effectName']($value->{'effectName'}) : null;
253
            $return['startTime'] = isset($value->{'startTime'}) ? $converters['startTime']($value->{'startTime'}) : null;
254
            $return['duration'] = isset($value->{'duration'}) ? $converters['duration']($value->{'duration'}) : null;
255
            $return['guid'] = isset($value->{'guid'}) ? $converters['guid']($value->{'guid'}) : null;
256
            return $return;
257
        };
258
259
            foreach ($values as $key => $value) {
260
                 $values[$key] = $func($value);
261
            }
262
           return $values;
263
        };
264
265
        $converters['drones'] = function ($values) {
266
        // by Warringer\Types\Dict
267
        $converters = [];
268
        $converters['itemID'] = function ($value) { return $value; };
269
        $converters['physicsData'] = function ($value) { return $value; };
270
        $converters['type'] = function ($value) { return new Reference($value); };
271
        $converters['effects'] = function ($values) {
272
        // by Warringer\Types\Base
273
        $converters = [];
274
        $converters['ammoGraphicResource'] = function ($value) { return new Reference($value); };
275
        $converters['targetID'] = function ($value) { return $value; };
276
        $converters['modules'] = function ($values) {
277
        // by Warringer\Types\Dict
278
        $converters = [];
279
        $converters['moduleID'] = function ($value) { return $value; };
280
281
        $func = function ($value) use($converters) {
282
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
283
            $return['moduleID'] = isset($value->{'moduleID'}) ? $converters['moduleID']($value->{'moduleID'}) : null;
284
            return $return;
285
        };
286
287
            foreach ($values as $key => $value) {
288
                 $values[$key] = $func($value);
289
            }
290
           return $values;
291
        };
292
293
        $converters['effectName'] = function ($value) { return $value; };
294
        $converters['startTime'] = function ($value) { return $value; };
295
        $converters['duration'] = function ($value) { return $value; };
296
        $converters['guid'] = function ($value) { return $value; };
297
298
        $func = function ($value) use($converters) {
299
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
300
            $return['ammoGraphicResource'] = isset($value->{'ammoGraphicResource'}) ? $converters['ammoGraphicResource']($value->{'ammoGraphicResource'}) : null;
301
            $return['targetID'] = isset($value->{'targetID'}) ? $converters['targetID']($value->{'targetID'}) : null;
302
            $return['modules'] = isset($value->{'modules'}) ? $converters['modules']($value->{'modules'}) : null;
303
            $return['effectName'] = isset($value->{'effectName'}) ? $converters['effectName']($value->{'effectName'}) : null;
304
            $return['startTime'] = isset($value->{'startTime'}) ? $converters['startTime']($value->{'startTime'}) : null;
305
            $return['duration'] = isset($value->{'duration'}) ? $converters['duration']($value->{'duration'}) : null;
306
            $return['guid'] = isset($value->{'guid'}) ? $converters['guid']($value->{'guid'}) : null;
307
            return $return;
308
        };
309
310
            foreach ($values as $key => $value) {
311
                 $values[$key] = $func($value);
312
            }
313
           return $values;
314
        };
315
316
317
        $func = function ($value) use($converters) {
318
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
319
            $return['itemID'] = isset($value->{'itemID'}) ? $converters['itemID']($value->{'itemID'}) : null;
320
            $return['physicsData'] = isset($value->{'physicsData'}) ? $converters['physicsData']($value->{'physicsData'}) : null;
321
            $return['type'] = isset($value->{'type'}) ? $converters['type']($value->{'type'}) : null;
322
            $return['effects'] = isset($value->{'effects'}) ? $converters['effects']($value->{'effects'}) : null;
323
            return $return;
324
        };
325
326
            foreach ($values as $key => $value) {
327
                 $values[$key] = $func($value);
328
            }
329
           return $values;
330
        };
331
332
        $converters['structure'] = function ($value) { return $value; };
333
334
        $func = function ($value) use($converters) {
335
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
336
            $return['physicsData'] = isset($value->{'physicsData'}) ? $converters['physicsData']($value->{'physicsData'}) : null;
337
            $return['missiles'] = isset($value->{'missiles'}) ? $converters['missiles']($value->{'missiles'}) : null;
338
            $return['shield'] = isset($value->{'shield'}) ? $converters['shield']($value->{'shield'}) : null;
339
            $return['itemRef'] = isset($value->{'itemRef'}) ? $converters['itemRef']($value->{'itemRef'}) : null;
340
            $return['armor'] = isset($value->{'armor'}) ? $converters['armor']($value->{'armor'}) : null;
341
            $return['effects'] = isset($value->{'effects'}) ? $converters['effects']($value->{'effects'}) : null;
342
            $return['drones'] = isset($value->{'drones'}) ? $converters['drones']($value->{'drones'}) : null;
343
            $return['structure'] = isset($value->{'structure'}) ? $converters['structure']($value->{'structure'}) : null;
344
            return $return;
345
        };
346
347
        foreach ($blueTeamShipData as $key => $value) {
348
            $this->blueTeamShipData[$key] = $func($value);
349
        }
350
    }
351
352
    // by Warringer\Types\Dict
353
    public function setBlueTeamFleetAttributes($blueTeamFleetAttributes)
354
    {
355
        // by Warringer\Types\Dict
356
        $converters = [];
357
        $converters['totalEHP'] = function ($value) { return $value; };
358
        $converters['maxControl'] = function ($value) { return $value; };
359
        $converters['totalReps'] = function ($value) { return $value; };
360
        $converters['appliedDPS'] = function ($value) { return $value; };
361
        $converters['appliedControl'] = function ($value) { return $value; };
362
        $converters['maxDPS'] = function ($value) { return $value; };
363
364
        $func = function ($value) use($converters) {
365
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
366
            $return['totalEHP'] = isset($value->{'totalEHP'}) ? $converters['totalEHP']($value->{'totalEHP'}) : null;
367
            $return['maxControl'] = isset($value->{'maxControl'}) ? $converters['maxControl']($value->{'maxControl'}) : null;
368
            $return['totalReps'] = isset($value->{'totalReps'}) ? $converters['totalReps']($value->{'totalReps'}) : null;
369
            $return['appliedDPS'] = isset($value->{'appliedDPS'}) ? $converters['appliedDPS']($value->{'appliedDPS'}) : null;
370
            $return['appliedControl'] = isset($value->{'appliedControl'}) ? $converters['appliedControl']($value->{'appliedControl'}) : null;
371
            $return['maxDPS'] = isset($value->{'maxDPS'}) ? $converters['maxDPS']($value->{'maxDPS'}) : null;
372
            return $return;
373
        };
374
        $this->blueTeamFleetAttributes = $func($blueTeamFleetAttributes);
375
    }
376
377
    // by Warringer\Types\Long
378
    public function setFrameNum($frameNum)
379
    {
380
        $this->frameNum = $frameNum;
381
    }
382
383
    // by Warringer\Types\Base
384
    public function setTidiFactor($tidiFactor)
385
    {
386
        $this->tidiFactor = $tidiFactor;
387
    }
388
389
    // by Warringer\Types\Long
390
    public function setTime($time)
391
    {
392
        $this->time = $time;
393
    }
394
395
    // by Warringer\Types\Dict
396
    public function setRedTeamFleetAttributes($redTeamFleetAttributes)
397
    {
398
        // by Warringer\Types\Dict
399
        $converters = [];
400
        $converters['totalEHP'] = function ($value) { return $value; };
401
        $converters['maxControl'] = function ($value) { return $value; };
402
        $converters['totalReps'] = function ($value) { return $value; };
403
        $converters['appliedDPS'] = function ($value) { return $value; };
404
        $converters['appliedControl'] = function ($value) { return $value; };
405
        $converters['maxDPS'] = function ($value) { return $value; };
406
407
        $func = function ($value) use($converters) {
408
            $return = new \ArrayObject($value, \ArrayObject::ARRAY_AS_PROPS);
409
            $return['totalEHP'] = isset($value->{'totalEHP'}) ? $converters['totalEHP']($value->{'totalEHP'}) : null;
410
            $return['maxControl'] = isset($value->{'maxControl'}) ? $converters['maxControl']($value->{'maxControl'}) : null;
411
            $return['totalReps'] = isset($value->{'totalReps'}) ? $converters['totalReps']($value->{'totalReps'}) : null;
412
            $return['appliedDPS'] = isset($value->{'appliedDPS'}) ? $converters['appliedDPS']($value->{'appliedDPS'}) : null;
413
            $return['appliedControl'] = isset($value->{'appliedControl'}) ? $converters['appliedControl']($value->{'appliedControl'}) : null;
414
            $return['maxDPS'] = isset($value->{'maxDPS'}) ? $converters['maxDPS']($value->{'maxDPS'}) : null;
415
            return $return;
416
        };
417
        $this->redTeamFleetAttributes = $func($redTeamFleetAttributes);
418
    }
419
420
    // by Warringer\Types\Reference
421
    public function setPrevFrame($prevFrame)
422
    {
423
        $this->prevFrame = new Reference($prevFrame);
424
    }
425
426
    // by Warringer\Types\Reference
427
    public function setNextFrame($nextFrame)
428
    {
429
        $this->nextFrame = new Reference($nextFrame);
430
    }
431
432
}
433