diff --git a/repository/OpenPonk-Core/OPDiagramSerializer.class.st b/repository/OpenPonk-Core/OPDiagramSerializer.class.st index d5c0bda4..ccc2b22c 100644 --- a/repository/OpenPonk-Core/OPDiagramSerializer.class.st +++ b/repository/OpenPonk-Core/OPDiagramSerializer.class.st @@ -12,11 +12,6 @@ OPDiagramSerializer class >> exportSubject [ ^ #diagram ] -{ #category : 'accessing' } -OPDiagramSerializer >> formatName [ - ^ self subclassResponsibility -] - { #category : 'serialize/materialize' } OPDiagramSerializer >> materializeDiagramOf: aModel from: aStream [ "materialize aStream into a diagram that will be consumed by your controller" diff --git a/repository/OpenPonk-Core/OPJsonDiagramSerializer.class.st b/repository/OpenPonk-Core/OPJsonDiagramSerializer.class.st index 41bd92a8..a883793f 100644 --- a/repository/OpenPonk-Core/OPJsonDiagramSerializer.class.st +++ b/repository/OpenPonk-Core/OPJsonDiagramSerializer.class.st @@ -24,11 +24,6 @@ OPJsonDiagramSerializer class >> minImportVersion [ ^ 1 ] -{ #category : 'accessing' } -OPJsonDiagramSerializer >> formatName [ - ^ 'json' -] - { #category : 'serialize/materialize' } OPJsonDiagramSerializer >> materializeDiagramOf: aModel from: aStream [ diff --git a/repository/OpenPonk-Core/OPMementoDirectorySerializer.class.st b/repository/OpenPonk-Core/OPMementoDirectorySerializer.class.st index 3a171322..9f6c0f73 100644 --- a/repository/OpenPonk-Core/OPMementoDirectorySerializer.class.st +++ b/repository/OpenPonk-Core/OPMementoDirectorySerializer.class.st @@ -40,14 +40,15 @@ OPMementoDirectorySerializer >> loadDiagramsOf: aModel from: aFolder [ | materializer | aFolder exists ifFalse: [ ^ #( ) ]. materializer := aFolder files - detect: [ :any | any basename = OPExportInfo fileName ] - ifFound: [ :exportInfoFile | + detect: [ :any | + any basename = OPExportInfo fileName ] + ifFound: [ :exportInfoFile | OPSerializer forExportInfoFile: exportInfoFile ] ifNone: [ OPJsonDiagramSerializer new ]. - ^ ((aFolder filesMatching: '*.' , materializer formatName) reject: [ - :any | any basename = OPExportInfo fileName ]) collect: [ - :eachFile | - self loadDiagramOf: aModel from: eachFile by: materializer ] + ^ ((aFolder filesMatching: '*.' , materializer fileExtension) + reject: [ :any | any basename = OPExportInfo fileName ]) + collect: [ :eachFile | + self loadDiagramOf: aModel from: eachFile by: materializer ] ] { #category : 'loading' } @@ -75,13 +76,15 @@ OPMementoDirectorySerializer >> loadModelFrom: aFolder [ | modelFile materializer | materializer := aFolder files - detect: [ :any | any basename = OPExportInfo fileName ] - ifFound: [ :exportInfoFile | - plugin modelSerializerClass forExportInfoFile: exportInfoFile ] + detect: [ :any | + any basename = OPExportInfo fileName ] + ifFound: [ :exportInfoFile | + plugin modelSerializerClass forExportInfoFile: + exportInfoFile ] ifNone: [ plugin modelSerializerClass new ]. - modelFile := aFolder / 'model' , materializer formatName. + modelFile := aFolder / 'model' , materializer fileExtension. modelFile exists ifFalse: [ ^ nil ]. - ^ modelFile readStreamDo: [ :stream | + ^ modelFile readStreamDo: [ :stream | materializer materializeModelFrom: stream ] ] @@ -92,9 +95,9 @@ OPMementoDirectorySerializer >> saveDiagram: aDiagram to: aFolder index: aNumber diagramSerializer := OPStonDiagramSerializer new. (aFolder / (aNumber asString , '-' , (aDiagram name ifEmpty: [ 'diagram' ])) - , diagramSerializer formatName) + , diagramSerializer fileExtension) ensureDelete; - writeStreamDo: [ :stream | + writeStreamDo: [ :stream | stream nextPutAll: (diagramSerializer serializeDiagram: aDiagram) ] ] @@ -133,7 +136,7 @@ OPMementoDirectorySerializer >> saveModelOf: aMemento to: aFolder [ 'Saving UUID from method: ' , each uuid asString ]. modelSerializer := plugin modelSerializerClass new. modelSerializer class saveExportInfoTo: aFolder. - (aFolder / 'model' , modelSerializer formatName) + (aFolder / 'model' , modelSerializer fileExtension) ensureDelete; writeStreamDo: [ :stream | stream nextPutAll: (modelSerializer serializeModel: aMemento model) ] diff --git a/repository/OpenPonk-Core/OPModelSerializer.class.st b/repository/OpenPonk-Core/OPModelSerializer.class.st index 79e34d1e..5ef3a24b 100644 --- a/repository/OpenPonk-Core/OPModelSerializer.class.st +++ b/repository/OpenPonk-Core/OPModelSerializer.class.st @@ -15,11 +15,6 @@ OPModelSerializer class >> exportSubject [ ^ #model ] -{ #category : 'formatting' } -OPModelSerializer >> formatName [ - ^ 'model' -] - { #category : 'serialize/materialize' } OPModelSerializer >> materializeModelFrom: aStream [ "materialize aStream into a model instance" diff --git a/repository/OpenPonk-Core/OPSerializer.class.st b/repository/OpenPonk-Core/OPSerializer.class.st index e17d43fc..908a751b 100644 --- a/repository/OpenPonk-Core/OPSerializer.class.st +++ b/repository/OpenPonk-Core/OPSerializer.class.st @@ -27,6 +27,12 @@ OPSerializer class >> exportVersion [ ^ self subclassResponsibility ] +{ #category : 'accessing' } +OPSerializer class >> fileExtension [ + + ^ self formatName +] + { #category : 'as yet unclassified' } OPSerializer class >> forExportInfo: anExportInfo [ @@ -90,3 +96,13 @@ OPSerializer class >> supportsExportInfo: anExportInfo [ on: SubclassResponsibility do: [ false ] ] + +{ #category : 'accessing' } +OPSerializer >> fileExtension [ + ^ self class fileExtension +] + +{ #category : 'formatting' } +OPSerializer >> formatName [ + ^ self class formatName +] diff --git a/repository/OpenPonk-Core/OPStonDiagramSerializer.class.st b/repository/OpenPonk-Core/OPStonDiagramSerializer.class.st index 9128e152..34f418ca 100644 --- a/repository/OpenPonk-Core/OPStonDiagramSerializer.class.st +++ b/repository/OpenPonk-Core/OPStonDiagramSerializer.class.st @@ -24,11 +24,6 @@ OPStonDiagramSerializer class >> minImportVersion [ ^ 1 ] -{ #category : 'accessing' } -OPStonDiagramSerializer >> formatName [ - ^ 'ston' -] - { #category : 'serialize/materialize' } OPStonDiagramSerializer >> materializeDiagramOf: aModel from: aStream [ diff --git a/repository/OpenPonk-Core/OPStonModelSerializer.class.st b/repository/OpenPonk-Core/OPStonModelSerializer.class.st index bd280886..1530949e 100644 --- a/repository/OpenPonk-Core/OPStonModelSerializer.class.st +++ b/repository/OpenPonk-Core/OPStonModelSerializer.class.st @@ -31,11 +31,6 @@ OPStonModelSerializer class >> minImportVersion [ ^ 1 ] -{ #category : 'accessing' } -OPStonModelSerializer >> formatName [ - ^ 'ston' -] - { #category : 'serialize/materialize' } OPStonModelSerializer >> materializeModelFrom: aStream [ ^ self stonMaterialize: aStream