diff --git a/src/FamixJavaModelUpdater-Tests/FJMUModelUpdaterTest.class.st b/src/FamixJavaModelUpdater-Tests/FJMUModelUpdaterTest.class.st index 405b621..d910af3 100644 --- a/src/FamixJavaModelUpdater-Tests/FJMUModelUpdaterTest.class.st +++ b/src/FamixJavaModelUpdater-Tests/FJMUModelUpdaterTest.class.st @@ -191,7 +191,7 @@ FJMUModelUpdaterTest >> testVisitFASTJavaParameter [ { #category : 'tests' } FJMUModelUpdaterTest >> testVisitFASTJavaVariableDeclarator [ - | fasVariableDeclarator fastVarDeclStatement fastClassDeclaration fastJavaModel famixClass | + | fasVariableDeclarator fastVarDeclStatement fastClassDeclaration fastJavaModel famixClass annotationValue modifierPrivate | fastJavaModel := FASTJavaModel new. fastClassDeclaration := FASTJavaClassDeclaration new. fastVarDeclStatement := FASTJavaVarDeclStatement new. @@ -200,16 +200,28 @@ FJMUModelUpdaterTest >> testVisitFASTJavaVariableDeclarator [ famixClass := FamixJavaClass new. fastClassDeclaration famixTypeDefinition: famixClass. famixModel add: famixClass. + + annotationValue := FASTJavaAnnotation new + name: 'Value'; + elements: { (FASTJavaStringLiteral new primitiveValue: '${com.example}').}. + fastVarDeclStatement addModifier: annotationValue. + modifierPrivate := FASTJavaModifier new token: 'private'. + fastVarDeclStatement addModifier: modifierPrivate. + fasVariableDeclarator variable: (FASTJavaVariableExpression new name: 'variableName'; yourself). + fastVarDeclStatement addDeclarator: fasVariableDeclarator. fastJavaModel addAll: { fastClassDeclaration. fastVarDeclStatement. fasVariableDeclarator }. - fasVariableDeclarator accept: modelUpdater. + fastVarDeclStatement accept: modelUpdater. self assert: (famixModel allWithType: FamixJavaAttribute) size equals: 1. self assert: (famixModel allWithType: FamixJavaAttribute) anyOne name - equals: 'variableName' + equals: 'variableName'. + self + assert: (famixModel allWithType: FamixJavaAttribute) first isPrivate + equals: true. ] diff --git a/src/FamixJavaModelUpdater/FJMUModelUpdater.class.st b/src/FamixJavaModelUpdater/FJMUModelUpdater.class.st index 0ef8352..43fee0b 100644 --- a/src/FamixJavaModelUpdater/FJMUModelUpdater.class.st +++ b/src/FamixJavaModelUpdater/FJMUModelUpdater.class.st @@ -244,9 +244,13 @@ FJMUModelUpdater >> visitFASTJavaVariableDeclarator: aFASTJavaVariableDeclarator famixVariable name: aFASTJavaVariableDeclarator variable name. (aFASTJavaVariableDeclarator atScope: FASTJavaVarDeclStatement) anyOne modifiers do: [ :modifier | - modifier token = 'public' ifTrue: [ famixVariable isPublic: true ]. - modifier token = 'final' ifTrue: [ famixVariable isFinal: true ]. - modifier token = 'static' ifTrue: [ famixVariable isClassSide: true ] ]. + (modifier isKindOf: FASTJavaModifier) ifTrue: [ + modifier token = 'public' ifTrue: [ famixVariable isPublic: true ]. + modifier token = 'final' ifTrue: [ famixVariable isFinal: true ]. + modifier token = 'static' ifTrue: [ famixVariable isClassSide: true ]. + modifier token = 'private' ifTrue: [ famixVariable isPrivate: true ]. + ]. + ]. (aFASTJavaVariableDeclarator varDeclOwner type isKindOf: FASTJavaClassTypeExpression) ifTrue: [ (self retrieveClassFromModel: @@ -254,5 +258,5 @@ FJMUModelUpdater >> visitFASTJavaVariableDeclarator: aFASTJavaVariableDeclarator ifNotNil: [ :type | famixVariable declaredType: type ] ]. (scope isKindOf: FASTJavaMethodEntity) ifTrue: [ scope famixMethod addLocalVariable: famixVariable ] - ifFalse: [ scope famixTypeDefinition addAttribute: famixVariable ] + ifFalse: [ scope famixTypeDefinition addAttribute: famixVariable ]. ]