Skip to content

Commit

Permalink
Merge pull request #76 from moosetechnology/export-refactoring
Browse files Browse the repository at this point in the history
Refactoring in FMModel export
  • Loading branch information
ClotildeToullec committed May 14, 2024
2 parents 311c421 + 1d7ba56 commit 62b9248
Show file tree
Hide file tree
Showing 6 changed files with 322 additions and 293 deletions.
5 changes: 3 additions & 2 deletions src/Fame-Core/FMModel.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,10 @@ Class {

{ #category : #'instance creation' }
FMModel class >> withMetamodel: aMetamodel [

^ self new
metamodel: aMetamodel;
yourself
metamodel: aMetamodel;
yourself
]

{ #category : #visiting }
Expand Down
56 changes: 40 additions & 16 deletions src/Fame-ImportExport/FMModel.extension.st
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,50 @@ Extension { #name : #FMModel }

{ #category : #'*Fame-ImportExport' }
FMModel >> exportJsonString [
| printer |
printer := FMJSONPrinter onString.
self exportWithPrinter: printer.
^ printer stream contents

^ String streamContents: [ :stream |
self exportWithPrinter: (FMJSONPrinter on: stream) ]
]

{ #category : #'*Fame-ImportExport' }
FMModel >> exportOn: aStream [
self exportOn: aStream usingPrinter: FMMSEPrinter
FMModel >> exportMSEString [

^ String streamContents: [ :stream | self exportToMSEStream: stream ]
]

{ #category : #'*Fame-ImportExport' }
FMModel >> exportOn: aStream usingPrinter: aPrinter [
self exportWithPrinter: (aPrinter on: aStream)
FMModel >> exportOn: aStream [

self
deprecated:
'Please specify the format you want to export to. Default is MSE. JSON is also available.'
transformWith: '`@receiver exportOn: `@stream'
-> '`@receiver exportToMSEStream: `@stream'.

self exportToMSEStream: aStream
]

{ #category : #'*Fame-ImportExport' }
FMModel >> exportString [
| printer |
printer := FMMSEPrinter onString.
self exportWithPrinter: printer.
^ printer stream contents

self
deprecated:
'Please specify the format you want to export to. Default is MSE. JSON is also available.'
transformWith:
'`@receiver exportString' -> '`@receiver exportMSEString'.

^ self exportMSEString
]

{ #category : #'*Fame-ImportExport' }
FMModel >> exportToMSEStream: aStream [

self exportWithPrinter: (FMMSEPrinter on: aStream)
]

{ #category : #'*Fame-ImportExport' }
FMModel >> exportWithPrinter: aParseClient [

FMModelExporter new
model: self;
printer: aParseClient;
Expand All @@ -36,20 +54,23 @@ FMModel >> exportWithPrinter: aParseClient [

{ #category : #'*Fame-ImportExport' }
FMModel class >> fromJSONString: aString [

^ self new
importJSONString: aString;
yourself
importJSONString: aString;
yourself
]

{ #category : #'*Fame-ImportExport' }
FMModel class >> fromString: aString [

^ self new
importString: aString;
yourself
importString: aString;
yourself
]

{ #category : #'*Fame-ImportExport' }
FMModel >> importJSONStream: aReadStream [

(FMImporter model: self)
stream: aReadStream;
parser: FMJSONParser;
Expand All @@ -58,17 +79,20 @@ FMModel >> importJSONStream: aReadStream [

{ #category : #'*Fame-ImportExport' }
FMModel >> importJSONString: mseString [

self importJSONStream: mseString readStream
]

{ #category : #'*Fame-ImportExport' }
FMModel >> importStream: aReadStream [

(FMImporter model: self)
stream: aReadStream;
run
]

{ #category : #'*Fame-ImportExport' }
FMModel >> importString: mseString [

self importStream: mseString readStream
]
6 changes: 5 additions & 1 deletion src/Fame-Tests/FMDebugImporter.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -46,15 +46,19 @@ FMDebugImporter >> endProperty: name [

{ #category : #accessing }
FMDebugImporter >> exportJsonString [

| printer |

printer := FMJSONPrinter onString.
self replayOn: printer.
^ printer stream contents
]

{ #category : #accessing }
FMDebugImporter >> exportString [
FMDebugImporter >> exportMSEString [

| printer |

printer := FMMSEPrinter onString.
self replayOn: printer.
^ printer stream contents
Expand Down
Loading

0 comments on commit 62b9248

Please sign in to comment.