Total Complexity | 18 |
Total Lines | 88 |
Duplicated Lines | 10.23 % |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
1 | /* |
||
36 | private static class ByteArrayCell implements CellData { |
||
37 | final private byte[] data; |
||
38 | |||
39 | public ByteArrayCell(byte[] data) { |
||
40 | this.data = data; |
||
41 | } |
||
42 | |||
43 | @Override |
||
44 | public boolean lineOfSight() { |
||
45 | return (data[0] & 1) == 1; |
||
46 | } |
||
47 | |||
48 | @Override |
||
49 | public CellMovement movement() { |
||
50 | return CellMovement.byValue((data[2] & 56) >> 3); |
||
51 | } |
||
52 | |||
53 | @Override |
||
54 | public boolean active() { |
||
55 | return (data[0] & 32) >> 5 == 1; |
||
56 | } |
||
57 | |||
58 | @Override |
||
59 | public GroundCellData ground() { |
||
60 | return new GroundCellData() { |
||
61 | @Override |
||
62 | public int level() { |
||
63 | return data[1] & 15; |
||
64 | } |
||
65 | |||
66 | @Override |
||
67 | public int slope() { |
||
68 | return (data[4] & 60) >> 2; |
||
69 | } |
||
70 | |||
71 | View Code Duplication | @Override |
|
1 ignored issue
–
show
|
|||
72 | public int number() { |
||
73 | return ((data[0] & 24) << 6) + ((data[2] & 7) << 6) + data[3]; |
||
74 | } |
||
75 | |||
76 | @Override |
||
77 | public int rotation() { |
||
78 | return (data[1] & 48) >> 4; |
||
79 | } |
||
80 | |||
81 | @Override |
||
82 | public boolean flip() { |
||
83 | return (data[4] & 2) >> 1 == 1; |
||
84 | } |
||
85 | }; |
||
86 | } |
||
87 | |||
88 | @Override |
||
89 | public CellLayerData layer1() { |
||
90 | return new CellLayerData() { |
||
91 | View Code Duplication | @Override |
|
1 ignored issue
–
show
|
|||
92 | public int number() { |
||
93 | return ((data[0] & 4) << 11) + ((data[4] & 1) << 12) + (data[5] << 6) + data[6]; |
||
94 | } |
||
95 | |||
96 | @Override |
||
97 | public int rotation() { |
||
98 | return (data[7] & 48) >> 4; |
||
99 | } |
||
100 | |||
101 | @Override |
||
102 | public boolean flip() { |
||
103 | return (data[7] & 8) >> 3 == 1; |
||
104 | } |
||
105 | }; |
||
106 | } |
||
107 | |||
108 | @Override |
||
109 | public InteractiveObjectData layer2() { |
||
110 | return new InteractiveObjectData() { |
||
111 | @Override |
||
112 | public boolean interactive() { |
||
113 | return (data[7] & 2) >> 1 == 1; |
||
114 | } |
||
115 | |||
116 | View Code Duplication | @Override |
|
1 ignored issue
–
show
|
|||
117 | public int number() { |
||
118 | return ((data[0] & 2) << 12) + ((data[7] & 1) << 12) + (data[8] << 6) + data[9]; |
||
119 | } |
||
120 | |||
121 | @Override |
||
122 | public boolean flip() { |
||
123 | return (data[7] & 4) >> 2 == 1; |
||
124 | } |
||
210 |