1
1
package org.modelix.model.sync
2
2
3
3
class ImportStats {
4
- val additions: List <String > = mutableListOf ()
5
- val deletions: List <String > = mutableListOf ()
6
- val moves: List <String > = mutableListOf ()
4
+ val additions: List <Addition > = mutableListOf ()
5
+ val deletions: List <Deletion > = mutableListOf ()
6
+ val moves: List <Move > = mutableListOf ()
7
7
val propertyChanges: List <PropertyChange > = mutableListOf ()
8
8
val referenceChanges: List <ReferenceChange > = mutableListOf ()
9
9
10
- fun addAddition (nodeId : String ) {
11
- (additions as MutableList ).add(nodeId)
10
+ fun addAddition (nodeId : String? , parentId : String? , role : String? , index : Int ) {
11
+ (additions as MutableList ).add(Addition ( nodeId, parentId, role, index) )
12
12
}
13
13
14
- fun addDeletion (nodeId : String ) {
15
- (deletions as MutableList ).add(nodeId)
14
+ fun addDeletion (nodeId : String? , parentId : String? , role : String? , descendantIds : List < String > ) {
15
+ (deletions as MutableList ).add(Deletion ( nodeId, parentId, role, descendantIds) )
16
16
}
17
17
18
- fun addMove (nodeId : String ) {
19
- (moves as MutableList ).add(nodeId)
18
+ fun addMove (
19
+ nodeId : String? ,
20
+ oldParentId : String? ,
21
+ oldRole : String? ,
22
+ oldIndex : Int ,
23
+ newParentId : String? ,
24
+ newRole : String? ,
25
+ newIndex : Int
26
+ ) {
27
+ (moves as MutableList ).add(
28
+ Move (nodeId, oldParentId, oldRole, oldIndex, newParentId, newRole, newIndex))
20
29
}
21
30
22
31
fun addPropertyChange (nodeId : String , property : String ) {
@@ -27,8 +36,40 @@ class ImportStats {
27
36
(referenceChanges as MutableList ).add(ReferenceChange (nodeId, reference))
28
37
}
29
38
39
+ fun getTotal () : Int = additions.size + deletions.size + moves.size + propertyChanges.size + referenceChanges.size
40
+
41
+ }
42
+
43
+ interface NodeChange {
44
+ val nodeId: String?
45
+ val parentId: String?
46
+ val role: String?
30
47
}
31
48
49
+ data class Addition (
50
+ override val nodeId : String? ,
51
+ override val parentId : String? ,
52
+ override val role : String? ,
53
+ val index : Int
54
+ ) : NodeChange
55
+
56
+ data class Deletion (
57
+ override val nodeId : String? ,
58
+ override val parentId : String? ,
59
+ override val role : String? ,
60
+ val descendantIds : List <String >
61
+ ) : NodeChange
62
+
63
+ data class Move (
64
+ override val nodeId : String? ,
65
+ override val parentId : String? ,
66
+ override val role : String? ,
67
+ val oldIndex : Int ,
68
+ val newParentId : String? ,
69
+ val newRole : String? ,
70
+ val newIndex : Int
71
+ ) : NodeChange
72
+
32
73
data class PropertyChange (val nodeId : String , val property : String )
33
74
data class ReferenceChange (val nodeId : String , val reference : String )
34
75
0 commit comments