Detail   C
last analyzed

Complexity

Total Complexity 67

Size/Duplication

Total Lines 429
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 3

Importance

Changes 5
Bugs 1 Features 0
Metric Value
wmc 67
c 5
b 1
f 0
lcom 2
cbo 3
dl 0
loc 429
rs 5.7097

67 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A getTaxaDesconto() 0 4 1
A getTaxaIof() 0 4 1
A getCateira() 0 4 1
A getComando() 0 4 1
A getDataOcorrencia() 0 4 1
A getNumTitulo() 0 4 1
A getDataVencimento() 0 4 1
A getValor() 0 4 1
A getEspecie() 0 4 1
A getDataCredito() 0 4 1
A getValorTarifa() 0 4 1
A getOutrasDespesas() 0 4 1
A getJurosDesconto() 0 4 1
A getIofDesconto() 0 4 1
A getValorAbatimento() 0 4 1
A getDescontoConcedido() 0 4 1
A getValorRecebido() 0 4 1
A getJurosMora() 0 4 1
A getOutrosRecebimentos() 0 4 1
A getAbatimentoNaoAprovado() 0 4 1
A getValorLancamento() 0 4 1
A getIndicativoDc() 0 4 1
A getValorAjuste() 0 4 1
A getCanalPagTitulo() 0 4 1
A getSequencial() 0 4 1
A getBancoEmissor() 0 4 1
A setTaxaDesconto() 0 5 1
A setTaxaIof() 0 5 1
A setCateira() 0 5 1
A setComando() 0 5 1
A setDataOcorrencia() 0 5 1
A setNumTitulo() 0 5 1
A setDataVencimento() 0 5 1
A setValor() 0 5 1
A setEspecie() 0 5 1
A setDataCredito() 0 5 1
A setValorTarifa() 0 5 1
A setOutrasDespesas() 0 5 1
A setJurosDesconto() 0 5 1
A setIofDesconto() 0 5 1
A setValorAbatimento() 0 5 1
A setDescontoConcedido() 0 5 1
A setValorRecebido() 0 5 1
A setJurosMora() 0 5 1
A setOutrosRecebimentos() 0 5 1
A setAbatimentoNaoAprovado() 0 5 1
A setValorLancamento() 0 5 1
A setIndicativoDc() 0 5 1
A setValorAjuste() 0 5 1
A setCanalPagTitulo() 0 5 1
A setSequencial() 0 5 1
A setBancoEmissor() 0 5 1
A getBancoRecebedor() 0 4 1
A setBancoRecebedor() 0 5 1
A getIndicadorValor() 0 4 1
A setIndicadorValor() 0 5 1
A getZeros() 0 4 1
A setZeros() 0 5 1
A addZeros() 0 5 1
A removeZeros() 0 5 1
A getBrancos() 0 4 1
A setBrancos() 0 5 1
A addBranco() 0 5 1
A removeBranco() 0 5 1
A getDataEntradaLiquidacao() 0 4 1
A setDataEntradaLiquidacao() 0 5 1

How to fix   Complexity   

Complex Class

Complex classes like Detail 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 Detail, and based on these observations, apply Extract Interface, too.

1
<?php
2
3
namespace Umbrella\Ya\RetornoBoleto\Cnab\Cnab400;
4
5
use Easy\Collections\ArrayList;
6
use Easy\Collections\VectorInterface;
7
use Umbrella\Ya\RetornoBoleto\Model\Banco;
8
9
class Detail extends AbstractCnab400 implements DetailInterface
10
{
11
    protected $taxaDesconto;
12
    protected $taxaIof;
13
    protected $cateira;
14
    protected $comando;
15
    protected $dataOcorrencia;
16
    protected $numTitulo;
17
    protected $dataVencimento;
18
    protected $valor;
19
    protected $especie;
20
    protected $dataCredito;
21
    protected $valorTarifa;
22
    protected $outrasDespesas;
23
    protected $jurosDesconto;
24
    protected $iofDesconto;
25
    protected $valorAbatimento;
26
    protected $descontoConcedido;
27
    protected $valorRecebido;
28
    protected $jurosMora;
29
    protected $outrosRecebimentos;
30
    protected $abatimentoNaoAprovado;
31
    protected $valorLancamento;
32
    protected $indicativoDc;
33
    protected $indicadorValor;
34
    protected $valorAjuste;
35
    protected $canalPagTitulo;
36
    protected $sequencial;
37
    protected $dataEntradaLiquidacao;
38
39
    /**
40
     *
41
     * @var Banco
42
     */
43
    protected $bancoEmissor;
44
45
    /**
46
     *
47
     * @var Banco
48
     */
49
    protected $bancoRecebedor;
50
51
    /**
52
     *
53
     * @var VectorInterface
54
     */
55
    protected $zeros;
56
57
    /**
58
     *
59
     * @var VectorInterface
60
     */
61
    protected $brancos;
62
63
    public function __construct()
64
    {
65
        $this->zeros = new ArrayList();
66
        $this->brancos = new ArrayList();
67
        parent::__construct();
68
    }
69
70
    public function getTaxaDesconto()
71
    {
72
        return $this->taxaDesconto;
73
    }
74
75
    public function getTaxaIof()
76
    {
77
        return $this->taxaIof;
78
    }
79
80
    public function getCateira()
81
    {
82
        return $this->cateira;
83
    }
84
85
    public function getComando()
86
    {
87
        return $this->comando;
88
    }
89
90
    public function getDataOcorrencia()
91
    {
92
        return $this->dataOcorrencia;
93
    }
94
95
    public function getNumTitulo()
96
    {
97
        return $this->numTitulo;
98
    }
99
100
    public function getDataVencimento()
101
    {
102
        return $this->dataVencimento;
103
    }
104
105
    public function getValor()
106
    {
107
        return $this->valor;
108
    }
109
110
    public function getEspecie()
111
    {
112
        return $this->especie;
113
    }
114
115
    public function getDataCredito()
116
    {
117
        return $this->dataCredito;
118
    }
119
120
    public function getValorTarifa()
121
    {
122
        return $this->valorTarifa;
123
    }
124
125
    public function getOutrasDespesas()
126
    {
127
        return $this->outrasDespesas;
128
    }
129
130
    public function getJurosDesconto()
131
    {
132
        return $this->jurosDesconto;
133
    }
134
135
    public function getIofDesconto()
136
    {
137
        return $this->iofDesconto;
138
    }
139
140
    public function getValorAbatimento()
141
    {
142
        return $this->valorAbatimento;
143
    }
144
145
    public function getDescontoConcedido()
146
    {
147
        return $this->descontoConcedido;
148
    }
149
150
    public function getValorRecebido()
151
    {
152
        return $this->valorRecebido;
153
    }
154
155
    public function getJurosMora()
156
    {
157
        return $this->jurosMora;
158
    }
159
160
    public function getOutrosRecebimentos()
161
    {
162
        return $this->outrosRecebimentos;
163
    }
164
165
    public function getAbatimentoNaoAprovado()
166
    {
167
        return $this->abatimentoNaoAprovado;
168
    }
169
170
    public function getValorLancamento()
171
    {
172
        return $this->valorLancamento;
173
    }
174
175
    public function getIndicativoDc()
176
    {
177
        return $this->indicativoDc;
178
    }
179
180
    public function getValorAjuste()
181
    {
182
        return $this->valorAjuste;
183
    }
184
185
    public function getCanalPagTitulo()
186
    {
187
        return $this->canalPagTitulo;
188
    }
189
190
    public function getSequencial()
191
    {
192
        return $this->sequencial;
193
    }
194
195
    public function getBancoEmissor()
196
    {
197
        return $this->bancoEmissor;
198
    }
199
200
    public function setTaxaDesconto($taxaDesconto)
201
    {
202
        $this->taxaDesconto = $taxaDesconto;
203
        return $this;
204
    }
205
206
    public function setTaxaIof($taxaIof)
207
    {
208
        $this->taxaIof = $taxaIof;
209
        return $this;
210
    }
211
212
    public function setCateira($cateira)
213
    {
214
        $this->cateira = $cateira;
215
        return $this;
216
    }
217
218
    public function setComando($comando)
219
    {
220
        $this->comando = $comando;
221
        return $this;
222
    }
223
224
    public function setDataOcorrencia($dataOcorrencia)
225
    {
226
        $this->dataOcorrencia = $dataOcorrencia;
227
        return $this;
228
    }
229
230
    public function setNumTitulo($numTitulo)
231
    {
232
        $this->numTitulo = $numTitulo;
233
        return $this;
234
    }
235
236
    public function setDataVencimento($dataVencimento)
237
    {
238
        $this->dataVencimento = $dataVencimento;
239
        return $this;
240
    }
241
242
    public function setValor($valor)
243
    {
244
        $this->valor = $valor;
245
        return $this;
246
    }
247
248
    public function setEspecie($especie)
249
    {
250
        $this->especie = $especie;
251
        return $this;
252
    }
253
254
    public function setDataCredito($dataCredito)
255
    {
256
        $this->dataCredito = $dataCredito;
257
        return $this;
258
    }
259
260
    public function setValorTarifa($valorTarifa)
261
    {
262
        $this->valorTarifa = $valorTarifa;
263
        return $this;
264
    }
265
266
    public function setOutrasDespesas($outrasDespesas)
267
    {
268
        $this->outrasDespesas = $outrasDespesas;
269
        return $this;
270
    }
271
272
    public function setJurosDesconto($jurosDesconto)
273
    {
274
        $this->jurosDesconto = $jurosDesconto;
275
        return $this;
276
    }
277
278
    public function setIofDesconto($iofDesconto)
279
    {
280
        $this->iofDesconto = $iofDesconto;
281
        return $this;
282
    }
283
284
    public function setValorAbatimento($valorAbatimento)
285
    {
286
        $this->valorAbatimento = $valorAbatimento;
287
        return $this;
288
    }
289
290
    public function setDescontoConcedido($descontoConcedido)
291
    {
292
        $this->descontoConcedido = $descontoConcedido;
293
        return $this;
294
    }
295
296
    public function setValorRecebido($valorRecebido)
297
    {
298
        $this->valorRecebido = $valorRecebido;
299
        return $this;
300
    }
301
302
    public function setJurosMora($jurosMora)
303
    {
304
        $this->jurosMora = $jurosMora;
305
        return $this;
306
    }
307
308
    public function setOutrosRecebimentos($outrosRecebimentos)
309
    {
310
        $this->outrosRecebimentos = $outrosRecebimentos;
311
        return $this;
312
    }
313
314
    public function setAbatimentoNaoAprovado($abatimentoNaoAprovado)
315
    {
316
        $this->abatimentoNaoAprovado = $abatimentoNaoAprovado;
317
        return $this;
318
    }
319
320
    public function setValorLancamento($valorLancamento)
321
    {
322
        $this->valorLancamento = $valorLancamento;
323
        return $this;
324
    }
325
326
    public function setIndicativoDc($indicativoDc)
327
    {
328
        $this->indicativoDc = $indicativoDc;
329
        return $this;
330
    }
331
332
    public function setValorAjuste($valorAjuste)
333
    {
334
        $this->valorAjuste = $valorAjuste;
335
        return $this;
336
    }
337
338
    public function setCanalPagTitulo($canalPagTitulo)
339
    {
340
        $this->canalPagTitulo = $canalPagTitulo;
341
        return $this;
342
    }
343
344
    public function setSequencial($sequencial)
345
    {
346
        $this->sequencial = $sequencial;
347
        return $this;
348
    }
349
350
    public function setBancoEmissor(Banco $bancoEmissor)
351
    {
352
        $this->bancoEmissor = $bancoEmissor;
353
        return $this;
354
    }
355
356
    public function getBancoRecebedor()
357
    {
358
        return $this->bancoRecebedor;
359
    }
360
361
    public function setBancoRecebedor(Banco $bancoRecebedor)
362
    {
363
        $this->bancoRecebedor = $bancoRecebedor;
364
        return $this;
365
    }
366
367
    public function getIndicadorValor()
368
    {
369
        return $this->indicadorValor;
370
    }
371
372
    public function setIndicadorValor($indicadorValor)
373
    {
374
        $this->indicadorValor = $indicadorValor;
375
        return $this;
376
    }
377
378
    public function getZeros()
379
    {
380
        return $this->zeros;
381
    }
382
383
    public function setZeros(VectorInterface $zeros)
384
    {
385
        $this->zeros = $zeros;
386
        return $this;
387
    }
388
389
    /**
390
     * @param string $zeros
391
     */
392
    public function addZeros($zeros)
393
    {
394
        $this->zeros->add($zeros);
395
        return $this;
396
    }
397
398
    public function removeZeros($zeros)
399
    {
400
        $this->zeros->remove($zeros);
401
        return $this;
402
    }
403
404
    public function getBrancos()
405
    {
406
        return $this->brancos;
407
    }
408
409
    public function setBrancos($brancos)
410
    {
411
        $this->brancos = $brancos;
412
        return $this;
413
    }
414
415
    public function addBranco($zeros)
416
    {
417
        $this->brancos->add($zeros);
418
        return $this;
419
    }
420
421
    public function removeBranco($zeros)
422
    {
423
        $this->brancos->remove($zeros);
424
        return $this;
425
    }
426
427
    public function getDataEntradaLiquidacao()
428
    {
429
        return $this->dataEntradaLiquidacao;
430
    }
431
432
    public function setDataEntradaLiquidacao($dataEntradaLiquidacao)
433
    {
434
        $this->dataEntradaLiquidacao = $dataEntradaLiquidacao;
435
        return $this;
436
    }
437
}
438