Skip to content

Package: UnitOfWorkChangeSetImpl

UnitOfWorkChangeSetImpl

nameinstructionbranchcomplexitylinemethod
UnitOfWorkChangeSetImpl()
M: 0 C: 18
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 5
100%
M: 0 C: 1
100%
addDeletedObjectChangeSet(ObjectChangeSet)
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
addNewObjectChangeSet(ObjectChangeSet)
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%
addObjectChangeSet(ObjectChangeSet)
M: 0 C: 15
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
cancelObjectChanges(Object)
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
getDeletedObjects()
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%
getExistingObjectChanges(Object)
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
getExistingObjectsChanges()
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%
getNewObjects()
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%
hasChanges()
M: 0 C: 14
100%
M: 0 C: 6
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
hasDeleted()
M: 0 C: 8
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
hasNew()
M: 0 C: 8
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
M: 0 C: 1
100%

Coverage

1: /*
2: * JOPA
3: * Copyright (C) 2023 Czech Technical University in Prague
4: *
5: * This library is free software; you can redistribute it and/or
6: * modify it under the terms of the GNU Lesser General Public
7: * License as published by the Free Software Foundation; either
8: * version 3.0 of the License, or (at your option) any later version.
9: *
10: * This library is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public
16: * License along with this library.
17: */
18: package cz.cvut.kbss.jopa.sessions.change;
19:
20: import cz.cvut.kbss.jopa.sessions.ObjectChangeSet;
21: import cz.cvut.kbss.jopa.sessions.UnitOfWorkChangeSet;
22:
23: import java.util.*;
24:
25: public class UnitOfWorkChangeSetImpl implements UnitOfWorkChangeSet {
26:
27: private final Set<ObjectChangeSet> deletedObjects;
28: private final Map<Object, ObjectChangeSet> objectChanges;
29: private final Set<ObjectChangeSet> newObjectChanges;
30:
31: public UnitOfWorkChangeSetImpl() {
32: this.objectChanges = new HashMap<>();
33: this.deletedObjects = new HashSet<>();
34: this.newObjectChanges = new HashSet<>();
35: }
36:
37: @Override
38: public void addObjectChangeSet(ObjectChangeSet objectChangeSet) {
39:• if (objectChangeSet.isNew()) {
40: addNewObjectChangeSet(objectChangeSet);
41: } else {
42: objectChanges.put(objectChangeSet.getChangedObject(), objectChangeSet);
43: }
44: }
45:
46: @Override
47: public void addDeletedObjectChangeSet(ObjectChangeSet deletedObject) {
48: deletedObjects.add(deletedObject);
49: }
50:
51: @Override
52: public void addNewObjectChangeSet(ObjectChangeSet newObject) {
53: newObject.setNew(true);
54: newObjectChanges.add(newObject);
55: }
56:
57: @Override
58: public Collection<ObjectChangeSet> getExistingObjectsChanges() {
59: return Collections.unmodifiableCollection(objectChanges.values());
60: }
61:
62: @Override
63: public void cancelObjectChanges(Object original) {
64: objectChanges.remove(original);
65: }
66:
67: @Override
68: public ObjectChangeSet getExistingObjectChanges(Object original) {
69: return objectChanges.get(original);
70: }
71:
72: @Override
73: public Set<ObjectChangeSet> getDeletedObjects() {
74: return this.deletedObjects;
75: }
76:
77: @Override
78: public Set<ObjectChangeSet> getNewObjects() {
79: return this.newObjectChanges;
80: }
81:
82: @Override
83: public boolean hasDeleted() {
84:• return !deletedObjects.isEmpty();
85: }
86:
87: @Override
88: public boolean hasChanges() {
89:• return hasDeleted() || hasNew() || !objectChanges.isEmpty();
90: }
91:
92: @Override
93: public boolean hasNew() {
94:• return !this.newObjectChanges.isEmpty();
95: }
96: }