Skip to content

Commit feae252

Browse files
authored
Merge pull request #39 from AntoninGoslin/replace_string_by_class
Replace strings by classes
2 parents b13270f + 368438a commit feae252

10 files changed

Lines changed: 134 additions & 95 deletions

Famix-Simple-Diff/FamixSimpleDiff.class.st

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,14 @@ FamixSimpleDiff >> compareRelation: aFMRelationSlot from: aFamixEntity to: other
109109

110110
{ #category : 'comparing' }
111111
FamixSimpleDiff >> compareToManyRelation: val1 actual: val2 target: anEntity [
112+
"We use two pointer to browse the differences of the model using Moose name. val1 and val2 must be sorted collections.
113+
- If the name are identical, we advance both pointers.
114+
- If name1 < name2, so its a deletion (pointer1 go forward).
115+
- If name1 > name2, so its an addition (pointer2 go forward).
116+
If one stream is empty, we finish the remaining additions/ deletions.
117+
Return true if models are equals, false otherwise.
118+
"
119+
112120
| stream1 stream2 isEquals diff|
113121
isEquals := true.
114122

@@ -137,7 +145,7 @@ FamixSimpleDiff >> compareToManyRelation: val1 actual: val2 target: anEntity [
137145
"deletion case"
138146
name1 < name2
139147
ifTrue: [
140-
diff := FamixSimpleDifference createEntityRemoved: anEntity expectedValue: elt1.
148+
diff := FamixSimpleDifference createEntityDeletion: anEntity expectedValue: elt1.
141149
self addDifference: diff.
142150
isEquals := false.
143151
stream1 next. "ptr1++"
@@ -284,7 +292,7 @@ FamixSimpleDiff >> finishRemainingAdditionOf: aStream target: anEntity [
284292
FamixSimpleDiff >> finishRemainingDeletionOf: aStream target: anEntity [
285293

286294
^ self finishRemaining: aStream diffCreation: [ :val |
287-
FamixSimpleDifference createEntityRemoved: anEntity expectedValue: val ]
295+
FamixSimpleDifference createEntityDeletion: anEntity expectedValue: val ]
288296
]
289297

290298
{ #category : 'initialization' }

Famix-Simple-Diff/FamixSimpleDiffTest.class.st

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,12 @@ FamixSimpleDiffTest >> testClearRemainingAdditionWhenMultipleMethodHaveToBeClean
8484

8585
diff := sd differences.
8686

87-
self assert: diff first changeType equals: FamixSimpleDifference entityAdded.
88-
self assert: diff first expectedValue equals: nil.
87+
self assert: diff first class equals: FamixSimpleDifferenceEntityAddition.
88+
self assert: diff first expectedValue class equals: FamixSimpleDifferenceNullValue.
8989
self assert: diff first actualValue name equals: 'methodB'.
9090

91-
self assert: diff second changeType equals: FamixSimpleDifference entityAdded.
92-
self assert: diff second expectedValue equals: nil.
91+
self assert: diff second class equals: FamixSimpleDifferenceEntityAddition.
92+
self assert: diff first expectedValue class equals: FamixSimpleDifferenceNullValue.
9393
self assert: diff second actualValue name equals: 'methodC'.
9494
]
9595

@@ -127,13 +127,13 @@ FamixSimpleDiffTest >> testClearRemainingSuppressionWhenMultipleMethodHaveToBeCl
127127

128128
diff := sd differences.
129129

130-
self assert: diff first changeType equals: FamixSimpleDifference entityRemoved.
130+
self assert: diff first class equals: FamixSimpleDifferenceEntityDeletion.
131131
self assert: diff first expectedValue name equals: 'methodB'.
132-
self assert: diff first actualValue equals: nil.
132+
self assert: diff first actualValue class equals: FamixSimpleDifferenceNullValue.
133133

134-
self assert: diff second changeType equals: FamixSimpleDifference entityRemoved.
134+
self assert: diff second class equals: FamixSimpleDifferenceEntityDeletion.
135135
self assert: diff second expectedValue name equals: 'methodC'.
136-
self assert: diff second actualValue equals: nil.
136+
self assert: diff second actualValue class equals: FamixSimpleDifferenceNullValue.
137137
]
138138

139139
{ #category : 'tests' }
@@ -152,7 +152,7 @@ FamixSimpleDiffTest >> testCompareEntityToReturnsFalseAndRecordsDiffWhenDifferen
152152

153153
diff := sd differences first.
154154

155-
self assert: diff changeType equals: FamixSimpleDifference propertyChanged.
155+
self assert: diff class equals: FamixSimpleDifferencePropertyChanged.
156156
self assert: diff expectedValue equals: 'MyClass'.
157157
self assert: diff actualValue equals: 'MyOtherClass'.
158158

@@ -174,7 +174,7 @@ FamixSimpleDiffTest >> testCompareEntityToReturnsFalseAndRecordsDiffWhenDifferen
174174

175175
diff := sd differences first.
176176

177-
self assert: diff changeType equals: FamixSimpleDifference entityChanged.
177+
self assert: diff class equals: FamixSimpleDifferenceEntityChanged.
178178
self assert: diff expectedValue equals: 'FamixJavaClass'.
179179
self assert: diff actualValue equals: 'FamixJavaMethod'.
180180

@@ -209,8 +209,8 @@ FamixSimpleDiffTest >> testCompareEntityToReturnsFalseWhenAMethodIsAddedBeforeEx
209209

210210
diff := sd differences.
211211

212-
self assert: diff first changeType equals: FamixSimpleDifference entityAdded.
213-
self assert: diff first expectedValue equals: nil.
212+
self assert: diff first class equals: FamixSimpleDifferenceEntityAddition.
213+
self assert: diff first expectedValue class equals: FamixSimpleDifferenceNullValue.
214214
self assert: diff first actualValue equals: methodA.
215215
]
216216

@@ -246,8 +246,8 @@ FamixSimpleDiffTest >> testCompareEntityToReturnsFalseWhenSameClassesAndAMethodI
246246

247247
diff := sd differences first.
248248

249-
self assert: diff changeType equals: FamixSimpleDifference entityAdded.
250-
self assert: diff expectedValue equals: nil.
249+
self assert: diff class equals: FamixSimpleDifferenceEntityAddition.
250+
self assert: diff expectedValue class equals: FamixSimpleDifferenceNullValue.
251251
self assert: diff actualValue name equals: 'newMethod'.
252252
]
253253

@@ -282,9 +282,9 @@ FamixSimpleDiffTest >> testCompareEntityToReturnsFalseWhenSameClassesAndAMethodI
282282

283283
diff := sd differences first.
284284

285-
self assert: diff changeType equals: FamixSimpleDifference entityRemoved.
285+
self assert: diff class equals: FamixSimpleDifferenceEntityDeletion.
286286
self assert: diff expectedValue name equals: 'deletedMethod'.
287-
self assert: diff actualValue equals: nil.
287+
self assert: diff actualValue class equals: FamixSimpleDifferenceNullValue.
288288
]
289289

290290
{ #category : 'tests' }

Famix-Simple-Diff/FamixSimpleDifference.class.st

Lines changed: 30 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ Class {
33
#superclass : 'Object',
44
#instVars : [
55
'entity',
6-
'changeType',
76
'expectedValue',
87
'actualValue'
98
],
@@ -13,84 +12,47 @@ Class {
1312

1413
{ #category : 'instance creation' }
1514
FamixSimpleDifference class >> createEntityAdded: anEntity actualValue: actualValue [
16-
^ self
17-
entity: anEntity
18-
changeType: self entityAdded
19-
expectedValue: nil
20-
actualValue: actualValue
15+
^ FamixSimpleDifferenceEntityAddition new
16+
entity: anEntity;
17+
expectedValue: FamixSimpleDifferenceNullValue new;
18+
actualValue: actualValue;
19+
yourself
2120
]
2221

2322
{ #category : 'instance creation' }
2423
FamixSimpleDifference class >> createEntityChanged: anEntity expectedValue: expectedValue actualValue: actualValue [
25-
^ self
26-
entity: anEntity
27-
changeType: self entityChanged
28-
expectedValue: expectedValue
29-
actualValue: actualValue
24+
^ FamixSimpleDifferenceEntityChanged new
25+
entity: anEntity;
26+
expectedValue: expectedValue;
27+
actualValue: actualValue;
28+
yourself
3029
]
3130

3231
{ #category : 'instance creation' }
33-
FamixSimpleDifference class >> createEntityRemoved: anEntity expectedValue: expectedValue [
34-
^ self
35-
entity: anEntity
36-
changeType: self entityRemoved
37-
expectedValue: expectedValue
38-
actualValue: nil
32+
FamixSimpleDifference class >> createEntityDeletion: anEntity expectedValue: expectedValue [
33+
^ FamixSimpleDifferenceEntityDeletion new
34+
entity: anEntity;
35+
expectedValue: expectedValue;
36+
actualValue: FamixSimpleDifferenceNullValue new;
37+
yourself
3938
]
4039

4140
{ #category : 'instance creation' }
4241
FamixSimpleDifference class >> createPropertyChanged: anEntity expectedValue: expectedValue actualValue: actualValue [
43-
^ self
44-
entity: anEntity
45-
changeType: self propertyChanged
46-
expectedValue: expectedValue
47-
actualValue: actualValue
42+
^ FamixSimpleDifferencePropertyChanged new
43+
entity: anEntity;
44+
expectedValue: expectedValue;
45+
actualValue: actualValue;
46+
yourself
4847
]
4948

5049
{ #category : 'instance creation' }
5150
FamixSimpleDifference class >> createRelationChanged: anEntity expectedValue: expectedValue actualValue: actualValue [
52-
^ self
53-
entity: anEntity
54-
changeType: self relationChanged
55-
expectedValue: expectedValue
56-
actualValue: actualValue
57-
]
58-
59-
{ #category : 'instance creation' }
60-
FamixSimpleDifference class >> entity: anEntity changeType: aSymbol expectedValue: val1 actualValue: val2 [
61-
62-
| difference |
63-
difference := FamixSimpleDifference new.
64-
difference entity: anEntity.
65-
difference changeType: aSymbol.
66-
difference expectedValue: val1.
67-
difference actualValue: val2.
68-
^ difference
69-
]
70-
71-
{ #category : 'constants' }
72-
FamixSimpleDifference class >> entityAdded [
73-
^ #entityAdded
74-
]
75-
76-
{ #category : 'constants' }
77-
FamixSimpleDifference class >> entityChanged [
78-
^ #entityChanged
79-
]
80-
81-
{ #category : 'constants' }
82-
FamixSimpleDifference class >> entityRemoved [
83-
^ #entityRemoved
84-
]
85-
86-
{ #category : 'constants' }
87-
FamixSimpleDifference class >> propertyChanged [
88-
^ #propertyChanged
89-
]
90-
91-
{ #category : 'constants' }
92-
FamixSimpleDifference class >> relationChanged [
93-
^ #relationChanged
51+
^ FamixSimpleDifferenceRelationChanged new
52+
entity: anEntity;
53+
expectedValue: expectedValue;
54+
actualValue: actualValue;
55+
yourself
9456
]
9557

9658
{ #category : 'accessing' }
@@ -106,15 +68,9 @@ FamixSimpleDifference >> actualValue: anObject [
10668
]
10769

10870
{ #category : 'accessing' }
109-
FamixSimpleDifference >> changeType [
110-
111-
^ changeType
112-
]
113-
114-
{ #category : 'accessing' }
115-
FamixSimpleDifference >> changeType: anObject [
116-
117-
changeType := anObject
71+
FamixSimpleDifference >> changeTypeName [
72+
"the name have to be defined by the subclass"
73+
^ self subclassResponsibility
11874
]
11975

12076
{ #category : 'accessing' }
@@ -147,7 +103,7 @@ FamixSimpleDifference >> printOn: aStream [
147103

148104
super printOn: aStream.
149105
aStream nextPutAll: '('.
150-
aStream print: changeType.
106+
aStream print: self changeTypeName.
151107

152108
aStream
153109
nextPutAll: ' -> Expected: ';
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Class {
2+
#name : 'FamixSimpleDifferenceEntityAddition',
3+
#superclass : 'FamixSimpleDifference',
4+
#category : 'Famix-Simple-Diff',
5+
#package : 'Famix-Simple-Diff'
6+
}
7+
8+
{ #category : 'accessing' }
9+
FamixSimpleDifferenceEntityAddition >> changeTypeName [
10+
^ 'Entity Addition'
11+
]
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Class {
2+
#name : 'FamixSimpleDifferenceEntityChanged',
3+
#superclass : 'FamixSimpleDifference',
4+
#category : 'Famix-Simple-Diff',
5+
#package : 'Famix-Simple-Diff'
6+
}
7+
8+
{ #category : 'accessing' }
9+
FamixSimpleDifferenceEntityChanged >> changeTypeName [
10+
^ 'Entity Changed'
11+
]
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Class {
2+
#name : 'FamixSimpleDifferenceEntityDeletion',
3+
#superclass : 'FamixSimpleDifference',
4+
#category : 'Famix-Simple-Diff',
5+
#package : 'Famix-Simple-Diff'
6+
}
7+
8+
{ #category : 'accessing' }
9+
FamixSimpleDifferenceEntityDeletion >> changeTypeName [
10+
^ 'Entity Deletion'
11+
]
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Class {
2+
#name : 'FamixSimpleDifferenceNullValue',
3+
#superclass : 'Object',
4+
#category : 'Famix-Simple-Diff',
5+
#package : 'Famix-Simple-Diff'
6+
}
7+
8+
{ #category : 'accessing' }
9+
FamixSimpleDifferenceNullValue >> mooseName [
10+
^ 'Nothing'
11+
]
12+
13+
{ #category : 'accessing' }
14+
FamixSimpleDifferenceNullValue >> name [
15+
^ 'Nothing'
16+
]
17+
18+
{ #category : 'printing' }
19+
FamixSimpleDifferenceNullValue >> printOn: aStream [
20+
aStream nextPutAll: 'Nothing'
21+
]
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Class {
2+
#name : 'FamixSimpleDifferencePropertyChanged',
3+
#superclass : 'FamixSimpleDifference',
4+
#category : 'Famix-Simple-Diff',
5+
#package : 'Famix-Simple-Diff'
6+
}
7+
8+
{ #category : 'accessing' }
9+
FamixSimpleDifferencePropertyChanged >> changeTypeName [
10+
^ 'Property Changed'
11+
]
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Class {
2+
#name : 'FamixSimpleDifferenceRelationChanged',
3+
#superclass : 'FamixSimpleDifference',
4+
#category : 'Famix-Simple-Diff',
5+
#package : 'Famix-Simple-Diff'
6+
}
7+
8+
{ #category : 'accessing' }
9+
FamixSimpleDifferenceRelationChanged >> changeTypeName [
10+
^ 'Relation Changed'
11+
]

Famix-Simple-Diff/FamixSimpleDifferenceTest.class.st

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,13 @@ FamixSimpleDifferenceTest >> testInstanceCreation [
1414
actualValue := 'private int age;'.
1515

1616
difference := FamixSimpleDifference
17-
entity: 'testEntity'
18-
changeType: #entityModification
17+
createEntityChanged: 'testEntity'
1918
expectedValue: expectedValue
2019
actualValue: actualValue.
2120

2221
"checking instance creation"
2322
self assert: difference entity equals: 'testEntity'.
24-
self assert: difference changeType equals: #entityModification.
23+
self assert: difference class equals: FamixSimpleDifferenceEntityChanged.
2524
self assert: difference expectedValue equals: expectedValue.
2625
self assert: difference actualValue equals: actualValue.
2726
]

0 commit comments

Comments
 (0)