Skip to content

Commit

Permalink
Merge pull request #206 from moosetechnology/development
Browse files Browse the repository at this point in the history
Merge development into master for v1.0.1
  • Loading branch information
ClotildeToullec authored Jan 15, 2021
2 parents 16c411b + eb5f23c commit 2103462
Show file tree
Hide file tree
Showing 145 changed files with 2,001 additions and 427 deletions.
27 changes: 27 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# This is a basic workflow to help you get started with Actions

name: CI

# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the development branch
on:
pull_request:
types: [assigned, opened, synchronize, reopened]

jobs:
build:
runs-on: ubuntu-latest
env:
PROJECT_NAME: ${{ matrix.smalltalk }}-Famix
strategy:
matrix:
smalltalk: [ Pharo64-9.0, Pharo64-8.0 ]
name: ${{ matrix.smalltalk }}
steps:
- uses: actions/checkout@v2
- uses: hpi-swa/setup-smalltalkCI@v1
with:
smalltalk-version: ${{ matrix.smalltalk }}
- run: smalltalkci -s ${{ matrix.smalltalk }}
shell: bash
timeout-minutes: 15
2 changes: 2 additions & 0 deletions src/BaselineOfFamix/BaselineOfFamix.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ BaselineOfFamix >> baseline: spec [

package: 'Famix-Java-Generator' with: [ spec requires: #('Basic') ];
package: 'Famix-Java-Entities' with: [ spec requires: #('BasicTraits') ];
package: 'Famix-Java-Visitor' with: [ spec requires: #('Famix-Java-Entities') ];
package: 'Famix-Java-Tests' with: [ spec requires: #('Famix-Java-Entities' 'Famix-Java-Generator') ];

package: 'Moose-TestResources-LAN';
Expand Down Expand Up @@ -109,6 +110,7 @@ BaselineOfFamix >> baseline: spec [
group: 'EntitiesCompatibility' with: #('Famix-Compatibility-Entities');
group: 'ModelCompatibility' with: #('Famix-Compatibility-Generator' 'EntitiesCompatibility');
group: 'EntitiesJava' with: #('Famix-Java-Entities');
group: 'EntitiesJavaWithVisitor' with: #('EntitiesJava' 'Famix-Java-Visitor');
group: 'ModelJava' with: #('Famix-Java-Generator' 'EntitiesJava');
group: 'EntitiesSmalltalk' with: #('Famix-PharoSmalltalk-Entities');
group: 'ModelSmalltalk' with: #('Famix-PharoSmalltalk-Generator' 'EntitiesSmalltalk');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,6 @@ FAMIXBehaviouralEntity >> numberOfOutgoingInvocations [
{ #category : #'Famix-Extensions' }
FAMIXBehaviouralEntity >> numberOfStatements [
<FMProperty: #numberOfStatements type: #Number>
<derived>
<FMComment: 'The number of statements in a method'>
^ self
lookUpPropertyNamed: #numberOfStatements
Expand Down
4 changes: 2 additions & 2 deletions src/Famix-Compatibility-Entities/FAMIXNamedEntity.class.st
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Class {
#name : #FAMIXNamedEntity,
#superclass : #FAMIXSourcedEntity,
#traits : 'FamixTHasModifiers + FamixTInvocationsReceiver + FamixTNamedEntity + FamixTPackageable + FamixTWithAnnotationInstances',
#classTraits : 'FamixTHasModifiers classTrait + FamixTInvocationsReceiver classTrait + FamixTNamedEntity classTrait + FamixTPackageable classTrait + FamixTWithAnnotationInstances classTrait',
#traits : 'FamixTCanBeAbstract + FamixTCanBeFinal + FamixTHasVisibility + FamixTInvocationsReceiver + FamixTNamedEntity + FamixTPackageable + FamixTWithAnnotationInstances',
#classTraits : 'FamixTCanBeAbstract classTrait + FamixTCanBeFinal classTrait + FamixTHasVisibility classTrait + FamixTInvocationsReceiver classTrait + FamixTNamedEntity classTrait + FamixTPackageable classTrait + FamixTWithAnnotationInstances classTrait',
#category : #'Famix-Compatibility-Entities-Entities'
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,9 @@ FamixCompatibilityGenerator >> defineHierarchy [
namedEntity --|> #TPackageable.
namedEntity --|> #TInvocationsReceiver.
namedEntity --|> #TWithAnnotationInstances.
namedEntity --|> #THasModifiers.
namedEntity --|> #THasVisibility.
namedEntity --|> #TCanBeAbstract.
namedEntity --|> #TCanBeFinal.

namespace --|> scopingEntity.
namespace --|> #TNamespace.
Expand Down
5 changes: 0 additions & 5 deletions src/Famix-Compatibility-Tests-Core/FAMIXClassTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,3 @@ FAMIXClassTest >> testIsInterface [
isInterface: true;
isInterface)
]

{ #category : #tests }
FAMIXClassTest >> testModifiers [
self assertEmpty: self actualClass new modifiers
]
Original file line number Diff line number Diff line change
Expand Up @@ -29,30 +29,31 @@ FAMIXNamedEntityTest >> testIsFinal [
FAMIXNamedEntityTest >> testIsPackage [
| entity |
entity := self actualClass new.
entity isPackage: true.
entity bePackage.
self assert: entity isPackage
]

{ #category : #tests }
FAMIXNamedEntityTest >> testIsPrivate [
| entity |
entity := self actualClass new.
entity isPrivate: true.
entity bePrivate.
self assert: entity isPrivate
]

{ #category : #tests }
FAMIXNamedEntityTest >> testIsProtected [

| entity |
entity := self actualClass new.
entity isProtected: true.
entity beProtected.
self assert: entity isProtected
]

{ #category : #tests }
FAMIXNamedEntityTest >> testIsPublic [
| entity |
entity := self actualClass new.
entity isPublic: true.
entity bePublic.
self assert: entity isPublic
]
16 changes: 0 additions & 16 deletions src/Famix-Deprecated/FamixTWithModifiers.trait.st

This file was deleted.

4 changes: 2 additions & 2 deletions src/Famix-Java-Entities/FamixJavaAnnotationType.class.st
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Class {
#name : #FamixJavaAnnotationType,
#superclass : #FamixJavaType,
#traits : 'FamixTAnnotationType',
#classTraits : 'FamixTAnnotationType classTrait',
#traits : 'FamixTAnnotationType + FamixTWithAttributes',
#classTraits : 'FamixTAnnotationType classTrait + FamixTWithAttributes classTrait',
#category : #'Famix-Java-Entities-Entities'
}

Expand Down
4 changes: 2 additions & 2 deletions src/Famix-Java-Entities/FamixJavaAttribute.class.st
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Class {
#name : #FamixJavaAttribute,
#superclass : #FamixJavaNamedEntity,
#traits : 'FamixTAttribute + FamixTWithClassScope',
#classTraits : 'FamixTAttribute classTrait + FamixTWithClassScope classTrait',
#traits : 'FamixTAttribute + FamixTCanBeFinal + FamixTWithClassScope',
#classTraits : 'FamixTAttribute classTrait + FamixTCanBeFinal classTrait + FamixTWithClassScope classTrait',
#category : #'Famix-Java-Entities-Entities'
}

Expand Down
4 changes: 2 additions & 2 deletions src/Famix-Java-Entities/FamixJavaClass.class.st
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Class {
#name : #FamixJavaClass,
#superclass : #FamixJavaType,
#traits : 'FamixTClass + FamixTLCOMMetrics + FamixTWithExceptions',
#classTraits : 'FamixTClass classTrait + FamixTLCOMMetrics classTrait + FamixTWithExceptions classTrait',
#traits : 'FamixTCanBeAbstract + FamixTCanBeFinal + FamixTClass + FamixTHasVisibility + FamixTLCOMMetrics + FamixTWithExceptions',
#classTraits : 'FamixTCanBeAbstract classTrait + FamixTCanBeFinal classTrait + FamixTClass classTrait + FamixTHasVisibility classTrait + FamixTLCOMMetrics classTrait + FamixTWithExceptions classTrait',
#category : #'Famix-Java-Entities-Entities'
}

Expand Down
4 changes: 2 additions & 2 deletions src/Famix-Java-Entities/FamixJavaEnum.class.st
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Class {
#name : #FamixJavaEnum,
#superclass : #FamixJavaType,
#traits : 'FamixTEnum',
#classTraits : 'FamixTEnum classTrait',
#traits : 'FamixTEnum + FamixTHasVisibility + FamixTWithAttributes + FamixTWithMethods + FamixTWithInheritances',
#classTraits : 'FamixTEnum classTrait + FamixTHasVisibility classTrait',
#category : #'Famix-Java-Entities-Entities'
}

Expand Down
2 changes: 1 addition & 1 deletion src/Famix-Java-Entities/FamixJavaInvocation.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ FamixJavaInvocation >> getReceivingFAMIXClass [

{ #category : #printing }
FamixJavaInvocation >> gtDisplayOn: aStream [
self source ifNotNil: [ self source gtDisplayOn: aStream ].
self sender ifNotNil: [ self source gtDisplayOn: aStream ].
aStream nextPutAll: ' -> '.
self receiver ifNotNil: [ aStream nextPutAll: self receiver name ].
aStream nextPut: $#.
Expand Down
4 changes: 2 additions & 2 deletions src/Famix-Java-Entities/FamixJavaLocalVariable.class.st
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Class {
#name : #FamixJavaLocalVariable,
#superclass : #FamixJavaNamedEntity,
#traits : 'FamixTLocalVariable',
#classTraits : 'FamixTLocalVariable classTrait',
#traits : 'FamixTCanBeFinal + FamixTLocalVariable',
#classTraits : 'FamixTCanBeFinal classTrait + FamixTLocalVariable classTrait',
#category : #'Famix-Java-Entities-Entities'
}

Expand Down
20 changes: 11 additions & 9 deletions src/Famix-Java-Entities/FamixJavaMethod.class.st
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Class {
#name : #FamixJavaMethod,
#superclass : #FamixJavaContainerEntity,
#traits : 'FamixTMethod + FamixTWithCaughtExceptions + FamixTWithDeclaredExceptions + FamixTWithThrownExceptions',
#classTraits : 'FamixTMethod classTrait + FamixTWithCaughtExceptions classTrait + FamixTWithDeclaredExceptions classTrait + FamixTWithThrownExceptions classTrait',
#traits : 'FamixTCanBeAbstract + FamixTCanBeFinal + FamixTHasVisibility + FamixTMethod + FamixTWithCaughtExceptions + FamixTWithDeclaredExceptions + FamixTWithThrownExceptions',
#classTraits : 'FamixTCanBeAbstract classTrait + FamixTCanBeFinal classTrait + FamixTHasVisibility classTrait + FamixTMethod classTrait + FamixTWithCaughtExceptions classTrait + FamixTWithDeclaredExceptions classTrait + FamixTWithThrownExceptions classTrait',
#category : #'Famix-Java-Entities-Entities'
}

Expand Down Expand Up @@ -142,23 +142,25 @@ FamixJavaMethod >> isJUnit4Test [

{ #category : #testing }
FamixJavaMethod >> isOverriden [
"If we have a stub and we don't have the container, we can't have the information"

<FMProperty: #isOverriden type: #Boolean>
<derived>
<FMComment: 'The method is overrided in a sub class'>
"If we have a stub and we don't have the container, we can't have the information"
(self belongsTo isNil and: [ self isStub ]) ifTrue: [ ^ false ].

^ self belongsTo subclassHierarchyGroup anySatisfy: [ :each | each hasMethodWithSignature: self signature ]
(self parentType isNil and: [ self isStub ])
ifTrue: [ ^ false ].
^ self parentType subclassHierarchyGroup
anySatisfy: [ :each | each hasMethodWithSignature: self signature ]
]

{ #category : #testing }
FamixJavaMethod >> isOverriding [
<FMProperty: #isOverriding type: #Boolean>
<derived>
<FMComment: 'The method is overrinding a method defined in a super class'>

^self belongsTo directSuperclasses anySatisfy: [:each |
each isInterface not and: [each understands: self signature]]
^ self parentType directSuperclasses
anySatisfy:
[ :each | each isInterface not and: [ each understands: self signature ] ]
]

{ #category : #printing }
Expand Down
4 changes: 2 additions & 2 deletions src/Famix-Java-Entities/FamixJavaNamedEntity.class.st
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Class {
#name : #FamixJavaNamedEntity,
#superclass : #FamixJavaSourcedEntity,
#traits : 'FamixTHasModifiers + FamixTInvocationsReceiver + FamixTNamedEntity + FamixTPackageable + FamixTWithAnnotationInstances',
#classTraits : 'FamixTHasModifiers classTrait + FamixTInvocationsReceiver classTrait + FamixTNamedEntity classTrait + FamixTPackageable classTrait + FamixTWithAnnotationInstances classTrait',
#traits : 'FamixTInvocationsReceiver + FamixTNamedEntity + FamixTPackageable + FamixTWithAnnotationInstances',
#classTraits : 'FamixTInvocationsReceiver classTrait + FamixTNamedEntity classTrait + FamixTPackageable classTrait + FamixTWithAnnotationInstances classTrait',
#category : #'Famix-Java-Entities-Entities'
}

Expand Down
4 changes: 2 additions & 2 deletions src/Famix-Java-Entities/FamixJavaParameter.class.st
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Class {
#name : #FamixJavaParameter,
#superclass : #FamixJavaNamedEntity,
#traits : 'FamixTParameter',
#classTraits : 'FamixTParameter classTrait',
#traits : 'FamixTCanBeFinal + FamixTParameter',
#classTraits : 'FamixTCanBeFinal classTrait + FamixTParameter classTrait',
#category : #'Famix-Java-Entities-Entities'
}

Expand Down
15 changes: 14 additions & 1 deletion src/Famix-Java-Generator/FamixJavaGenerator.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ FamixJavaGenerator >> defineHierarchy [

annotationType --|> type.
annotationType --|> #TAnnotationType.
annotationType --|> #TWithAttributes.

annotationTypeAttribute --|> namedEntity.
annotationTypeAttribute --|> #TAnnotationTypeAttribute.
Expand All @@ -140,6 +141,7 @@ FamixJavaGenerator >> defineHierarchy [
attribute --|> namedEntity.
attribute --|> #TAttribute.
attribute --|> #TWithClassScope.
attribute --|> #TCanBeFinal.

file --|> namedEntity.
file --|> #TFile.
Expand All @@ -155,6 +157,9 @@ FamixJavaGenerator >> defineHierarchy [
method --|> #TWithThrownExceptions.
method --|> #TWithDeclaredExceptions.
method --|> #TWithCaughtExceptions.
method --|> #TCanBeAbstract.
method --|> #TCanBeFinal.
method --|> #THasVisibility.

caughtException --|> exception.
caughtException --|> #TCaughtException.
Expand All @@ -163,6 +168,9 @@ FamixJavaGenerator >> defineHierarchy [
class --|> #TWithExceptions.
class --|> #TClass.
class --|> #TLCOMMetrics.
class --|> #TCanBeAbstract.
class --|> #TCanBeFinal.
class --|> #THasVisibility.

containerEntity --|> namedEntity.
containerEntity --|> #TWithClasses.
Expand All @@ -174,6 +182,10 @@ FamixJavaGenerator >> defineHierarchy [

enum --|> type.
enum --|> #TEnum.
enum --|> #THasVisibility.
enum --|> #TWithAttributes.
enum --|> #TWithMethods.
enum --|> #TWithInheritances.

enumValue --|> namedEntity.
enumValue --|> #TStructuralEntity.
Expand All @@ -195,11 +207,11 @@ FamixJavaGenerator >> defineHierarchy [

localVariable --|> namedEntity.
localVariable --|> #TLocalVariable.
localVariable --|> #TCanBeFinal.

namedEntity --|> #TPackageable.
namedEntity --|> #TInvocationsReceiver.
namedEntity --|> #TWithAnnotationInstances.
namedEntity --|> #THasModifiers.

namespace --|> containerEntity.
namespace --|> #TNamespace.
Expand All @@ -211,6 +223,7 @@ FamixJavaGenerator >> defineHierarchy [

parameter --|> namedEntity.
parameter --|> #TParameter.
parameter --|> #TCanBeFinal.

parameterType --|> type.
parameterType --|> #TParameterType.
Expand Down
32 changes: 32 additions & 0 deletions src/Famix-Java-Tests/FamixJavaMethodTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,38 @@ FamixJavaMethodTest >> testIsStubWhenParentIsStub [
self assert: method isStub
]

{ #category : #tests }
FamixJavaMethodTest >> testOverride [
| overridenMethod c1 c2 package |
package := FamixJavaPackage new.
c1 := FamixJavaClass new
parentPackage: package;
yourself.
c2 := FamixJavaClass new
parentPackage: package;
yourself.
overridenMethod := FamixJavaMethod new
name: 'method';
signature: 'method()';
parentType: c1;
declaredType: c1;
parentPackage: package;
yourself.
method
name: 'method';
signature: 'method()';
parentType: c2;
declaredType: c2;
parentPackage: package.
c2
addSuperInheritance:
(FamixJavaInheritance new
subclass: c2;
superclass: c1).
self assert: method isOverriding.
self assert: overridenMethod isOverriden
]

{ #category : #tests }
FamixJavaMethodTest >> testSettingIsStub [
method isStub: true.
Expand Down
6 changes: 6 additions & 0 deletions src/Famix-Java-Visitor/FamixJavaAccess.extension.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Extension { #name : #FamixJavaAccess }

{ #category : #'*Famix-Java-Visitor-generated' }
FamixJavaAccess >> accept: aFamixJavaVisitor [
^ aFamixJavaVisitor visitAccess: self
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Extension { #name : #FamixJavaAnnotationInstance }

{ #category : #'*Famix-Java-Visitor-generated' }
FamixJavaAnnotationInstance >> accept: aFamixJavaVisitor [
^ aFamixJavaVisitor visitAnnotationInstance: self
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Extension { #name : #FamixJavaAnnotationInstanceAttribute }

{ #category : #'*Famix-Java-Visitor-generated' }
FamixJavaAnnotationInstanceAttribute >> accept: aFamixJavaVisitor [
^ aFamixJavaVisitor visitAnnotationInstanceAttribute: self
]
Loading

0 comments on commit 2103462

Please sign in to comment.