Skip to content

Package: IndirectList

IndirectList

nameinstructionbranchcomplexitylinemethod
IndirectList()
M: 8 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
IndirectList(Object, Field, UnitOfWorkImpl, List)
M: 0 C: 16
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 5
100%
M: 0 C: 1
100%
add(Object)
M: 0 C: 11
100%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 0 C: 4
100%
M: 0 C: 1
100%
add(int, Object)
M: 0 C: 8
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
addAll(Collection)
M: 0 C: 11
100%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 0 C: 4
100%
M: 0 C: 1
100%
addAll(int, Collection)
M: 0 C: 12
100%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 0 C: 4
100%
M: 0 C: 1
100%
clear()
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
contains(Object)
M: 0 C: 5
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
containsAll(Collection)
M: 0 C: 5
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
equals(Object)
M: 7 C: 13
65%
M: 2 C: 2
50%
M: 2 C: 1
33%
M: 2 C: 3
60%
M: 0 C: 1
100%
get(int)
M: 0 C: 5
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
getReferencedCollection()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
hashCode()
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
indexOf(Object)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
isEmpty()
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
iterator()
M: 0 C: 9
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
lastIndexOf(Object)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
listIterator()
M: 0 C: 9
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
listIterator(int)
M: 0 C: 10
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
remove(Object)
M: 0 C: 11
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
remove(int)
M: 0 C: 9
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
removeAll(Collection)
M: 0 C: 11
100%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 0 C: 4
100%
M: 0 C: 1
100%
retainAll(Collection)
M: 0 C: 11
100%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 0 C: 4
100%
M: 0 C: 1
100%
set(int, Object)
M: 0 C: 10
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
size()
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
subList(int, int)
M: 15 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
toArray()
M: 4 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
toArray(Object[])
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
toString()
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%

Coverage

1: /**
2: * Copyright (C) 2016 Czech Technical University in Prague
3: *
4: * This program is free software: you can redistribute it and/or modify it under
5: * the terms of the GNU General Public License as published by the Free Software
6: * Foundation, either version 3 of the License, or (at your option) any
7: * later version.
8: *
9: * This program is distributed in the hope that it will be useful, but WITHOUT
10: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11: * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
12: * details. You should have received a copy of the GNU General Public License
13: * along with this program. If not, see <http://www.gnu.org/licenses/>.
14: */
15: package cz.cvut.kbss.jopa.adapters;
16:
17: import java.lang.reflect.Field;
18: import java.util.ArrayList;
19: import java.util.Collection;
20: import java.util.Iterator;
21: import java.util.List;
22: import java.util.ListIterator;
23:
24: import cz.cvut.kbss.jopa.sessions.UnitOfWorkImpl;
25:
26: public class IndirectList<E> extends IndirectCollection<List<E>> implements List<E> {
27:
28: private final List<E> internalList;
29:
30: /**
31: * No-arg constructor to allow clone building.
32: */
33: IndirectList() {
34: this.internalList = new ArrayList<>();
35: }
36:
37: /**
38: * Create new indirect list backed by the specified referenced list.
39: *
40: * @param owner
41: * Owner of the list
42: * @param f
43: * The field holding this list
44: * @param uow
45: * Persistence context the owner belongs to
46: * @param referencedList
47: * The list to reference
48: * @throws NullPointerException
49: * If the {@code referencedList} is null
50: */
51: public IndirectList(Object owner, Field f, UnitOfWorkImpl uow, List<E> referencedList) {
52: super(owner, f, uow);
53:• if (referencedList == null) {
54: throw new NullPointerException("Null passed in as the referencedList.");
55: }
56: this.internalList = referencedList;
57: }
58:
59: @Override
60: public boolean add(E arg0) {
61: boolean res = internalList.add(arg0);
62:• if (res) {
63: persistChange();
64: }
65: return res;
66: }
67:
68: @Override
69: public void add(int arg0, E arg1) {
70: internalList.add(arg0, arg1);
71: persistChange();
72: }
73:
74: @Override
75: public boolean addAll(Collection<? extends E> arg0) {
76: boolean res = internalList.addAll(arg0);
77:• if (res) {
78: persistChange();
79: }
80: return res;
81: }
82:
83: @Override
84: public boolean addAll(int arg0, Collection<? extends E> arg1) {
85: boolean res = internalList.addAll(arg0, arg1);
86:• if (res) {
87: persistChange();
88: }
89: return res;
90: }
91:
92: @Override
93: public void clear() {
94: internalList.clear();
95: persistChange();
96: }
97:
98: @Override
99: public boolean contains(Object arg0) {
100: return internalList.contains(arg0);
101: }
102:
103: @Override
104: public boolean containsAll(Collection<?> arg0) {
105: return internalList.containsAll(arg0);
106: }
107:
108: @Override
109: public E get(int arg0) {
110: return internalList.get(arg0);
111: }
112:
113: @Override
114: public int indexOf(Object arg0) {
115: return internalList.indexOf(arg0);
116: }
117:
118: @Override
119: public boolean isEmpty() {
120: return internalList.isEmpty();
121: }
122:
123: @Override
124: public Iterator<E> iterator() {
125: return new IndirectIterator(internalList.iterator());
126: }
127:
128: @Override
129: public int lastIndexOf(Object arg0) {
130: return internalList.lastIndexOf(arg0);
131: }
132:
133: @Override
134: public ListIterator<E> listIterator() {
135: return new IndirectListIterator(internalList.listIterator());
136: }
137:
138: @Override
139: public ListIterator<E> listIterator(int arg0) {
140: return new IndirectListIterator(internalList.listIterator(arg0));
141: }
142:
143: @Override
144: public boolean remove(Object arg0) {
145: boolean res = internalList.remove(arg0);
146:• if (res) {
147: persistChange();
148: }
149: return res;
150: }
151:
152: @Override
153: public E remove(int arg0) {
154: E elem = internalList.remove(arg0);
155: persistChange();
156: return elem;
157: }
158:
159: @Override
160: public boolean removeAll(Collection<?> arg0) {
161: boolean res = internalList.removeAll(arg0);
162:• if (res) {
163: persistChange();
164: }
165: return res;
166: }
167:
168: @Override
169: public boolean retainAll(Collection<?> arg0) {
170: boolean res = internalList.retainAll(arg0);
171:• if (res) {
172: persistChange();
173: }
174: return res;
175: }
176:
177: @Override
178: public E set(int arg0, E arg1) {
179: E elem = internalList.set(arg0, arg1);
180: persistChange();
181: return elem;
182: }
183:
184: @Override
185: public int size() {
186: return internalList.size();
187: }
188:
189: @Override
190: public List<E> subList(int fromIndex, int toIndex) {
191: return new IndirectList<>(owner, field, persistenceContext, internalList.subList(fromIndex, toIndex));
192: }
193:
194: @Override
195: public Object[] toArray() {
196: return internalList.toArray();
197: }
198:
199: @Override
200: public <T> T[] toArray(T[] arg0) {
201: return internalList.toArray(arg0);
202: }
203:
204: @Override
205: public List<E> getReferencedCollection() {
206: return internalList;
207: }
208:
209: @Override
210: public boolean equals(Object o) {
211:• if (o instanceof List) {
212:• if (o instanceof IndirectList) {
213: return internalList.equals(((IndirectList) o).internalList);
214: }
215: return internalList.equals(o);
216: }
217: return false;
218: }
219:
220: @Override
221: public int hashCode() {
222: return internalList.hashCode();
223: }
224:
225: @Override
226: public String toString() {
227: return internalList.toString();
228: }
229:
230: private class IndirectIterator implements Iterator<E> {
231:
232: private final Iterator<E> it;
233:
234: private IndirectIterator(Iterator<E> it) {
235: this.it = it;
236: }
237:
238: @Override
239: public boolean hasNext() {
240: return it.hasNext();
241: }
242:
243: @Override
244: public E next() {
245: return it.next();
246: }
247:
248: @Override
249: public void remove() {
250: it.remove();
251: IndirectList.this.persistChange();
252: }
253: }
254:
255: private class IndirectListIterator implements ListIterator<E> {
256:
257: private final ListIterator<E> lit;
258:
259: private IndirectListIterator(ListIterator<E> lit) {
260: this.lit = lit;
261: }
262:
263: @Override
264: public boolean hasNext() {
265: return lit.hasNext();
266: }
267:
268: @Override
269: public E next() {
270: return lit.next();
271: }
272:
273: @Override
274: public boolean hasPrevious() {
275: return lit.hasPrevious();
276: }
277:
278: @Override
279: public E previous() {
280: return lit.previous();
281: }
282:
283: @Override
284: public int nextIndex() {
285: return lit.nextIndex();
286: }
287:
288: @Override
289: public int previousIndex() {
290: return lit.previousIndex();
291: }
292:
293: @Override
294: public void remove() {
295: lit.remove();
296: IndirectList.this.persistChange();
297: }
298:
299: @Override
300: public void set(E e) {
301: lit.set(e);
302: IndirectList.this.persistChange();
303: }
304:
305: @Override
306: public void add(E e) {
307: lit.add(e);
308: IndirectList.this.persistChange();
309: }
310: }
311: }