diff --git a/src/Famix-Deprecated/MoosePharoImporterTask.class.st b/src/Famix-Deprecated/MoosePharoImporterTask.class.st new file mode 100644 index 000000000..626592ca5 --- /dev/null +++ b/src/Famix-Deprecated/MoosePharoImporterTask.class.st @@ -0,0 +1,11 @@ +Class { + #name : #MoosePharoImporterTask, + #superclass : #FamixStPharoImporterTask, + #category : #'Famix-Deprecated' +} + +{ #category : #testing } +MoosePharoImporterTask class >> isDeprecated [ + + ^ true +] diff --git a/src/Famix-PharoSmalltalk-Tests/KGBForMetricsTestResource.class.st b/src/Famix-PharoSmalltalk-Tests/KGBForMetricsTestResource.class.st index 82c69d12d..7c75fe4b3 100644 --- a/src/Famix-PharoSmalltalk-Tests/KGBForMetricsTestResource.class.st +++ b/src/Famix-PharoSmalltalk-Tests/KGBForMetricsTestResource.class.st @@ -9,8 +9,8 @@ Class { { #category : #setup } KGBForMetricsTestResource >> importModel [ - MoosePharoImporterTask new - importerClass: SmalltalkImporter; + + FamixStPharoImporterTask new model: model; addFromPackageNamed: #'Moose-TestResources-KGB-P1FullReferencer'; addFromPackageNamed: #'Moose-TestResources-KGB-P2InteractedReferencerReferee'; diff --git a/src/Famix-PharoSmalltalk-Tests/LCOMTestResource.class.st b/src/Famix-PharoSmalltalk-Tests/LCOMTestResource.class.st index cf7c03dd4..9220fd2c5 100644 --- a/src/Famix-PharoSmalltalk-Tests/LCOMTestResource.class.st +++ b/src/Famix-PharoSmalltalk-Tests/LCOMTestResource.class.st @@ -9,8 +9,8 @@ Class { { #category : #setup } LCOMTestResource >> importModel [ - MoosePharoImporterTask new - importerClass: SmalltalkImporter; + + FamixStPharoImporterTask new model: model; addFromPackageNamed: #'Moose-TestResources-LCOM'; run diff --git a/src/Famix-PharoSmalltalk-Tests/PackageBlueprintTestResource.class.st b/src/Famix-PharoSmalltalk-Tests/PackageBlueprintTestResource.class.st index 55632bd30..a3a409820 100644 --- a/src/Famix-PharoSmalltalk-Tests/PackageBlueprintTestResource.class.st +++ b/src/Famix-PharoSmalltalk-Tests/PackageBlueprintTestResource.class.st @@ -9,8 +9,8 @@ Class { { #category : #setup } PackageBlueprintTestResource >> importModel [ - MoosePharoImporterTask new - importerClass: SmalltalkImporter; + + FamixStPharoImporterTask new model: model; addFromPackageNamed: #'Moose-TestResources-PackageBlueprint-P1'; addFromPackageNamed: #'Moose-TestResources-PackageBlueprint-P2'; diff --git a/src/Moose-Importers/MooseAbstractImporter.class.st b/src/Moose-Importers/MooseAbstractImporter.class.st deleted file mode 100644 index ab789ee25..000000000 --- a/src/Moose-Importers/MooseAbstractImporter.class.st +++ /dev/null @@ -1,104 +0,0 @@ -" -I'm the root for the new importer. -This way my subclasses share error logging and importerContext -" -Class { - #name : #MooseAbstractImporter, - #superclass : #MooseTask, - #instVars : [ - 'importingContext', - 'loggingStream', - 'targetModel' - ], - #category : #'Moose-Importers-Importers' -} - -{ #category : #public } -MooseAbstractImporter class >> run [ - ^ self new run -] - -{ #category : #public } -MooseAbstractImporter class >> targetModel: aMooseModel [ - "Create an instance of myself and assign the target model. This model is filled up during the import" - - ^ self new targetModel: aMooseModel; yourself -] - -{ #category : #'Moose deprecated' } -MooseAbstractImporter >> closeLog [ - Transcript == self errorLog ifFalse: [ self errorLog close ] -] - -{ #category : #accessing } -MooseAbstractImporter >> defaultImportingContext [ - ^ MooseImportingContext new importMaximum -] - -{ #category : #'Moose deprecated' } -MooseAbstractImporter >> errorLog [ - - ^ loggingStream -] - -{ #category : #'Moose deprecated' } -MooseAbstractImporter >> errorLog: aStream [ - - loggingStream := aStream - - -] - -{ #category : #'Moose deprecated' } -MooseAbstractImporter >> errorLogFileNamed: aString [ - - self errorLog: (FileSystem disk referenceTo: aString) writeStream -] - -{ #category : #accessing } -MooseAbstractImporter >> importingContext [ - ^ importingContext -] - -{ #category : #accessing } -MooseAbstractImporter >> importingContext: anObject [ - importingContext := anObject -] - -{ #category : #initialization } -MooseAbstractImporter >> initialize [ - super initialize. - targetModel := MooseModel new. - importingContext := self defaultImportingContext -] - -{ #category : #'Moose deprecated' } -MooseAbstractImporter >> logFileSuffix [ - - ^'.log' -] - -{ #category : #'Moose deprecated' } -MooseAbstractImporter >> logInitialize [ - - self errorLog: Transcript -] - -{ #category : #model } -MooseAbstractImporter >> targetModel [ - - ^targetModel -] - -{ #category : #model } -MooseAbstractImporter >> targetModel: anObject [ - - targetModel := anObject -] - -{ #category : #'Moose deprecated' } -MooseAbstractImporter >> writeLog: aString [ - self errorLog - nextPutAll: aString; - cr -] diff --git a/src/Moose-Importers/MooseFileStructureImporter.class.st b/src/Moose-Importers/MooseFileStructureImporter.class.st index 82ea57009..84c2a36a0 100644 --- a/src/Moose-Importers/MooseFileStructureImporter.class.st +++ b/src/Moose-Importers/MooseFileStructureImporter.class.st @@ -1,6 +1,9 @@ +" +I am an importer taking a model as parameter and creating a model of folders and files from a file reference given to me as parameter in this model. +" Class { #name : #MooseFileStructureImporter, - #superclass : #MooseAbstractImporter, + #superclass : #Object, #instVars : [ 'mooseModel', 'factory' diff --git a/src/Moose-SmalltalkImporter-Core-Tests/ClassesExtensionTestResource.class.st b/src/Moose-SmalltalkImporter-Core-Tests/ClassesExtensionTestResource.class.st index 8832dba34..1badce8f3 100644 --- a/src/Moose-SmalltalkImporter-Core-Tests/ClassesExtensionTestResource.class.st +++ b/src/Moose-SmalltalkImporter-Core-Tests/ClassesExtensionTestResource.class.st @@ -7,5 +7,5 @@ Class { { #category : #hook } ClassesExtensionTestResource >> importModel [ - SmalltalkImporter new model: model; addPackageNamed: 'ReferenceModel' ; run. + FamixStImporter new model: model; addPackageNamed: 'ReferenceModel' ; run. ] diff --git a/src/Moose-SmalltalkImporter-Core-Tests/FamixReferenceModelNamespaceMergingClassAndMetaclassTestResource.class.st b/src/Moose-SmalltalkImporter-Core-Tests/FamixReferenceModelNamespaceMergingClassAndMetaclassTestResource.class.st index b2e2b1dec..0c2c38f2b 100644 --- a/src/Moose-SmalltalkImporter-Core-Tests/FamixReferenceModelNamespaceMergingClassAndMetaclassTestResource.class.st +++ b/src/Moose-SmalltalkImporter-Core-Tests/FamixReferenceModelNamespaceMergingClassAndMetaclassTestResource.class.st @@ -8,11 +8,10 @@ Class { FamixReferenceModelNamespaceMergingClassAndMetaclassTestResource >> importModel [ | importer | - importer := MoosePharoImporterTask new. + importer := FamixStPharoImporterTask new. importer importingContext mergeClassAndMetaclass. - importer importerClass: SmalltalkImporter. - importer doNotRunCandidateOperator. importer + doNotRunCandidateOperator; model: model; addFromPackageNamed: #'Moose-TestResources-Reference-Core'; run diff --git a/src/Moose-SmalltalkImporter-Core-Tests/FamixReferenceModelNamespaceTestResource.class.st b/src/Moose-SmalltalkImporter-Core-Tests/FamixReferenceModelNamespaceTestResource.class.st index e6c04c8e7..7078fc9b6 100644 --- a/src/Moose-SmalltalkImporter-Core-Tests/FamixReferenceModelNamespaceTestResource.class.st +++ b/src/Moose-SmalltalkImporter-Core-Tests/FamixReferenceModelNamespaceTestResource.class.st @@ -7,13 +7,11 @@ Class { { #category : #setup } FamixReferenceModelNamespaceTestResource >> importModel [ - MoosePharoImporterTask new - importerClass: SmalltalkImporter; + FamixStPharoImporterTask new model: model; doNotRunCandidateOperator; addFromPackageNamed: #'Moose-TestResources-Reference-Core'; addFromPackageNamed: #'Moose-TestResources-Reference-PackageOne'; addFromPackageNamed: #'Moose-TestResources-Reference-PackageTwo'; - run; - yourself + run ] diff --git a/src/Moose-SmalltalkImporter-Core-Tests/MoosePharoImporterTaskTest.class.st b/src/Moose-SmalltalkImporter-Core-Tests/MoosePharoImporterTaskTest.class.st index 304e68dcc..2e20984ea 100644 --- a/src/Moose-SmalltalkImporter-Core-Tests/MoosePharoImporterTaskTest.class.st +++ b/src/Moose-SmalltalkImporter-Core-Tests/MoosePharoImporterTaskTest.class.st @@ -4,20 +4,15 @@ Class { #category : #'Moose-SmalltalkImporter-Core-Tests' } -{ #category : #tests } -MoosePharoImporterTaskTest >> testDefaultImporterClass [ - self assert: MoosePharoImporterTask new importerClass equals: SmalltalkImporter -] - { #category : #tests } MoosePharoImporterTaskTest >> testDefaultModel [ - self assert: (MoosePharoImporterTask new model isKindOf: MooseModel) + self assert: (FamixStPharoImporterTask new model isKindOf: MooseModel) ] { #category : #tests } MoosePharoImporterTaskTest >> testImportedModelHasSmalltalkMetamodel [ | model | - model := MoosePharoImporterTask new + model := FamixStPharoImporterTask new model: FamixStModel new; addFromPackageNamed: 'Moose-SmalltalkImporter-Core-Tests'; basicRun. diff --git a/src/Moose-SmalltalkImporter-Core-Tests/MooseScripts.class.st b/src/Moose-SmalltalkImporter-Core-Tests/MooseScripts.class.st index 59b32e5a3..222b996a9 100644 --- a/src/Moose-SmalltalkImporter-Core-Tests/MooseScripts.class.st +++ b/src/Moose-SmalltalkImporter-Core-Tests/MooseScripts.class.st @@ -15,7 +15,7 @@ MooseScripts class >> createLightModelForLAN [ | model | model := FamixStModel new. model name: 'lightLAN'. - MoosePharoImporterTask new + FamixStPharoImporterTask new importingContext: (MooseImportingContext new importClass; importMethod; @@ -43,7 +43,7 @@ MooseScripts class >> createLightModelForMorphic [ | model | model := FamixStModel new. model name: 'lightMorphic'. - MoosePharoImporterTask new + FamixStPharoImporterTask new importingContext: (MooseImportingContext new importClass; importMethod; @@ -73,7 +73,7 @@ MooseScripts class >> createLightModelForNetwork [ | model | model := FamixStModel new. model name: 'lightNetwork'. - MoosePharoImporterTask new + FamixStPharoImporterTask new importingContext: (MooseImportingContext new importClass; importMethod; @@ -102,7 +102,7 @@ MooseScripts class >> createLightModelForPharo [ | model | model := FamixStModel new. model name: 'lightPharo'. - MoosePharoImporterTask new + FamixStPharoImporterTask new importingContext: (MooseImportingContext new importClass; importMethod; @@ -128,7 +128,7 @@ MooseScripts class >> createMediumModelForNetwork [ | model importer | model := FamixStModel new. model name: 'mediumNetwork'. - importer := MoosePharoImporterTask new. + importer := FamixStPharoImporterTask new. importer importingContext mergeClassAndMetaclass. importer doNotRunCandidateOperator. importer model: model; addFromPackagesNamed: (self packageNamesFor: 'Network*'); runWithProgress. @@ -148,7 +148,7 @@ MooseScripts class >> createModelForMorphic [ | model importer | model := FamixStModel new. model name: 'Morphic'. - importer := MoosePharoImporterTask new. + importer := FamixStPharoImporterTask new. importer importingContext mergeClassAndMetaclass. importer runCandidateOperator. importer model: model; addFromPackagesNamed: (self packageNamesFor: 'Morphic*'); runWithProgress. @@ -171,7 +171,7 @@ MooseScripts class >> createModelForNetwork [ | model importer | model := FamixStModel new. model name: 'Network'. - importer := MoosePharoImporterTask new. + importer := FamixStPharoImporterTask new. importer importingContext mergeClassAndMetaclass. importer runCandidateOperator. importer model: model; addFromPackagesNamed: (self packageNamesFor: 'Network*') ; runWithProgress. @@ -185,7 +185,7 @@ MooseScripts class >> createModelForPharo [ | model importer | model := FamixStModel new. model name: 'Pharo'. - importer := MoosePharoImporterTask new. + importer := FamixStPharoImporterTask new. importer importingContext mergeClassAndMetaclass. importer runCandidateOperator. importer model: model; addFromPackagesNamed: self pharoPackageNames; runWithProgress. @@ -198,7 +198,7 @@ MooseScripts class >> createModelNamed: modelName with: aCollectionOfPackageName | model importer | model := FamixStModel new. model name: modelName. - importer := MoosePharoImporterTask new. + importer := FamixStPharoImporterTask new. importer importingContext mergeClassAndMetaclass. importer runCandidateOperator. importer model: model; addFromPackagesNamed: aCollectionOfPackageNames; runWithProgress. @@ -254,14 +254,13 @@ MooseScripts class >> packageNamesFor: aPrefixString withTestPackages: aBoolean self packageNamesFor: 'Network*' withTestPackages: false. self packageNamesFor: 'Network*' withTestPackages: true " - + | packages packageNames aTestPrefixString | - self packageOrganizer unregisterPackageNamed: aPrefixString. - packages := self packageOrganizer packages select: [:each | aPrefixString match: each name ]. - packageNames := packages collect: [:pak | pak name]. + packages := self packageOrganizer packages select: [ :each | aPrefixString match: each name ]. + packageNames := packages collect: [ :pak | pak name ]. aBoolean ifFalse: [ - aTestPrefixString := aPrefixString, 'Tests*'. - packageNames := packageNames reject: [ :pakName | aTestPrefixString match: pakName] ]. + aTestPrefixString := aPrefixString , 'Tests*'. + packageNames := packageNames reject: [ :pakName | aTestPrefixString match: pakName ] ]. ^ packageNames ] diff --git a/src/Moose-SmalltalkImporter-Core-Tests/MooseSmalltalkImporterFamixClassTest.class.st b/src/Moose-SmalltalkImporter-Core-Tests/MooseSmalltalkImporterFamixClassTest.class.st index 9176c1e19..11596079e 100644 --- a/src/Moose-SmalltalkImporter-Core-Tests/MooseSmalltalkImporterFamixClassTest.class.st +++ b/src/Moose-SmalltalkImporter-Core-Tests/MooseSmalltalkImporterFamixClassTest.class.st @@ -6,13 +6,12 @@ Class { { #category : #tests } MooseSmalltalkImporterFamixClassTest >> testIsTestCase [ + | mooseModel | mooseModel := FamixStModel new. - MoosePharoImporterTask new - importerClass: SmalltalkImporter; + FamixStPharoImporterTask new model: mooseModel; addClasses: (OrderedCollection with: self class); - run; - yourself. + run. self assert: (mooseModel allModelClasses select: #isInstanceSide) first isTestCase ] diff --git a/src/Moose-SmalltalkImporter-Core-Tests/MooseSmalltalkImporterRoelTyperTest.class.st b/src/Moose-SmalltalkImporter-Core-Tests/MooseSmalltalkImporterRoelTyperTest.class.st index 08a2801f1..aac09ae1f 100644 --- a/src/Moose-SmalltalkImporter-Core-Tests/MooseSmalltalkImporterRoelTyperTest.class.st +++ b/src/Moose-SmalltalkImporter-Core-Tests/MooseSmalltalkImporterRoelTyperTest.class.st @@ -9,7 +9,7 @@ MooseSmalltalkImporterRoelTyperTest >> testASTCore [ | model importer | model := FamixStModel new. self timeLimit: 60 seconds. - importer := MoosePharoImporterTask new. + importer := FamixStPharoImporterTask new. importer importingContext mergeClassAndMetaclass. "; computeTypeOfAttributes" importer runCandidateOperator. diff --git a/src/Moose-SmalltalkImporter-Core-Tests/MooseSmalltalkImporterSubclassesTest.class.st b/src/Moose-SmalltalkImporter-Core-Tests/MooseSmalltalkImporterSubclassesTest.class.st index 2d663146b..3a996193c 100644 --- a/src/Moose-SmalltalkImporter-Core-Tests/MooseSmalltalkImporterSubclassesTest.class.st +++ b/src/Moose-SmalltalkImporter-Core-Tests/MooseSmalltalkImporterSubclassesTest.class.st @@ -30,17 +30,18 @@ MooseSmalltalkImporterSubclassesTest >> pharoImporterTask: anObject [ { #category : #running } MooseSmalltalkImporterSubclassesTest >> setUp [ + super setUp. - model := FamixStModel new. + model := FamixStModel new. model name: 'Test'. - pharoImporterTask := MoosePharoImporterTask new - importerClass: SmalltalkImporter; - doNotRunCandidateOperator; - importingContext: (MooseImportingContext new - importPackage; - importInheritance; - importAccess; - mergeClassAndMetaclass ; yourself). + pharoImporterTask := FamixStPharoImporterTask new + doNotRunCandidateOperator; + importingContext: (MooseImportingContext new + importPackage; + importInheritance; + importAccess; + mergeClassAndMetaclass; + yourself) ] { #category : #tests } diff --git a/src/Moose-SmalltalkImporter-KGB-Tests/FamixStNavigationTestResource.class.st b/src/Moose-SmalltalkImporter-KGB-Tests/FamixStNavigationTestResource.class.st index c51954029..adab53075 100644 --- a/src/Moose-SmalltalkImporter-KGB-Tests/FamixStNavigationTestResource.class.st +++ b/src/Moose-SmalltalkImporter-KGB-Tests/FamixStNavigationTestResource.class.st @@ -17,41 +17,22 @@ FamixStNavigationTestResource >> getMethod: methodNameString from: aFAMIXClass [ FamixStNavigationTestResource >> importModel [ | importer classes namespaces | - classes := #( #( #M1P1C1FullReferencerOutSide - #M1P2C2ReferencerOutSideRefereeInSide - #M1P2C3ReferencerInSideRefereeOutSide - #M1P2C4FullRefereeInSide #M1P3C5ReferencerInSideRefereeInSide - #M1P3C6FullReferencerInSideOutSide - #M1P3C7FullRefereeInSide #M1P3C8FullReferencerInSide ) - #( #M2P4C9FullRefereeInSide #M2P4C10FullReferencerInSide - #M2P5C11FullRefereeOutSide - #M2P6C12FullReferencerInSide - #M2P6C13FullRefereeInSideOutSide ) - #( #M3P7C14ReferencerOutSideRefereeOutSide ) - #( #M4P8C15FullReferencerOutSide ) - #( #M5P9C16FullReferencerOutSideInSide - #M5P10C17FullReferencerInSide - #M5P10C18FullRefereeInSideOutSide ) - #( #M6P11C19FullRefereeOutSide - #M6P12C20FullReferencerOutSide ) - #( #M7P13C21FullReferencerOutSide - #M7P14C22FullRefereeOutSide ) ). + classes := #( #( #M1P1C1FullReferencerOutSide #M1P2C2ReferencerOutSideRefereeInSide #M1P2C3ReferencerInSideRefereeOutSide #M1P2C4FullRefereeInSide + #M1P3C5ReferencerInSideRefereeInSide #M1P3C6FullReferencerInSideOutSide #M1P3C7FullRefereeInSide #M1P3C8FullReferencerInSide ) + #( #M2P4C9FullRefereeInSide #M2P4C10FullReferencerInSide #M2P5C11FullRefereeOutSide #M2P6C12FullReferencerInSide #M2P6C13FullRefereeInSideOutSide ) + #( #M3P7C14ReferencerOutSideRefereeOutSide ) #( #M4P8C15FullReferencerOutSide ) #( #M5P9C16FullReferencerOutSideInSide + #M5P10C17FullReferencerInSide #M5P10C18FullRefereeInSideOutSide ) + #( #M6P11C19FullRefereeOutSide #M6P12C20FullReferencerOutSide ) #( #M7P13C21FullReferencerOutSide #M7P14C22FullRefereeOutSide ) ). - importer := MoosePharoImporterTask new. + importer := FamixStPharoImporterTask new. importer model: model. - namespaces := #( 'Model1InteractedReferencerReferee' - 'Model2FullReferee' 'Model3ReferencerReferee' - 'Model4FullReferencer' 'Model5InteractedReferencer' - 'Model6InteractedReferee' 'Model7FullInteracted' ) - collect: [ :each | - importer factory namespace new name: each ]. + namespaces := #( 'Model1InteractedReferencerReferee' 'Model2FullReferee' 'Model3ReferencerReferee' 'Model4FullReferencer' 'Model5InteractedReferencer' + 'Model6InteractedReferee' 'Model7FullInteracted' ) collect: [ :each | importer factory namespace new name: each ]. importer importingContext mergeClassAndMetaclass. importer candidateClass: CandidateListOperator. - importer importerClass: SmalltalkImporter. importer - addFromPackagesMatching: [ :p | - 'Moose-TestResources-KGB-*' match: p name ]; + addFromPackagesMatching: [ :p | 'Moose-TestResources-KGB-*' match: p name ]; run. model addAll: namespaces. diff --git a/src/Moose-SmalltalkImporter-LAN-Tests/FamixStepwiseImporterTest.class.st b/src/Moose-SmalltalkImporter-LAN-Tests/FamixStepwiseImporterTest.class.st index 6f32b8ea6..49e0c1ec1 100644 --- a/src/Moose-SmalltalkImporter-LAN-Tests/FamixStepwiseImporterTest.class.st +++ b/src/Moose-SmalltalkImporter-LAN-Tests/FamixStepwiseImporterTest.class.st @@ -14,7 +14,7 @@ FamixStepwiseImporterTest >> defaultTimeLimit [ { #category : #'instance creation' } FamixStepwiseImporterTest >> newImportClassesTask [ - ^ MooseImportClassesTask new + ^ FamixStImportClassesTask new factory: FamixStModel factory; yourself ] @@ -24,8 +24,7 @@ FamixStepwiseImporterTest >> testCheckFormalParameterIsCreated [ | mseFormalParameter model | model := FamixStModel new. - MoosePharoImporterTask new - importerClass: SmalltalkImporter; + FamixStPharoImporterTask new importingContext: (MooseImportingContext new importImplicitVariable; importAccess; @@ -44,8 +43,7 @@ FamixStepwiseImporterTest >> testCheckSelfIsCreated [ | model mseSelf | model := FamixStModel new. - MoosePharoImporterTask new - importerClass: SmalltalkImporter; + FamixStPharoImporterTask new importingContext: (MooseImportingContext new importImplicitVariable; importAccess; @@ -64,7 +62,6 @@ FamixStepwiseImporterTest >> testImportAttribute [ | importTask importer nodeClass | importTask := self newImportClassesTask. - importTask importerClass: SmalltalkImporter. importTask importingContext: (MooseImportingContext new importClass; importAttribute; @@ -83,7 +80,6 @@ FamixStepwiseImporterTest >> testImportAttributeAccesses [ | importTask importer nodeClass attr | importTask := self newImportClassesTask. - importTask importerClass: SmalltalkImporter. importTask importingContext: (MooseImportingContext new importClass; importAttribute; @@ -104,7 +100,6 @@ FamixStepwiseImporterTest >> testImportClassAndAttributeAndMergeItsMetaclass [ | importTask importer nodeClass | importTask := self newImportClassesTask. - importTask importerClass: SmalltalkImporter. importTask importingContext: (MooseImportingContext new importClass; importAttribute; @@ -121,7 +116,6 @@ FamixStepwiseImporterTest >> testImportClassAndInheritance [ | importTask importer importedClasses | importTask := self newImportClassesTask. - importTask importerClass: SmalltalkImporter. importTask importingContext: (MooseImportingContext new importClass; importInheritance; @@ -140,7 +134,6 @@ FamixStepwiseImporterTest >> testImportClassAndMethodAndMergeItsMetaclass [ | importTask importer importedMethods | importTask := self newImportClassesTask. - importTask importerClass: SmalltalkImporter. importTask importingContext: (MooseImportingContext new importClass; importMethod; @@ -158,8 +151,7 @@ FamixStepwiseImporterTest >> testImportLANPackage [ | model class package | model := FamixStModel new. - MoosePharoImporterTask new - importerClass: SmalltalkImporter; + FamixStPharoImporterTask new doNotRunCandidateOperator; importingContext: (MooseImportingContext new importClass; @@ -180,7 +172,6 @@ FamixStepwiseImporterTest >> testImportMergingMetaclassDoesNotDuplicateComment [ | importTask importer comments | importTask := self newImportClassesTask. - importTask importerClass: SmalltalkImporter. importTask importingContext: (MooseImportingContext new importClass; importComment; @@ -189,13 +180,10 @@ FamixStepwiseImporterTest >> testImportMergingMetaclassDoesNotDuplicateComment [ importTask addClass: LANInterface. importer := importTask run. - comments := importer allElements select: [ :e | - e class = FamixStComment ]. + comments := importer allElements select: [ :e | e class = FamixStComment ]. self assert: comments size equals: 1. - self - assert: comments anyOne commentedEntity - equals: (importer classes at: LANInterface) + self assert: comments anyOne commentedEntity equals: (importer classes at: LANInterface) ] { #category : #tests } @@ -212,7 +200,6 @@ FamixStepwiseImporterTest >> testImportMethodBody [ yourself. self assert: context shouldImportMethodBody. importTask importingContext: context. - importTask importerClass: SmalltalkImporter. self assert: context shouldImportMethod. importTask addClass: LANNode. importer := importTask run. @@ -237,8 +224,7 @@ FamixStepwiseImporterTest >> testImportNamespace [ | model nap | model := FamixStModel new. - MoosePharoImporterTask new - importerClass: SmalltalkImporter; + FamixStPharoImporterTask new doNotRunCandidateOperator; importingContext: (MooseImportingContext new importNamespace; @@ -258,7 +244,6 @@ FamixStepwiseImporterTest >> testImportOneClassAndItsMetaclass [ | importTask importer importedClasses | importTask := self newImportClassesTask. - importTask importerClass: SmalltalkImporter. importTask importingContext: MooseImportingContext new importClass. importTask addClass: LANNode. self assert: importTask classes size equals: 1. @@ -273,7 +258,6 @@ FamixStepwiseImporterTest >> testImportOneClassAndMergeItsMetaclass [ | importTask importer importedClasses | importTask := self newImportClassesTask. - importTask importerClass: SmalltalkImporter. importTask importingContext: (MooseImportingContext new importClass; mergeClassAndMetaclass; @@ -283,8 +267,7 @@ FamixStepwiseImporterTest >> testImportOneClassAndMergeItsMetaclass [ importer := importTask run. importedClasses := importer classes. self assert: importedClasses values asSet size equals: 3. - self assert: - ((importedClasses at: LANNode) usesFamixTrait: FamixTClass) + self assert: ((importedClasses at: LANNode) usesFamixTrait: FamixTClass) ] { #category : #tests } @@ -292,7 +275,6 @@ FamixStepwiseImporterTest >> testImportOneClassAndMethodAndMergeItsMetaclass [ | importTask importer importedMethods | importTask := self newImportClassesTask. - importTask importerClass: SmalltalkImporter. importTask importingContext: (MooseImportingContext new importClass; importMethod; @@ -310,7 +292,6 @@ FamixStepwiseImporterTest >> testImportOneClassAndOneAttributeAndMergeItsMetacla | importTask importer nodeClass | importTask := self newImportClassesTask. - importTask importerClass: SmalltalkImporter. importTask importingContext: (MooseImportingContext new importClass; importAttribute; @@ -327,7 +308,6 @@ FamixStepwiseImporterTest >> testImportWithoutMergingMetaclassDoesDuplicateComme | importTask importer comments | importTask := self newImportClassesTask. - importTask importerClass: SmalltalkImporter. importTask importingContext: (MooseImportingContext new importClass; importComment; @@ -336,13 +316,9 @@ FamixStepwiseImporterTest >> testImportWithoutMergingMetaclassDoesDuplicateComme importTask addClass: LANInterface. importer := importTask run. - comments := importer allElements select: [ :e | - e class = FamixStComment ]. + comments := importer allElements select: [ :e | e class = FamixStComment ]. self assert: comments size equals: 2. - self - assertCollection: - (comments collect: [ :comment | comment commentedEntity ]) - hasSameElements: { - (importer classes at: LANInterface). - (importer classes at: LANInterface class) } + self assertCollection: (comments collect: [ :comment | comment commentedEntity ]) hasSameElements: { + (importer classes at: LANInterface). + (importer classes at: LANInterface class) } ] diff --git a/src/Moose-SmalltalkImporter-LAN-Tests/ImportStubMethodSpecialTest.class.st b/src/Moose-SmalltalkImporter-LAN-Tests/ImportStubMethodSpecialTest.class.st index ea654fa72..e7f9ebf47 100644 --- a/src/Moose-SmalltalkImporter-LAN-Tests/ImportStubMethodSpecialTest.class.st +++ b/src/Moose-SmalltalkImporter-LAN-Tests/ImportStubMethodSpecialTest.class.st @@ -12,13 +12,13 @@ Class { { #category : #running } ImportStubMethodSpecialTest >> setUp [ + | importingTask | super setUp. - importingTask := MoosePharoImporterTask new - importerClass: SmalltalkImporter; - model: FamixStModel new; - addFromPackageNamed: #'Moose-TestResources-LAN'; - yourself. + importingTask := FamixStPharoImporterTask new + model: FamixStModel new; + addFromPackageNamed: #'Moose-TestResources-LAN'; + yourself. importingTask importingContext importSmalltalkStubMethod. importingTask run. model := importingTask model diff --git a/src/Moose-SmalltalkImporter-LAN-Tests/LANPackageTestResource.class.st b/src/Moose-SmalltalkImporter-LAN-Tests/LANPackageTestResource.class.st index 1e6d3e896..5e3b0edcf 100644 --- a/src/Moose-SmalltalkImporter-LAN-Tests/LANPackageTestResource.class.st +++ b/src/Moose-SmalltalkImporter-LAN-Tests/LANPackageTestResource.class.st @@ -6,8 +6,8 @@ Class { { #category : #hook } LANPackageTestResource >> importModel [ - MoosePharoImporterTask new - importerClass: SmalltalkImporter; + + FamixStPharoImporterTask new model: model; addFromPackageNamed: #'Moose-TestResources-LAN'; run diff --git a/src/Moose-SmalltalkImporter-LAN-Tests/LANSmalltalkAccessTest.class.st b/src/Moose-SmalltalkImporter-LAN-Tests/LANSmalltalkAccessTest.class.st index 11fcbaa52..ec6ba9241 100644 --- a/src/Moose-SmalltalkImporter-LAN-Tests/LANSmalltalkAccessTest.class.st +++ b/src/Moose-SmalltalkImporter-LAN-Tests/LANSmalltalkAccessTest.class.st @@ -10,12 +10,10 @@ LANSmalltalkAccessTest >> testWhenDistinguishingClassAndMetaclassAccessWorks [ | model | model := FamixStModel new. - MoosePharoImporterTask new - importerClass: SmalltalkImporter; + FamixStPharoImporterTask new model: model; addFromPackageNamed: #'Moose-TestResources-LAN'; - run; - yourself. + run. self assert: (model entityNamed: LANNode mooseName) smalltalkClass equals: LANNode. self assert: (model entityNamed: LANNode class mooseName) smalltalkClass equals: LANNode class. self assert: (model entityNamed: LANNode mooseName) isInstanceSide. @@ -34,8 +32,7 @@ LANSmalltalkAccessTest >> testWhenMergingClassAndMetaclassAccessWorks [ | model importer | model := FamixStModel new. - importer := MoosePharoImporterTask new. - importer importerClass: SmalltalkImporter. + importer := FamixStPharoImporterTask new. importer importingContext mergeClassAndMetaclass. importer model: model. importer addFromPackageNamed: #'Moose-TestResources-LAN'. diff --git a/src/Moose-SmalltalkImporter-LAN-Tests/MooseMorphicTestResource.class.st b/src/Moose-SmalltalkImporter-LAN-Tests/MooseMorphicTestResource.class.st index 6619870d5..3c1d516b6 100644 --- a/src/Moose-SmalltalkImporter-LAN-Tests/MooseMorphicTestResource.class.st +++ b/src/Moose-SmalltalkImporter-LAN-Tests/MooseMorphicTestResource.class.st @@ -7,7 +7,7 @@ Class { { #category : #setup } MooseMorphicTestResource >> importModel [ | importer | - importer := MoosePharoImporterTask new. + importer := FamixStPharoImporterTask new. importer importingContext mergeClassAndMetaclass. importer runCandidateOperator; diff --git a/src/Moose-SmalltalkImporter-LAN-Tests/MoosePharoImporterTaskOnLANTest.class.st b/src/Moose-SmalltalkImporter-LAN-Tests/MoosePharoImporterTaskOnLANTest.class.st index 18de2f4b0..7c2bea840 100644 --- a/src/Moose-SmalltalkImporter-LAN-Tests/MoosePharoImporterTaskOnLANTest.class.st +++ b/src/Moose-SmalltalkImporter-LAN-Tests/MoosePharoImporterTaskOnLANTest.class.st @@ -14,20 +14,20 @@ MoosePharoImporterTaskOnLANTest >> numberOfClassesIn: packageNames [ { #category : #'testing collecting classes' } MoosePharoImporterTaskOnLANTest >> testFromPackageNamed [ - self assert: ((MoosePharoImporterTask new addFromPackageNamed: #'Moose-TestResources-LAN') allClasses includes: LANNode) + self assert: ((FamixStPharoImporterTask new addFromPackageNamed: #'Moose-TestResources-LAN') classes includes: LANNode) ] { #category : #'testing collecting classes' } MoosePharoImporterTaskOnLANTest >> testFromPackagesMatching [ - self assert: ((MoosePharoImporterTask new addFromPackagesMatching: [ :each | each name = #'Moose-TestResources-LAN' ]) allClasses includes: LANNode) + self assert: ((FamixStPharoImporterTask new addFromPackagesMatching: [ :each | each name = #'Moose-TestResources-LAN' ]) classes includes: LANNode) ] { #category : #'testing collecting classes' } MoosePharoImporterTaskOnLANTest >> testFromPackagesMatching2 [ self - assert: (MoosePharoImporterTask new addFromPackagesMatching: [ :each | 'Moose-TestResources-LA*' match: each name asString ]) allClasses size + assert: (FamixStPharoImporterTask new addFromPackagesMatching: [ :each | 'Moose-TestResources-LA*' match: each name asString ]) classes size equals: (self numberOfClassesIn: #( 'Moose-TestResources-LA*' )) ] @@ -35,7 +35,7 @@ MoosePharoImporterTaskOnLANTest >> testFromPackagesMatching2 [ MoosePharoImporterTaskOnLANTest >> testImportClassUsingAddCategory [ | model | - MoosePharoImporterTask new + FamixStPharoImporterTask new model: (model := FamixStModel new); importingContext: MooseImportingContext new importClass; addFromPackage: (self packageOrganizer packageNamed: #'Moose-TestResources-LAN'); @@ -47,7 +47,7 @@ MoosePharoImporterTaskOnLANTest >> testImportClassUsingAddCategory [ MoosePharoImporterTaskOnLANTest >> testImportClassUsingAddClass [ | model | - MoosePharoImporterTask new + FamixStPharoImporterTask new model: (model := FamixStModel new); importingContext: MooseImportingContext new importClass; addClass: LANNode; @@ -59,7 +59,7 @@ MoosePharoImporterTaskOnLANTest >> testImportClassUsingAddClass [ MoosePharoImporterTaskOnLANTest >> testImportClassUsingAddPackage [ | model | - MoosePharoImporterTask new + FamixStPharoImporterTask new model: (model := FamixStModel new); importingContext: MooseImportingContext new importClass; addFromPackage: (self packageOrganizer packageNamed: #'Moose-TestResources-LAN'); @@ -71,7 +71,7 @@ MoosePharoImporterTaskOnLANTest >> testImportClassUsingAddPackage [ MoosePharoImporterTaskOnLANTest >> testImportClassUsingAddPackageNamed [ | model | - MoosePharoImporterTask new + FamixStPharoImporterTask new model: (model := FamixStModel new); importingContext: MooseImportingContext new importClass; addFromPackageNamed: 'Moose-TestResources-LAN'; diff --git a/src/Moose-SmalltalkImporter/AbstractCandidateListOperator.class.st b/src/Moose-SmalltalkImporter/AbstractCandidateListOperator.class.st index c8b4d89b6..98ccf229b 100644 --- a/src/Moose-SmalltalkImporter/AbstractCandidateListOperator.class.st +++ b/src/Moose-SmalltalkImporter/AbstractCandidateListOperator.class.st @@ -5,7 +5,7 @@ Class { 'groups', 'importer' ], - #category : #'Moose-SmalltalkImporter' + #category : #'Moose-SmalltalkImporter-Operators' } { #category : #'as yet unclassified' } diff --git a/src/Moose-SmalltalkImporter/CandidateListOperator.class.st b/src/Moose-SmalltalkImporter/CandidateListOperator.class.st index aa3fa5282..8cf5b874e 100644 --- a/src/Moose-SmalltalkImporter/CandidateListOperator.class.st +++ b/src/Moose-SmalltalkImporter/CandidateListOperator.class.st @@ -8,7 +8,7 @@ a CandidateListOperator compute a list of possible type for a FamixInvocation's Class { #name : #CandidateListOperator, #superclass : #AbstractCandidateListOperator, - #category : #'Moose-SmalltalkImporter' + #category : #'Moose-SmalltalkImporter-Operators' } { #category : #running } diff --git a/src/Moose-SmalltalkImporter/CandidateListOperatorAcceptingAnyKindOfReceiver.class.st b/src/Moose-SmalltalkImporter/CandidateListOperatorAcceptingAnyKindOfReceiver.class.st index 6d2e30b5f..7d08ed8cd 100644 --- a/src/Moose-SmalltalkImporter/CandidateListOperatorAcceptingAnyKindOfReceiver.class.st +++ b/src/Moose-SmalltalkImporter/CandidateListOperatorAcceptingAnyKindOfReceiver.class.st @@ -11,7 +11,7 @@ should normally accept any kind of receiver, but all type are not yet supported Class { #name : #CandidateListOperatorAcceptingAnyKindOfReceiver, #superclass : #AbstractCandidateListOperator, - #category : #'Moose-SmalltalkImporter' + #category : #'Moose-SmalltalkImporter-Operators' } { #category : #running } diff --git a/src/Moose-SmalltalkImporter/CandidateListOperatorAcceptingBasicAndVariableReceivers.class.st b/src/Moose-SmalltalkImporter/CandidateListOperatorAcceptingBasicAndVariableReceivers.class.st index 20250d8bd..e1942f7c7 100644 --- a/src/Moose-SmalltalkImporter/CandidateListOperatorAcceptingBasicAndVariableReceivers.class.st +++ b/src/Moose-SmalltalkImporter/CandidateListOperatorAcceptingBasicAndVariableReceivers.class.st @@ -11,7 +11,7 @@ a CandidateListOperatorAcceptingBasicAndVariableReceivers compute a list of pos Class { #name : #CandidateListOperatorAcceptingBasicAndVariableReceivers, #superclass : #AbstractCandidateListOperator, - #category : #'Moose-SmalltalkImporter' + #category : #'Moose-SmalltalkImporter-Operators' } { #category : #running } diff --git a/src/Moose-SmalltalkImporter/CandidateListOperatorAcceptingSimpleKindsOfReceiver.class.st b/src/Moose-SmalltalkImporter/CandidateListOperatorAcceptingSimpleKindsOfReceiver.class.st index 5293fb269..2a2e831f3 100644 --- a/src/Moose-SmalltalkImporter/CandidateListOperatorAcceptingSimpleKindsOfReceiver.class.st +++ b/src/Moose-SmalltalkImporter/CandidateListOperatorAcceptingSimpleKindsOfReceiver.class.st @@ -8,7 +8,7 @@ a CandidateListOperatorAcceptingSimpleKindsOfReceiver compute a list of possible Class { #name : #CandidateListOperatorAcceptingSimpleKindsOfReceiver, #superclass : #AbstractCandidateListOperator, - #category : #'Moose-SmalltalkImporter' + #category : #'Moose-SmalltalkImporter-Operators' } { #category : #running } diff --git a/src/Moose-SmalltalkImporter/CandidateListOperatorNotAcceptingAnyReceiver.class.st b/src/Moose-SmalltalkImporter/CandidateListOperatorNotAcceptingAnyReceiver.class.st index fed99d7a9..86b95a78d 100644 --- a/src/Moose-SmalltalkImporter/CandidateListOperatorNotAcceptingAnyReceiver.class.st +++ b/src/Moose-SmalltalkImporter/CandidateListOperatorNotAcceptingAnyReceiver.class.st @@ -4,7 +4,7 @@ a CandidateListOperatorNotAcceptingAnyReceiver doesn't compute any possible type Class { #name : #CandidateListOperatorNotAcceptingAnyReceiver, #superclass : #AbstractCandidateListOperator, - #category : #'Moose-SmalltalkImporter' + #category : #'Moose-SmalltalkImporter-Operators' } { #category : #running } diff --git a/src/Moose-SmalltalkImporter/FamixStAbstractImporter.class.st b/src/Moose-SmalltalkImporter/FamixStAbstractImporter.class.st new file mode 100644 index 000000000..e12f7c8c2 --- /dev/null +++ b/src/Moose-SmalltalkImporter/FamixStAbstractImporter.class.st @@ -0,0 +1,50 @@ +" +I'm the root for the new importer. +This way my subclasses share error logging and importerContext +" +Class { + #name : #FamixStAbstractImporter, + #superclass : #MooseTask, + #instVars : [ + 'importingContext', + 'factory' + ], + #category : #'Moose-SmalltalkImporter-Importers' +} + +{ #category : #public } +FamixStAbstractImporter class >> run [ + ^ self new run +] + +{ #category : #accessing } +FamixStAbstractImporter >> defaultImportingContext [ + ^ MooseImportingContext new importMaximum +] + +{ #category : #accessing } +FamixStAbstractImporter >> factory [ + + ^ factory +] + +{ #category : #accessing } +FamixStAbstractImporter >> factory: anObject [ + factory := anObject +] + +{ #category : #accessing } +FamixStAbstractImporter >> importingContext [ + ^ importingContext +] + +{ #category : #accessing } +FamixStAbstractImporter >> importingContext: anObject [ + importingContext := anObject +] + +{ #category : #initialization } +FamixStAbstractImporter >> initialize [ + super initialize. + importingContext := self defaultImportingContext +] diff --git a/src/Moose-SmalltalkImporter/MooseImportClassesTask.class.st b/src/Moose-SmalltalkImporter/FamixStImportClassesTask.class.st similarity index 66% rename from src/Moose-SmalltalkImporter/MooseImportClassesTask.class.st rename to src/Moose-SmalltalkImporter/FamixStImportClassesTask.class.st index aa6c80d11..2b2db9aa6 100644 --- a/src/Moose-SmalltalkImporter/MooseImportClassesTask.class.st +++ b/src/Moose-SmalltalkImporter/FamixStImportClassesTask.class.st @@ -10,80 +10,80 @@ is trigged by the MooseCompositeImporterTask and implemented by InstallElementsO " Class { - #name : #MooseImportClassesTask, - #superclass : #MooseImportingTask, + #name : #FamixStImportClassesTask, + #superclass : #FamixStAbstractImporter, #instVars : [ 'classes', 'classExtensions' ], - #category : #'Moose-SmalltalkImporter' + #category : #'Moose-SmalltalkImporter-Importers' } { #category : #adding } -MooseImportClassesTask >> addAll: classCollection [ +FamixStImportClassesTask >> addAll: classCollection [ ^classCollection do: [:each | self addClass: each] ] { #category : #adding } -MooseImportClassesTask >> addAllExtensions: extCollection [ +FamixStImportClassesTask >> addAllExtensions: extCollection [ ^extCollection do: [:each | self addClassExtension: each] ] { #category : #adding } -MooseImportClassesTask >> addClass: aClass [ +FamixStImportClassesTask >> addClass: aClass [ ^classes add: aClass ] { #category : #adding } -MooseImportClassesTask >> addClassExtension: aClassExtension [ +FamixStImportClassesTask >> addClassExtension: aClassExtension [ ^classExtensions add: aClassExtension ] { #category : #running } -MooseImportClassesTask >> basicRun [ +FamixStImportClassesTask >> basicRun [ + | importer | - importer := importerClass new importingContext: importingContext. + importer := FamixStImporter new importingContext: importingContext. importer factory: self factory. - self classes - do: [ :class | - importer importClass: class. - self increment ]. + self classes do: [ :class | + importer importClass: class. + self increment ]. self classExtensions do: [ :ext | importer importClassExtension: ext ]. ^ importer ] { #category : #accessing } -MooseImportClassesTask >> classExtensions [ +FamixStImportClassesTask >> classExtensions [ ^classExtensions ] { #category : #accessing } -MooseImportClassesTask >> classes [ +FamixStImportClassesTask >> classes [ ^classes ] { #category : #accessing } -MooseImportClassesTask >> description [ +FamixStImportClassesTask >> description [ ^'Importing <1p> classes from Smalltalk' expandMacrosWith: self classes size ] { #category : #initialization } -MooseImportClassesTask >> initialize [ +FamixStImportClassesTask >> initialize [ super initialize. classes := IdentitySet new. classExtensions := IdentitySet new. ] { #category : #accessing } -MooseImportClassesTask >> length [ +FamixStImportClassesTask >> length [ ^self classes size ] diff --git a/src/Moose-SmalltalkImporter/SmalltalkImporter.class.st b/src/Moose-SmalltalkImporter/FamixStImporter.class.st similarity index 84% rename from src/Moose-SmalltalkImporter/SmalltalkImporter.class.st rename to src/Moose-SmalltalkImporter/FamixStImporter.class.st index a0d91ea6d..83cbcdee4 100644 --- a/src/Moose-SmalltalkImporter/SmalltalkImporter.class.st +++ b/src/Moose-SmalltalkImporter/FamixStImporter.class.st @@ -3,8 +3,8 @@ I'm responsible for creating Famix model out of Smalltalk code. I'm mainly invoked by the MooseImportClassesTask " Class { - #name : #SmalltalkImporter, - #superclass : #MooseAbstractImporter, + #name : #FamixStImporter, + #superclass : #FamixStAbstractImporter, #instVars : [ 'methods', 'classes', @@ -14,32 +14,31 @@ Class { 'scopes', 'others', 'implicitVariables', - 'annotationTypes', - 'factory' + 'annotationTypes' ], - #category : #'Moose-SmalltalkImporter' + #category : #'Moose-SmalltalkImporter-Importers' } { #category : #constant } -SmalltalkImporter class >> CIVString [ +FamixStImporter class >> CIVString [ ^ 'CIV#' ] { #category : #'private accessing' } -SmalltalkImporter >> CIVString [ +FamixStImporter >> CIVString [ ^ self class CIVString ] { #category : #'private accessing' } -SmalltalkImporter >> addEntity: value [ +FamixStImporter >> addEntity: value [ ^others add: value ] { #category : #enumerating } -SmalltalkImporter >> allElements [ +FamixStImporter >> allElements [ | stream | stream := (OrderedCollection new: self size) writeStream. @@ -54,13 +53,13 @@ SmalltalkImporter >> allElements [ ] { #category : #'private utils' } -SmalltalkImporter >> allImplementorsOf: aSignature [ +FamixStImporter >> allImplementorsOf: aSignature [ ^(SystemNavigation default allImplementorsOf: (aSignature copyUpTo: $( ) asSymbol) collect: #compiledMethod ] { #category : #'private-entity-creation' } -SmalltalkImporter >> basicClassCreation: aClass [ +FamixStImporter >> basicClassCreation: aClass [ | class anchor | class := classes at: aClass put: self factory classEntity new. @@ -78,7 +77,7 @@ SmalltalkImporter >> basicClassCreation: aClass [ ] { #category : #'private-entity-creation' } -SmalltalkImporter >> basicCreateMethod: aSelector withSignature: aSignature [ +FamixStImporter >> basicCreateMethod: aSelector withSignature: aSignature [ | method | method := self factory method new. method name: aSelector. @@ -90,18 +89,18 @@ SmalltalkImporter >> basicCreateMethod: aSelector withSignature: aSignature [ ] { #category : #'private utils' } -SmalltalkImporter >> checkAbstractClass: class [ +FamixStImporter >> checkAbstractClass: class [ class isAbstract: (class methods contains: [ :each | each isAbstract ]) ] { #category : #'private accessing' } -SmalltalkImporter >> classes [ +FamixStImporter >> classes [ ^ classes ] { #category : #'private-entity-creation' } -SmalltalkImporter >> createAnnotationType: aPragmaNode [ +FamixStImporter >> createAnnotationType: aPragmaNode [ | pragmaAnnotationType | pragmaAnnotationType := annotationTypes at: aPragmaNode selector @@ -119,7 +118,7 @@ SmalltalkImporter >> createAnnotationType: aPragmaNode [ ] { #category : #'private-entity-creation' } -SmalltalkImporter >> createAttribute: name for: aClass [ +FamixStImporter >> createAttribute: name for: aClass [ | attribute realName possibleTypes | realName := self nameForInstanceVariable: name class: aClass. attribute := (self scopeOfClass: aClass) @@ -143,7 +142,7 @@ SmalltalkImporter >> createAttribute: name for: aClass [ ] { #category : #'private-entity-creation' } -SmalltalkImporter >> createClass: aClass [ +FamixStImporter >> createClass: aClass [ | class inheritance | class := (importingContext shouldMergeClassAndMetaclass and: [ @@ -196,7 +195,7 @@ SmalltalkImporter >> createClass: aClass [ ] { #category : #'private-entity-creation' } -SmalltalkImporter >> createClassVarAttribute: name for: aClass [ +FamixStImporter >> createClassVarAttribute: name for: aClass [ "a classVar always belongs to the base class" | attribute | @@ -212,7 +211,7 @@ SmalltalkImporter >> createClassVarAttribute: name for: aClass [ ] { #category : #'private-entity-creation' } -SmalltalkImporter >> createGlobalVariable: name value: value [ +FamixStImporter >> createGlobalVariable: name value: value [ | global | global := globals @@ -224,7 +223,7 @@ SmalltalkImporter >> createGlobalVariable: name value: value [ ] { #category : #'private-entity-creation' } -SmalltalkImporter >> createMethod: aCompiledMethod [ +FamixStImporter >> createMethod: aCompiledMethod [ | method anchor | method := self createStubMethod: aCompiledMethod. @@ -242,7 +241,7 @@ SmalltalkImporter >> createMethod: aCompiledMethod [ ] { #category : #'private-entity-creation' } -SmalltalkImporter >> createNamespace: aNamespace [ +FamixStImporter >> createNamespace: aNamespace [ | namespace | namespace := namespaces @@ -253,7 +252,7 @@ SmalltalkImporter >> createNamespace: aNamespace [ ] { #category : #'private-entity-creation' } -SmalltalkImporter >> createPackage: aPackageModel [ +FamixStImporter >> createPackage: aPackageModel [ | package | package := packages @@ -265,7 +264,7 @@ SmalltalkImporter >> createPackage: aPackageModel [ ] { #category : #'private-entity-creation' } -SmalltalkImporter >> createSpecialVariable: name forClass: aClass [ +FamixStImporter >> createSpecialVariable: name forClass: aClass [ | attribute | attribute := (self scopeOfClass: aClass) at: name bind: self factory implicitVariable new. @@ -275,7 +274,7 @@ SmalltalkImporter >> createSpecialVariable: name forClass: aClass [ ] { #category : #'private-entity-creation' } -SmalltalkImporter >> createSpecialVariable: name forFamixMethod: aFamixMethod [ +FamixStImporter >> createSpecialVariable: name forFamixMethod: aFamixMethod [ | attribute | attribute := "(self scopeOfClass: aClass) at: name bind:" self factory implicitVariable new. @@ -285,7 +284,7 @@ SmalltalkImporter >> createSpecialVariable: name forFamixMethod: aFamixMethod [ ] { #category : #'private-entity-creation' } -SmalltalkImporter >> createStubMethod: aCompiledMethod [ +FamixStImporter >> createStubMethod: aCompiledMethod [ "private-entity-creation" "same as #createMethod but does not import body" @@ -309,7 +308,7 @@ SmalltalkImporter >> createStubMethod: aCompiledMethod [ ] { #category : #'private-entity-creation' } -SmalltalkImporter >> createUnknownVariable: name [ +FamixStImporter >> createUnknownVariable: name [ | unknown | unknown := globals @@ -320,7 +319,7 @@ SmalltalkImporter >> createUnknownVariable: name [ ] { #category : #enumerating } -SmalltalkImporter >> do: aBlock [ +FamixStImporter >> do: aBlock [ others do: aBlock. methods do: aBlock. @@ -343,7 +342,7 @@ SmalltalkImporter >> do: aBlock [ ] { #category : #'public-entity-creation' } -SmalltalkImporter >> ensureAnnotationType: aPragmaNode [ +FamixStImporter >> ensureAnnotationType: aPragmaNode [ ^annotationTypes at: aPragmaNode selector @@ -351,7 +350,7 @@ SmalltalkImporter >> ensureAnnotationType: aPragmaNode [ ] { #category : #'public-entity-creation' } -SmalltalkImporter >> ensureAttribute: name for: aClass [ +FamixStImporter >> ensureAttribute: name for: aClass [ ^(self scopeOfClass: aClass) at: (self nameForInstanceVariable: name class: aClass) @@ -359,7 +358,7 @@ SmalltalkImporter >> ensureAttribute: name for: aClass [ ] { #category : #'public-entity-creation' } -SmalltalkImporter >> ensureClass: aClass [ +FamixStImporter >> ensureClass: aClass [ "aClass is aSmalltalk. This method returns a FamixStClass" @@ -367,7 +366,7 @@ SmalltalkImporter >> ensureClass: aClass [ ] { #category : #'public-entity-creation' } -SmalltalkImporter >> ensureClassVarAttribute: name for: aClass [ +FamixStImporter >> ensureClassVarAttribute: name for: aClass [ ^(self scopeOfClass: aClass) @@ -379,7 +378,7 @@ SmalltalkImporter >> ensureClassVarAttribute: name for: aClass [ ] { #category : #'public-entity-creation' } -SmalltalkImporter >> ensureGlobalVariable: name value: value [ +FamixStImporter >> ensureGlobalVariable: name value: value [ ^globals at: name @@ -387,7 +386,7 @@ SmalltalkImporter >> ensureGlobalVariable: name value: value [ ] { #category : #'public-entity-creation' } -SmalltalkImporter >> ensureImplicitVariable: name inClass: aClass [ +FamixStImporter >> ensureImplicitVariable: name inClass: aClass [ ^(self scopeOfClass: aClass) at: name @@ -398,7 +397,7 @@ SmalltalkImporter >> ensureImplicitVariable: name inClass: aClass [ ] { #category : #'public-entity-creation' } -SmalltalkImporter >> ensureImplicitVariable: name inFamixMethod: aFAMIXMethod [ +FamixStImporter >> ensureImplicitVariable: name inFamixMethod: aFAMIXMethod [ "^ others detect: [:aFamixEntity | aFamixEntity mooseName = (aFAMIXMethod mooseName,'.',name) asSymbol @@ -412,7 +411,7 @@ SmalltalkImporter >> ensureImplicitVariable: name inFamixMethod: aFAMIXMethod [ ] { #category : #'public-entity-creation' } -SmalltalkImporter >> ensureMethod: aCompiledMethod [ +FamixStImporter >> ensureMethod: aCompiledMethod [ ^methods at: aCompiledMethod @@ -420,12 +419,12 @@ SmalltalkImporter >> ensureMethod: aCompiledMethod [ ] { #category : #'public-entity-creation' } -SmalltalkImporter >> ensureNamespace: aNamespace [ +FamixStImporter >> ensureNamespace: aNamespace [ ^ namespaces at: aNamespace asString asSymbol ifAbsent: [ self createNamespace: aNamespace ] ] { #category : #'public-entity-creation' } -SmalltalkImporter >> ensurePackage: aPackageModel [ +FamixStImporter >> ensurePackage: aPackageModel [ ^packages at: aPackageModel @@ -433,7 +432,7 @@ SmalltalkImporter >> ensurePackage: aPackageModel [ ] { #category : #'public-entity-creation' } -SmalltalkImporter >> ensureSmalltalkStubMethod: aCompiledMethod [ +FamixStImporter >> ensureSmalltalkStubMethod: aCompiledMethod [ ^ methods at: aCompiledMethod @@ -441,7 +440,7 @@ SmalltalkImporter >> ensureSmalltalkStubMethod: aCompiledMethod [ ] { #category : #'public-entity-creation' } -SmalltalkImporter >> ensureSmalltalkStubMethodsFor: aSignature [ +FamixStImporter >> ensureSmalltalkStubMethodsFor: aSignature [ | implementors | importingContext shouldImportSmalltalkStubMethod ifFalse: [ ^ #( ) ]. @@ -455,7 +454,7 @@ SmalltalkImporter >> ensureSmalltalkStubMethodsFor: aSignature [ ] { #category : #'public-entity-creation' } -SmalltalkImporter >> ensureUnknownVariable: name [ +FamixStImporter >> ensureUnknownVariable: name [ ^globals at: name @@ -463,25 +462,14 @@ SmalltalkImporter >> ensureUnknownVariable: name [ ] { #category : #accessing } -SmalltalkImporter >> factory [ - - ^ factory -] - -{ #category : #accessing } -SmalltalkImporter >> factory: anObject [ - factory := anObject -] - -{ #category : #accessing } -SmalltalkImporter >> famixClasses [ +FamixStImporter >> famixClasses [ "I return the Famix classes created by this importer. These classes might merge Smalltalk classes and metaclasses." ^ classes values asSet ] { #category : #importing } -SmalltalkImporter >> importClass: aClass [ +FamixStImporter >> importClass: aClass [ | class | importingContext shouldImportClass ifFalse: [ ^ self ]. @@ -505,7 +493,7 @@ SmalltalkImporter >> importClass: aClass [ ] { #category : #importing } -SmalltalkImporter >> importClassExtension: aClassExtension [ +FamixStImporter >> importClassExtension: aClassExtension [ | method | importingContext shouldImportClassExtension ifFalse: [ ^ self ]. @@ -517,7 +505,7 @@ SmalltalkImporter >> importClassExtension: aClassExtension [ ] { #category : #initialization } -SmalltalkImporter >> initialize [ +FamixStImporter >> initialize [ super initialize. methods := IdentityDictionary new. classes := IdentityDictionary new. @@ -531,13 +519,13 @@ SmalltalkImporter >> initialize [ ] { #category : #'private accessing' } -SmalltalkImporter >> methods [ +FamixStImporter >> methods [ ^ methods ] { #category : #'private utils' } -SmalltalkImporter >> nameForInstanceVariable: name class: aClass [ +FamixStImporter >> nameForInstanceVariable: name class: aClass [ (importingContext shouldMergeClassAndMetaclass) and: [aClass isMeta ifTrue: [ ^ self CIVString, name]]. @@ -547,13 +535,13 @@ SmalltalkImporter >> nameForInstanceVariable: name class: aClass [ ] { #category : #'private-entity-creation' } -SmalltalkImporter >> scopeOfClass: aClass [ +FamixStImporter >> scopeOfClass: aClass [ aClass ifNil: [ ^ nil ]. ^ scopes at: aClass ifAbsentPut: [ SmalltalkScope extend: (self scopeOfClass: aClass superclass) ] ] { #category : #accessing } -SmalltalkImporter >> size [ +FamixStImporter >> size [ ^(scopes sumNumbers: #size) + others size + methods size + self famixClasses size + packages size + namespaces size + globals size diff --git a/src/Moose-SmalltalkImporter/FamixStPharoImporterTask.class.st b/src/Moose-SmalltalkImporter/FamixStPharoImporterTask.class.st new file mode 100644 index 000000000..35b306e8f --- /dev/null +++ b/src/Moose-SmalltalkImporter/FamixStPharoImporterTask.class.st @@ -0,0 +1,215 @@ +" +This class specifies that the Smalltalk classes are identified using packages +" +Class { + #name : #FamixStPharoImporterTask, + #superclass : #FamixStAbstractImporter, + #instVars : [ + 'classes', + 'packages', + 'classExtensions', + 'runSelector', + 'candidateClass', + 'candidateOperator', + 'model' + ], + #category : #'Moose-SmalltalkImporter-Importers' +} + +{ #category : #adding } +FamixStPharoImporterTask >> addClass: aClass [ + classes add: aClass +] + +{ #category : #adding } +FamixStPharoImporterTask >> addClassExtensions: col [ + classExtensions addAll: col +] + +{ #category : #adding } +FamixStPharoImporterTask >> addClasses: col [ + classes addAll: col +] + +{ #category : #adding } +FamixStPharoImporterTask >> addFromPackage: aRPackage [ + + "late-bound cache initialization for classes" + self addClasses: aRPackage definedClasses. + self addClassExtensions: aRPackage extensionMethods + +] + +{ #category : #adding } +FamixStPharoImporterTask >> addFromPackageNamed: aPackageName [ + + self addFromPackage: (self packageOrganizer packageNamed: aPackageName asSymbol) +] + +{ #category : #adding } +FamixStPharoImporterTask >> addFromPackagesMatching: aBlock [ + + self packageOrganizer packages do: [:each | + (aBlock value: each) ifTrue: [self addFromPackage: each]] +] + +{ #category : #adding } +FamixStPharoImporterTask >> addFromPackagesNamed: aCollection [ + + aCollection do: [:each| self addFromPackageNamed: each] +] + +{ #category : #running } +FamixStPharoImporterTask >> basicRun [ + + | importerTask importer | + "importerTask applies an import filter definition (context) on a set of classes (allClasses) and yields elements" + importerTask := FamixStImportClassesTask new. + importerTask factory: self factory. + importerTask importingContext: importingContext. + importerTask addAll: self classes. + importerTask addAllExtensions: self classExtensions. + importer := importerTask runSelector: runSelector. + "InstallElementsOperator populates a Moose model with (unary) elements" + (InstallElementsOperator with: importer on: self model) runSelector: runSelector. + "CandidateListOperator populates a Moose model with (binary) element relations like: methodA invokes methodB" + candidateOperator ifTrue: [ (self candidateClass runOn: self model importer: importer) runSelector: runSelector ]. + self model sourceLanguage: importer factory sourceLanguage new. + ^ self model +] + +{ #category : #'protected hooks' } +FamixStPharoImporterTask >> candidateClass [ + + ^ candidateClass ifNil: [ candidateClass := CandidateListOperator ] +] + +{ #category : #'protected hooks' } +FamixStPharoImporterTask >> candidateClass: anObject [ + "Normally you should not invoke such method. Use run and doNotRunCandidateOperator instead" + + candidateClass := anObject +] + +{ #category : #accessing } +FamixStPharoImporterTask >> classExtensions [ + ^classExtensions +] + +{ #category : #accessing } +FamixStPharoImporterTask >> classes [ + ^classes +] + +{ #category : #initialization } +FamixStPharoImporterTask >> defaultImportingContext [ + "does not import stub methods by default because it can create a lot of methods" + | context | + context := super defaultImportingContext. + context entityKindsToBeExtracted remove: (context class importingSmalltalkStubMethod). + ^context +] + +{ #category : #accessing } +FamixStPharoImporterTask >> description [ + + ^ 'Importing <1p> packages from Smalltalk' expandMacrosWith: self packages size +] + +{ #category : #setting } +FamixStPharoImporterTask >> doNotRunCandidateOperator [ + + candidateOperator := false +] + +{ #category : #accessing } +FamixStPharoImporterTask >> factory [ + ^ super factory ifNil: [ factory := self model factory ] +] + +{ #category : #initialization } +FamixStPharoImporterTask >> initialize [ + + super initialize. + candidateOperator := true. + runSelector := #run. + classes := OrderedCollection new. + classExtensions := OrderedCollection new. + packages := OrderedCollection new. +] + +{ #category : #accessing } +FamixStPharoImporterTask >> length [ + + ^0 "dummy value since we are a task holder" +] + +{ #category : #accessing } +FamixStPharoImporterTask >> model [ + + ^model ifNil: [model := MooseModel new name: self modelName; yourself] +] + +{ #category : #accessing } +FamixStPharoImporterTask >> model: mooseModel [ + + model := mooseModel +] + +{ #category : #accessing } +FamixStPharoImporterTask >> modelName [ + + ^'<1s> package<2#:s>' + expandMacrosWith: self packagesString + with: self packages size +] + +{ #category : #accessing } +FamixStPharoImporterTask >> packages [ + ^packages +] + +{ #category : #accessing } +FamixStPharoImporterTask >> packagesString [ + + | stream | + stream := String new writeStream. + (self packages asOrderedCollection sorted: [:a :b | a name < b name]) + do: [:each | stream print: each] + separatedBy: + [stream + nextPut: $,; + space]. + ^stream contents +] + +{ #category : #setting } +FamixStPharoImporterTask >> runCandidateOperator [ + + candidateOperator := true +] + +{ #category : #running } +FamixStPharoImporterTask >> runWithProgress [ + + self withProgress. + self run. +] + +{ #category : #running } +FamixStPharoImporterTask >> updateModelName [ + + self model name: self modelName +] + +{ #category : #running } +FamixStPharoImporterTask >> withProgress [ + + runSelector := #runWithProgress +] + +{ #category : #running } +FamixStPharoImporterTask >> withoutProgress [ + + runSelector := #run +] diff --git a/src/Moose-SmalltalkImporter/MooseCompositeImporterTask.class.st b/src/Moose-SmalltalkImporter/MooseCompositeImporterTask.class.st deleted file mode 100644 index eb9e6e879..000000000 --- a/src/Moose-SmalltalkImporter/MooseCompositeImporterTask.class.st +++ /dev/null @@ -1,137 +0,0 @@ -" -A MooseCompositeImporterTask is an abstract class which defines the logical steps and the glue between these steps to import entities from a specification (list of packages, classes or categories). - -MooseCompositeImporterTask collects Smalltalk classes, ask the MooseImportClassesTask to create entities and the InstallElementsOperator to populate the moose model. The MooseImportClassesTask will then pass entities to the InstallElementsOperator which will populate the model. - -My subclasses specify specific way to identify the Smalltalk classes that should be represented in a model. -" -Class { - #name : #MooseCompositeImporterTask, - #superclass : #MooseImportingTask, - #instVars : [ - 'model', - 'candidateOperator', - 'candidateClass', - 'runSelector' - ], - #category : #'Moose-SmalltalkImporter' -} - -{ #category : #accessing } -MooseCompositeImporterTask >> allClassExtensions [ - - ^self subclassResponsibility -] - -{ #category : #accessing } -MooseCompositeImporterTask >> allClasses [ - - ^self subclassResponsibility -] - -{ #category : #running } -MooseCompositeImporterTask >> basicRun [ - | importerTask importer | - "importerTask applies an import filter definition (context) on a set of classes (allClasses) and yields elements" - importerTask := MooseImportClassesTask new importerClass: importerClass. - importerTask factory: self factory. - importerTask importingContext: importingContext. - importerTask addAll: self allClasses. - importerTask addAllExtensions: self allClassExtensions. - importer := importerTask runSelector: runSelector. - "InstallElementsOperator populates a Moose model with (unary) elements" - (InstallElementsOperator with: importer on: self model) runSelector: runSelector. - "CandidateListOperator populates a Moose model with (binary) element relations like: methodA invokes methodB" - candidateOperator ifTrue: [ (self candidateClass runOn: self model importer: importer) runSelector: runSelector ]. - self model sourceLanguage: importer factory sourceLanguage new. - ^ self model -] - -{ #category : #'protected hooks' } -MooseCompositeImporterTask >> candidateClass [ - candidateClass ifNil: [ candidateClass := CandidateListOperator ]. - ^ candidateClass -] - -{ #category : #'protected hooks' } -MooseCompositeImporterTask >> candidateClass: anObject [ - "Normally you should not invoke such method. Use run and doNotRunCandidateOperator instead" - - candidateClass := anObject -] - -{ #category : #setting } -MooseCompositeImporterTask >> doNotRunCandidateOperator [ - - candidateOperator := false -] - -{ #category : #accessing } -MooseCompositeImporterTask >> factory [ - ^ super factory ifNil: [ factory := self model factory ] -] - -{ #category : #initialization } -MooseCompositeImporterTask >> initialize [ - - super initialize. - candidateOperator := true. - runSelector := #run. - "PackageOrganizerCache refreshSystemCache." -] - -{ #category : #accessing } -MooseCompositeImporterTask >> length [ - - ^0 "dummy value since we are a task holder" -] - -{ #category : #accessing } -MooseCompositeImporterTask >> model [ - - ^model ifNil: [model := MooseModel new name: self modelName; yourself] -] - -{ #category : #accessing } -MooseCompositeImporterTask >> model: mooseModel [ - - model := mooseModel -] - -{ #category : #accessing } -MooseCompositeImporterTask >> modelName [ - "should return a string describing the model based on the imported entities" - - ^self subclassResponsibility -] - -{ #category : #setting } -MooseCompositeImporterTask >> runCandidateOperator [ - - candidateOperator := true -] - -{ #category : #running } -MooseCompositeImporterTask >> runWithProgress [ - - self withProgress. - self run. -] - -{ #category : #running } -MooseCompositeImporterTask >> updateModelName [ - - self model name: self modelName -] - -{ #category : #running } -MooseCompositeImporterTask >> withProgress [ - - runSelector := #runWithProgress -] - -{ #category : #running } -MooseCompositeImporterTask >> withoutProgress [ - - runSelector := #run -] diff --git a/src/Moose-Importers/MooseImportingContext.class.st b/src/Moose-SmalltalkImporter/MooseImportingContext.class.st similarity index 99% rename from src/Moose-Importers/MooseImportingContext.class.st rename to src/Moose-SmalltalkImporter/MooseImportingContext.class.st index 8305e4d54..c40287718 100644 --- a/src/Moose-Importers/MooseImportingContext.class.st +++ b/src/Moose-SmalltalkImporter/MooseImportingContext.class.st @@ -30,7 +30,7 @@ Class { #classInstVars : [ 'entityDependencies' ], - #category : #'Moose-Importers-Contexts' + #category : #'Moose-SmalltalkImporter' } { #category : #initialize } diff --git a/src/Moose-SmalltalkImporter/MooseImportingTask.class.st b/src/Moose-SmalltalkImporter/MooseImportingTask.class.st deleted file mode 100644 index 7d2f2c19c..000000000 --- a/src/Moose-SmalltalkImporter/MooseImportingTask.class.st +++ /dev/null @@ -1,51 +0,0 @@ -" -MooseImportingTask defines tasks whose goal is to populate models. - -Instance Variables: - importingContext - importerClass -" -Class { - #name : #MooseImportingTask, - #superclass : #MooseAbstractImporter, - #instVars : [ - 'importerClass', - 'factory' - ], - #category : #'Moose-SmalltalkImporter' -} - -{ #category : #accessing } -MooseImportingTask >> defaultImporterClass [ - "By default the class responsible for the extraction of model from Smalltalk code is SmalltalkImporter." - ^ SmalltalkImporter -] - -{ #category : #accessing } -MooseImportingTask >> factory [ - ^ factory -] - -{ #category : #accessing } -MooseImportingTask >> factory: anObject [ - factory := anObject -] - -{ #category : #accessing } -MooseImportingTask >> importerClass [ - ^ importerClass -] - -{ #category : #accessing } -MooseImportingTask >> importerClass: anObject [ - "to specify the importer to be used. Normally you do not have to use this method. - Only FAMIX20/FAMIX30 code should do that" - - importerClass := anObject -] - -{ #category : #initialization } -MooseImportingTask >> initialize [ - super initialize. - importerClass := self defaultImporterClass -] diff --git a/src/Moose-SmalltalkImporter/MoosePharoImporterTask.class.st b/src/Moose-SmalltalkImporter/MoosePharoImporterTask.class.st deleted file mode 100644 index ddfff1c32..000000000 --- a/src/Moose-SmalltalkImporter/MoosePharoImporterTask.class.st +++ /dev/null @@ -1,141 +0,0 @@ -" -This class specifies that the Smalltalk classes are identified using packages. - - - -Implementation notes. - - Should check packageFrom: because it may be useless and has to be fixed anyway - packageFrom: and namesString do not have a sender. -> get rid of them -" -Class { - #name : #MoosePharoImporterTask, - #superclass : #MooseCompositeImporterTask, - #instVars : [ - 'classes', - 'packages', - 'classExtensions' - ], - #category : #'Moose-SmalltalkImporter' -} - -{ #category : #adding } -MoosePharoImporterTask >> addClass: aClass [ - classes add: aClass -] - -{ #category : #adding } -MoosePharoImporterTask >> addClassExtensions: col [ - classExtensions addAll: col -] - -{ #category : #adding } -MoosePharoImporterTask >> addClasses: col [ - classes addAll: col -] - -{ #category : #adding } -MoosePharoImporterTask >> addFromPackage: aRPackage [ - - "late-bound cache initialization for classes" - self addClasses: aRPackage definedClasses. - self addClassExtensions: aRPackage extensionMethods - -] - -{ #category : #adding } -MoosePharoImporterTask >> addFromPackageNamed: aPackageName [ - - self addFromPackage: (self packageOrganizer packageNamed: aPackageName asSymbol) -] - -{ #category : #adding } -MoosePharoImporterTask >> addFromPackagesMatching: aBlock [ - - self packageOrganizer packages do: [:each | - (aBlock value: each) ifTrue: [self addFromPackage: each]] -] - -{ #category : #adding } -MoosePharoImporterTask >> addFromPackagesNamed: aCollection [ - - aCollection do: [:each| self addFromPackageNamed: each] -] - -{ #category : #accessing } -MoosePharoImporterTask >> allClassExtensions [ - ^classExtensions -] - -{ #category : #accessing } -MoosePharoImporterTask >> allClasses [ - ^classes -] - -{ #category : #enumerating } -MoosePharoImporterTask >> allClassesDo: aBlock [ - classes do: aBlock -] - -{ #category : #enumerating } -MoosePharoImporterTask >> allPackagesDo: aBlock [ - packages do: aBlock -] - -{ #category : #accessing } -MoosePharoImporterTask >> classes [ - ^classes -] - -{ #category : #initialization } -MoosePharoImporterTask >> defaultImportingContext [ - "does not import stub methods by default because it can create a lot of methods" - | context | - context := super defaultImportingContext. - context entityKindsToBeExtracted remove: (context class importingSmalltalkStubMethod). - ^context -] - -{ #category : #accessing } -MoosePharoImporterTask >> description [ - - ^'Importing <1p> packages from Smalltalk' - expandMacrosWith: self packages size - -] - -{ #category : #initialization } -MoosePharoImporterTask >> initialize [ - - super initialize. - classes := OrderedCollection new. - classExtensions := OrderedCollection new. - packages := OrderedCollection new. -] - -{ #category : #accessing } -MoosePharoImporterTask >> modelName [ - - ^'<1s> package<2#:s>' - expandMacrosWith: self packagesString - with: self packages size -] - -{ #category : #accessing } -MoosePharoImporterTask >> packages [ - ^packages -] - -{ #category : #accessing } -MoosePharoImporterTask >> packagesString [ - - | stream | - stream := String new writeStream. - (self packages asOrderedCollection sorted: [:a :b | a name < b name]) - do: [:each | stream print: each] - separatedBy: - [stream - nextPut: $,; - space]. - ^stream contents -] diff --git a/src/Moose-SmalltalkImporter/SmalltalkMethodVisitor.class.st b/src/Moose-SmalltalkImporter/SmalltalkMethodVisitor.class.st index 83d376f25..31c37a460 100644 --- a/src/Moose-SmalltalkImporter/SmalltalkMethodVisitor.class.st +++ b/src/Moose-SmalltalkImporter/SmalltalkMethodVisitor.class.st @@ -6,7 +6,7 @@ Class { { #category : #private } SmalltalkMethodVisitor >> CIVString [ - ^ SmalltalkImporter CIVString + ^ FamixStImporter CIVString ] { #category : #private }