37 abstract class ArrayFilter extends ArrayData { |
37 abstract class ArrayFilter extends ArrayData { |
38 /** Underlying array. */ |
38 /** Underlying array. */ |
39 protected ArrayData underlying; |
39 protected ArrayData underlying; |
40 |
40 |
41 ArrayFilter(final ArrayData underlying) { |
41 ArrayFilter(final ArrayData underlying) { |
42 super(underlying.length()); |
42 super(underlying.length); |
43 this.underlying = underlying; |
43 this.underlying = underlying; |
44 } |
44 } |
45 |
45 |
46 /** |
46 /** |
47 * Get the underlying {@link ArrayData} that this filter wraps |
47 * Get the underlying {@link ArrayData} that this filter wraps |
68 } |
68 } |
69 |
69 |
70 @Override |
70 @Override |
71 public void shiftLeft(final int by) { |
71 public void shiftLeft(final int by) { |
72 underlying.shiftLeft(by); |
72 underlying.shiftLeft(by); |
73 setLength(underlying.length()); |
73 setLength(underlying.length); |
74 } |
74 } |
75 |
75 |
76 @Override |
76 @Override |
77 public ArrayData shiftRight(final int by) { |
77 public ArrayData shiftRight(final int by) { |
78 underlying = underlying.shiftRight(by); |
78 underlying = underlying.shiftRight(by); |
79 setLength(underlying.length()); |
79 setLength(underlying.length); |
80 |
80 |
81 return this; |
81 return this; |
82 } |
82 } |
83 |
83 |
84 @Override |
84 @Override |
85 public ArrayData ensure(final long safeIndex) { |
85 public ArrayData ensure(final long safeIndex) { |
86 underlying = underlying.ensure(safeIndex); |
86 underlying = underlying.ensure(safeIndex); |
87 setLength(underlying.length()); |
87 setLength(underlying.length); |
88 |
88 |
89 return this; |
89 return this; |
90 } |
90 } |
91 |
91 |
92 @Override |
92 @Override |
93 public ArrayData shrink(final long newLength) { |
93 public ArrayData shrink(final long newLength) { |
94 underlying = underlying.shrink(newLength); |
94 underlying = underlying.shrink(newLength); |
95 setLength(underlying.length()); |
95 setLength(underlying.length); |
96 |
96 |
97 return this; |
97 return this; |
98 } |
98 } |
99 |
99 |
100 @Override |
100 @Override |
101 public ArrayData set(final int index, final Object value, final boolean strict) { |
101 public ArrayData set(final int index, final Object value, final boolean strict) { |
102 underlying = underlying.set(index, value, strict); |
102 underlying = underlying.set(index, value, strict); |
103 setLength(underlying.length()); |
103 setLength(underlying.length); |
104 |
104 |
105 return this; |
105 return this; |
106 } |
106 } |
107 |
107 |
108 @Override |
108 @Override |
109 public ArrayData set(final int index, final int value, final boolean strict) { |
109 public ArrayData set(final int index, final int value, final boolean strict) { |
110 underlying = underlying.set(index, value, strict); |
110 underlying = underlying.set(index, value, strict); |
111 setLength(underlying.length()); |
111 setLength(underlying.length); |
112 |
112 |
113 return this; |
113 return this; |
114 } |
114 } |
115 |
115 |
116 @Override |
116 @Override |
117 public ArrayData set(final int index, final long value, final boolean strict) { |
117 public ArrayData set(final int index, final long value, final boolean strict) { |
118 underlying = underlying.set(index, value, strict); |
118 underlying = underlying.set(index, value, strict); |
119 setLength(underlying.length()); |
119 setLength(underlying.length); |
120 |
120 |
121 return this; |
121 return this; |
122 } |
122 } |
123 |
123 |
124 @Override |
124 @Override |
125 public ArrayData set(final int index, final double value, final boolean strict) { |
125 public ArrayData set(final int index, final double value, final boolean strict) { |
126 underlying = underlying.set(index, value, strict); |
126 underlying = underlying.set(index, value, strict); |
127 setLength(underlying.length()); |
127 setLength(underlying.length); |
128 |
128 |
129 return this; |
129 return this; |
130 } |
130 } |
131 |
131 |
132 @Override |
132 @Override |
187 } |
187 } |
188 |
188 |
189 @Override |
189 @Override |
190 public ArrayData delete(final int index) { |
190 public ArrayData delete(final int index) { |
191 underlying = underlying.delete(index); |
191 underlying = underlying.delete(index); |
192 setLength(underlying.length()); |
192 setLength(underlying.length); |
193 return this; |
193 return this; |
194 } |
194 } |
195 |
195 |
196 @Override |
196 @Override |
197 public ArrayData delete(final long from, final long to) { |
197 public ArrayData delete(final long from, final long to) { |
198 underlying = underlying.delete(from, to); |
198 underlying = underlying.delete(from, to); |
199 setLength(underlying.length()); |
199 setLength(underlying.length); |
200 return this; |
200 return this; |
201 } |
201 } |
202 |
202 |
203 @Override |
203 @Override |
204 public ArrayData convert(final Class<?> type) { |
204 public ArrayData convert(final Class<?> type) { |
205 underlying = underlying.convert(type); |
205 underlying = underlying.convert(type); |
206 setLength(underlying.length()); |
206 setLength(underlying.length); |
207 return this; |
207 return this; |
208 } |
208 } |
209 |
209 |
210 @Override |
210 @Override |
211 public Object pop() { |
211 public Object pop() { |
212 final Object value = underlying.pop(); |
212 final Object value = underlying.pop(); |
213 setLength(underlying.length()); |
213 setLength(underlying.length); |
214 |
214 |
215 return value; |
215 return value; |
216 } |
216 } |
217 |
217 |
218 @Override |
218 @Override |