From a49e0d50702cc4f0a96d630d1577546d5c836b62 Mon Sep 17 00:00:00 2001 From: Alistair Grant Date: Wed, 21 Jan 2026 07:31:26 +0100 Subject: [PATCH 1/2] Add explicitClassesToMap mechanism, removing the need to add extension methods in core classes when the default mapping is sufficient. --- src/Lepiter-Store/FileLocator.extension.st | 6 +++ src/Lepiter-Store/FileReference.extension.st | 6 +++ src/Lepiter-Store/Fraction.extension.st | 6 +++ .../GtPackageExampleGroup.extension.st | 7 ++++ src/Lepiter-Store/LeJsonV4.class.st | 38 +++++++++++++++---- .../LeJsonV4IntegrityExamples.class.st | 19 ++++++++++ src/Lepiter-Store/LeJsonV4Reader.class.st | 9 +++++ .../LeJsonV4SerialisationExamples.class.st | 18 +++------ src/Lepiter-Store/NeoJSONMapper.extension.st | 9 +++++ src/Lepiter-Store/Object.extension.st | 15 ++++++++ src/Lepiter-Store/Point.extension.st | 6 +++ src/Lepiter-Store/ScaledDecimal.extension.st | 6 +++ 12 files changed, 126 insertions(+), 19 deletions(-) create mode 100644 src/Lepiter-Store/GtPackageExampleGroup.extension.st create mode 100644 src/Lepiter-Store/LeJsonV4IntegrityExamples.class.st create mode 100644 src/Lepiter-Store/NeoJSONMapper.extension.st diff --git a/src/Lepiter-Store/FileLocator.extension.st b/src/Lepiter-Store/FileLocator.extension.st index e4131ee6a..d2b6aea1b 100644 --- a/src/Lepiter-Store/FileLocator.extension.st +++ b/src/Lepiter-Store/FileLocator.extension.st @@ -13,6 +13,12 @@ FileLocator >> asLepiterZnUrl [ ] +{ #category : #'*Lepiter-Store' } +FileLocator class >> deSerializeAllImplementorsInstances [ + + ^ #() +] + { #category : #'*Lepiter-Store' } FileLocator class >> leFromJsonV4Dictionary: aDictionary [ "Create a new instance of the receiver from the supplied dictionary." diff --git a/src/Lepiter-Store/FileReference.extension.st b/src/Lepiter-Store/FileReference.extension.st index a4224f56a..d8e019cb5 100644 --- a/src/Lepiter-Store/FileReference.extension.st +++ b/src/Lepiter-Store/FileReference.extension.st @@ -9,6 +9,12 @@ FileReference >> asLepiterZnUrl [ ] +{ #category : #'*Lepiter-Store' } +FileReference class >> deSerializeAllImplementorsInstances [ + + ^ #() +] + { #category : #'*Lepiter-Store' } FileReference class >> leFromJsonV3Dictionary: aDictionary [ "Create a new instance of the receiver from the supplied dictionary." diff --git a/src/Lepiter-Store/Fraction.extension.st b/src/Lepiter-Store/Fraction.extension.st index c6d73c4e4..ef4ae68ff 100644 --- a/src/Lepiter-Store/Fraction.extension.st +++ b/src/Lepiter-Store/Fraction.extension.st @@ -1,5 +1,11 @@ Extension { #name : #Fraction } +{ #category : #'*Lepiter-Store' } +Fraction class >> deSerializeAllImplementorsInstances [ + + ^ #() +] + { #category : #'*Lepiter-Store' } Fraction class >> leFromJsonV4Dictionary: aDictionary [ "Create a new instance of the receiver from the supplied dictionary. diff --git a/src/Lepiter-Store/GtPackageExampleGroup.extension.st b/src/Lepiter-Store/GtPackageExampleGroup.extension.st new file mode 100644 index 000000000..d092f9745 --- /dev/null +++ b/src/Lepiter-Store/GtPackageExampleGroup.extension.st @@ -0,0 +1,7 @@ +Extension { #name : #GtPackageExampleGroup } + +{ #category : #'*Lepiter-Store' } +GtPackageExampleGroup class >> deSerializeAllImplementorsInstances [ + + ^ #() +] diff --git a/src/Lepiter-Store/LeJsonV4.class.st b/src/Lepiter-Store/LeJsonV4.class.st index 6a2196d6a..d6d5f0ed0 100644 --- a/src/Lepiter-Store/LeJsonV4.class.st +++ b/src/Lepiter-Store/LeJsonV4.class.st @@ -11,6 +11,12 @@ Class { #category : #'Lepiter-Store-JsonV4' } +{ #category : #accessing } +LeJsonV4 class >> explicitClassNamesToMap [ + + ^ #(#AsyncFuturePendingTaskSignal #AsyncFutureSignal #BeaconLoggerSignal #BeaconSignal #BlBeaconTaskSignal #BlDevScripterSignal #BlDevScripterStepAboutToPlaySignal #BlDevScripterStepExceptionSignal #BlDevScripterStepFinishedSignal #BlDevScripterStepPulsationFinishedSignal #BlDevScripterStepPulsationTimeoutedSignal #BlDevScripterStepSignal #BlDragAndDropSignal #BlDragToSignal #BlElementDetachCompositionLayerSignal #BlElementNamedChildNotFoundSignal #BlElementNotFocusableSignal #BlElementOffsetCompositionLayerSignal #BlElementSignal #BlGotFocusSignal #BlImageCacheSignal #BlInfiniteDataSourceChangedSignal #BlInfiniteDataSourceItemsChangedSignal #BlInfiniteDataSourceSignal #BlInfiniteElementSignal #BlInfiniteLinearLayoutSignal #BlInfiniteLinearLayoutStateClearScrapSignal #BlInfiniteLinearLayoutStateSetScrapSignal #BlInfiniteRecyclerAboutToBindHolderForPositionSignal #BlInfiniteRecyclerAboutToRecycleInPoolSignal #BlInfiniteRecyclerAddedToAttachedScrapSignal #BlInfiniteRecyclerAddedToChangedScrapSignal #BlInfiniteRecyclerClearedAttachedScrapSignal #BlInfiniteRecyclerFetchHolderSignal #BlInfiniteRecyclerSignal #BlLostFocusSignal #BlMarkElementNeedsPaintSignal #BlNonUIProcessSignal #BlParallelUniverseDeferredActionAddedSignal #BlParallelUniverseHostSpaceCreatedSignal #BlParallelUniverseHostSpaceShownSignal #BlParallelUniverseHostStartRequestSignal #BlParallelUniverseHostStartedSignal #BlParallelUniverseOpenSpaceRequestSignal #BlParallelUniverseRunDeferredActionSignal #BlParallelUniverseSignal #BlParallelUniverseSpaceAddedSignal #BlParallelUniverseSpaceDetachSignal #BlParallelUniverseSpaceDispatchAddedToSceneSignal #BlParallelUniverseSpaceRootAssignedSignal #BlParallelUniverseSpaceSignal #BlParallelUniverseTryToRunDeferredActionsSignal #BlPulseStatSignal #BlRequestLayoutSignal #BlSpaceDetachedSignal #BlSpaceHostChangeSignal #BlSpaceRenderSignal #BlSpaceRenderedSignal #BlSpaceSignal #BlSpartaSpaceRendererInitializeSignal #BlTaskExecutionSignal #BlTextStylerRequestedSignal #BrAsyncElementFutureAboutToCancelPromiseSignal #BrAsyncElementFutureCompletedSuccessfullySignal #BrAsyncElementFutureReceivedSignal #BrAsyncElementFutureScheduledSignal #BrAsyncElementFutureSignal #BrAsyncElementFutureSkippedFutureSignal #BrAsyncElementFutureTerminatedUnsuccessfullySignal #BrAsyncElementFutureUpdateElementSignal #BrAsyncElementFutureUpdateElementSkippedSignal #BrAsyncElementPromiseElementUpdateSignal #BrAsyncElementPromiseInitializeElementErrorSignal #BrAsyncElementPromiseInitializeElementSignal #BrAsyncElementPromiseInitializeElementSuccessSignal #BrAsyncElementPromiseRequestUpdateSignal #BrAsyncElementPromiseSignal #BrCursorOutOfRangeSignal #BrElementUpdaterElementMayUpdateSignal #BrElementUpdaterEnqueuePostponedUpdateSignal #BrElementUpdaterEnqueueUpdateSignal #BrElementUpdaterPerformUpdateSignal #BrElementUpdaterSignal #BrTextEditorAttributesModifiedSignal #BrTextEditorCommandSignal #BrTextEditorHolderCommandSignal #BrTextEditorRecordDeselectionSignal #BrTextEditorRecordSelectionSignal #BrTextEditorResetCacheSignal #BrTextEditorSegmentAdornmentErrorSignal #BrTextEditorSegmentBuildSignal #BrTextEditorSegmentRecycleSignal #BrTextEditorSegmentSignal #BrTextEditorSegmentUpdateSignal #BrTextEditorSignal #BrTextStylerAsyncStrategySignal #BrTextStylerAsyncStylingFinished #BrTextStylerAsyncStylingStarted #BrTextStylerAsyncStylingSubmitted #ChromeIdleTimerSignal #ChromeReceivedMessageSignal #ChromeSignal #ChromeStringSignal #ContextStackSignal #CurrentProcessSignal #DAPMessageSignal #DummySignal #ExceptionSignal #GlutinEventSignal #GtAwsWebServiceCommandEndSignal #GtAwsWebServiceCommandSignal #GtAwsWebServiceCommandStartSignal #GtBeaconGenericLogSignal #GtBeaconLabelledLogSignal #GtBeaconLeJsonEncodingErrorSignal #GtBeaconMethodSignal #GtBeaconTypedLogSignal #GtCoderAddOnCreatedSignal #GtCoderAddOnSignal #GtCoderAddOnsComputationFinishedSignal #GtCoderAddOnsComputationSignal #GtCoderAddOnsComputationStartedSignal #GtCoderEvaluationStatusChangedSignal #GtCoderEvaluationStatusShowNotificationSignal #GtCoderIncomingEvaluationStatusSignal #GtCompletionApplyPreviewSignal #GtCompletionCancelPreviewSignal #GtConnectorBasicEventSignal #GtConnectorBasicSignal #GtConnectorContextEventSignal #GtConnectorEventSignal #GtDeDockerLogEntrySignal #GtDebuggerPharoMethodIndicatorSignal #GtDebuggerSignal #GtDebuggerStackElementBindCoderViewModelSignal #GtDebuggerStackElementFirstNonFilteredContextFoundSignal #GtDebuggerStackElementFirstNonFilteredContextPreloadSignal #GtDebuggerStackElementOnStackChangedSignal #GtDebuggerStackElementOnUpdateContentSignal #GtDebuggerStackElementOnUpdateDebuggerSignal #GtDebuggerStackElementOnUpdateSessionSignal #GtDependencyAnalyzerBrokenBaselineSignal #GtEpNilCommentSignal #GtExamplesReportExceptionSignal #GtExamplesReportRetrySignal #GtExamplesReportRunClassSignal #GtExamplesReportRunExampleSignal #GtExamplesReportRunPackageSignal #GtExamplesReportSignal #GtFilterItemsChangedSignal #GtFilterSignal #GtGemStoneBeaconSignal #GtGemStoneClassCategoryChangeCodeSyncSignal #GtGemStoneClassCodeSyncSignal #GtGemStoneClassCommentCodeSyncSignal #GtGemStoneClassDefinitionCodeSyncSignal #GtGemStoneClassRemovalCodeSyncSignal #GtGemStoneClassRenameCodeSyncSignal #GtGemStoneCodeSyncSignal #GtGemStoneCodeSyncStateSignal #GtGemStoneIgnoredCodeSyncSignal #GtGemStoneKeepAlivePollCompletedSignal #GtGemStoneKeepAlivePollSignal #GtGemStoneKeepAlivePollStartedSignal #GtGemStoneKeepAliveSessionCleanSignal #GtGemStoneKeepAliveSessionEndSignal #GtGemStoneKeepAliveSessionErrorSignal #GtGemStoneKeepAliveSessionModifiedSignal #GtGemStoneKeepAliveSessionPollStartedSignal #GtGemStoneKeepAliveSessionSignal #GtGemStoneKeepAliveSignal #GtGemStoneMethodCodeSyncSignal #GtGemStoneSessionAutoCommitSignal #GtGemStoneSessionEvaluationDeliverySignal #GtGemStoneSessionEvaluationDeserializeResultSignal #GtGemStoneSessionEvaluationExecutionEndSignal #GtGemStoneSessionEvaluationExecutionSignal #GtGemStoneSessionEvaluationExecutionStartSignal #GtGemStoneSessionEvaluationPerformExecutionStartSignal #GtGemStoneSessionEvaluationPromiseWaitSignal #GtGemStoneSessionEvaluationResolveBindingsSignal #GtGemStoneSessionEvaluationScriptExecutionStartSignal #GtGemStoneSessionEvaluationSignal #GtGemStoneSessionSignal #GtGitCliContextStackSignal #GtGitCliSignal #GtGradCircleLayoutRadiusSignal #GtGradHierarchicalLayoutCurrentComponentSignal #GtGradHierarchicalLayoutInitialRanksSignal #GtGradHierarchicalLayoutLayeringStageOutputSignal #GtGradKamadaKawaiDistanceMatrixSignal #GtGradKamadaKawaiInitialPositionSetSignal #GtGradKamadaKawaiLayoutDeltasSignal #GtGradProcessingTreeSignal #GtGradTreeLayoutCorrectionSignal #GtGradTreeLayoutNodeProcessingFinishedSignal #GtGradTreeLayoutNodeProcessingStartedSignal #GtGradTreeLayoutOffsetSetSignal #GtInspectorSampleBOneForwardObjectSignal #GtInspectorSelectTabSignal #GtJustContextStackSignal #GtLSPServerIOSignal #GtLSPServerInputSignal #GtLSPServerOutputSignal #GtLlmFunctionCallAboutToBePerformedSignal #GtLlmFunctionCallPerformedSignal #GtLlmFunctionCallSignal #GtLlmStylerSignal #GtLoadItemsStackSignal #GtMondrianEdgeNotCreated #GtMyExampleBeaconSignal #GtMyExampleBeaconStartSignal #GtMyExampleBeaconStopSignal #GtMyExampleLabelledBeaconSignal #GtNetworkNoProxySetSignal #GtNetworkProxyInvalidEnvironmentVariableValueSignal #GtNetworkProxySetSignal #GtNetworkProxySignal #GtNetworkProxyUndefinedEnvironmentVariableSignal #GtNotificationIcebergCredentialsSignal #GtPharoCodersStreamChangedSignal #GtPharoExampleSuiteMediatorSignal #GtPharoFlushChangesFileSignal #GtPharoMethodCoderAddedSignal #GtPharoMethodCoderAnnouncementSignal #GtPharoMethodCoderCompiledSignal #GtPharoMethodCoderModifiedSignal #GtPharoMethodCoderRemovedSignal #GtPharoNewCodersStreamSignal #GtPharoStreamingMethodsChangedSignal #GtPharoStreamingMethodsCoderElementSignal #GtPharoStreamingMethodsFiltersElementStencilDefaultChangedSignal #GtPharoStreamingMethodsScrollToTargetSignal #GtPharoSubscribedToMethodCoderSignal #GtPharoUserMessageSignal #GtPhlowApplyToolSelectionSignal #GtPhlowForwarderFutureElementSignal #GtPhlowStoreToolSelectionSignal #GtRemoteRunnerAnnouncement #GtRemoteRunnerSignal #GtRemoteRunnerTraceAnnouncement #GtRlActionExecutionCompletedSignal #GtRlActionExecutionSignal #GtRlActionExecutionStartedSignal #GtRlActionSignal #GtRlClonerBaselineLoadCompletedSignal #GtRlClonerBaselineLoadSignal #GtRlClonerBaselineLoadStartedSignal #GtRlClonerBaselinePackageLoadSignal #GtRlClonerBaselineSignal #GtRlClonerBaselineSkipLoadSignal #GtRlCreateReleaseActionSignal #GtRlLoaderDirectiveActionExecutionCompletedSignal #GtRlLoaderDirectiveActionExecutionStartedSignal #GtRlLoaderDirectiveActionSignal #GtRlProjectLinkWithRepositorySignal #GtRlProjectReleaseStrategySignal #GtRlProjectReleaseStructureSignal #GtRlReleaseConfigurationSignal #GtRlReleaserSignal #GtRlRepositoryActiveReleaseVersionSignal #GtRlRepositoryPassiveReleaseVersionSignal #GtRrAnnouncementQueueDeliveryAnnouncement #GtRrAnnouncementQueueDeliveryCompletedSignal #GtRrAnnouncementQueueDeliveryInitiatedSignal #GtRrAnnouncementQueuePullCompletedSignal #GtRrAnnouncementQueuePullInitiatedSignal #GtRrAnnouncementQueuePullSignal #GtRrAnnouncementQueueSignal #GtRrChangesSyncRetrievalCompletedSignal #GtRrChangesSyncRetrievalSignal #GtRrChangesSyncRetrievalStartingSignal #GtRrCodeSyncApplyChangeCompletedSignal #GtRrCodeSyncApplyChangeSignal #GtRrCodeSyncApplyChangeStartingSignal #GtRrCodeSyncJobSignal #GtRrCodeSyncSignal #GtRrExampleStringSignal #GtRrJobAnnouncement #GtRrJobCancelledAnnouncement #GtRrJobCompletedAnnouncement #GtRrJobShutdownSignal #GtRrJobStartedAnnouncement #GtRrJobStartupAndShutdownSignal #GtRrJobStartupSignal #GtRrJobTerminatedAnnouncement #GtRrMessageStatsSignal #GtRrMqQueueTaskCompletedSignal #GtRrMqQueueTaskSignal #GtRrMqQueueTaskStartingSignal #GtRrMqTaskMissingSignal #GtRrNextTaskCompletedSignal #GtRrNextTaskFinishedWithWorkerSignal #GtRrNextTaskSignal #GtRrNextTaskStartingSignal #GtRrNextTaskWorkerNotRegisteredSignal #GtRrRegisterWorkerCompletedSignal #GtRrRegisterWorkerRejectedSignal #GtRrRegisterWorkerSignal #GtRrRegisterWorkerStartingSignal #GtRrResultProcessingErrorAnnouncement #GtRrStatusMessageChangedAnnouncement #GtRrStompMqCommandCallbackCompletedSignal #GtRrStompMqCommandCallbackSignal #GtRrStompMqCommandCallbackStartingSignal #GtRrStompMqSendMessageCompletedSignal #GtRrStompMqSendMessageSignal #GtRrStompMqSendMessageStartingSignal #GtRrStompMqTaskCallbackCompletedSignal #GtRrStompMqTaskCallbackSignal #GtRrStompMqTaskCallbackStartingSignal #GtRrStopRegisteredWorkerCompletedSignal #GtRrStopRegisteredWorkerSignal #GtRrStopRegisteredWorkerStartingSignal #GtRrStopRegisteredWorkersCompletedSignal #GtRrStopRegisteredWorkersSignal #GtRrStopRegisteredWorkersStartingSignal #GtRrSyslogSignal #GtRrTaskAnnouncement #GtRrTaskCompletedAnnouncement #GtRrTaskContext #GtRrTaskDoneCompletedSignal #GtRrTaskDoneSignal #GtRrTaskDoneStartingSignal #GtRrTaskFailedAnnouncement #GtRrTaskFinishedAnnouncement #GtRrTaskStartedAnnouncement #GtRrTimeoutAnnouncement #GtRrTimeoutCompletedAnnouncement #GtRrTimeoutScheduledAnnouncement #GtRrTimeoutStartedAnnouncement #GtRrWorkerAnnouncement #GtRrWorkerApplyChangeCompletedSignal #GtRrWorkerApplyChangeSignal #GtRrWorkerApplyChangeStartingSignal #GtRrWorkerApplyChangesCompletedSignal #GtRrWorkerApplyChangesSignal #GtRrWorkerApplyChangesStartingSignal #GtRrWorkerChangesSignal #GtRrWorkerChangesSyncAnnouncement #GtRrWorkerChangesSyncErrorAnnouncement #GtRrWorkerChangesSyncHaveEventsAnnouncement #GtRrWorkerChangesSyncStartAnnouncement #GtRrWorkerChangesSyncedAnnouncement #GtRrWorkerCheckCompletedSignal #GtRrWorkerCheckSignal #GtRrWorkerCheckStartingSignal #GtRrWorkerCliCompletedSignal #GtRrWorkerCliSignal #GtRrWorkerCliStartingSignal #GtRrWorkerCommandAnnouncement #GtRrWorkerCommandCompletedAnnouncement #GtRrWorkerCommandStartedAnnouncement #GtRrWorkerConnection #GtRrWorkerControlChannelRegisteredAnnouncement #GtRrWorkerFilterChangesCompletedSignal #GtRrWorkerFilterChangesSignal #GtRrWorkerFilterChangesStartingSignal #GtRrWorkerHeartbeatCompletedSignal #GtRrWorkerHeartbeatSignal #GtRrWorkerHeatbeatStartingSignal #GtRrWorkerOperationAnnouncement #GtRrWorkerOperationShutdownAnnouncement #GtRrWorkerOperationSignal #GtRrWorkerRegisterCompletedSignal #GtRrWorkerRegisterSignal #GtRrWorkerRegisterStartingSignal #GtRrWorkerRegisteredAnnouncement #GtRrWorkerRegistrationRefusedAnnouncement #GtRrWorkerReplacedAnnouncement #GtRrWorkerResponseConfirmedSignal #GtRrWorkerResponseErrorSignal #GtRrWorkerResponseSentSignal #GtRrWorkerResultEntry #GtRrWorkerRetrieveChangesCompletedSignal #GtRrWorkerRetrieveChangesSignal #GtRrWorkerRetrieveChangesStartingSignal #GtRrWorkerTaskCompletedSignal #GtRrWorkerTaskProcessErrorAnnouncement #GtRrWorkerTaskSignal #GtRrWorkerTaskStartingSignal #GtRrWorkerTimeoutAnnouncement #GtRrWorkerTraceAnnouncement #GtRrWorkerUnregisteredAnnouncement #GtRrWorkerWaitForTaskAnnouncement #GtSourceCoderProcessInDebuggerSignal #GtStrictSymbolEqualityArgumentSignal #GtStylerErrorSignal #GtTextualCoderEditorElementAddedToSceneGraphSignal #GtTextualCoderEditorElementAttachedSpaceSignal #GtTextualCoderEditorElementDetachedSpaceSignal #GtTextualCoderEditorElementRemovedFromSceneGraphSignal #GtTextualCoderEditorElementSignal #GtTextualCoderEditorElementUpdateCursorsSignal #GtTextualCoderEditorElementUpdateStateSignal #GtTextualCoderEditorElementUpdateTextSignal #GtVirtualMachineDebugSignal #GtVirtualMachineErrorSignal #GtVirtualMachineGenericSignal #GtVirtualMachineInfoSignal #GtVirtualMachineLevelSignal #GtVirtualMachineSignal #GtVirtualMachineTraceSignal #GtVirtualMachineWarningSignal #LanguageLinkBrokerHandleMessage #LanguageLinkBrokerSendMessage #LanguageLinkCommandSignal #LanguageLinkCommunicationsSignal #LanguageLinkDeliverCommandSignal #LanguageLinkEventSignal #LanguageLinkMsgPackPharoBrokerSignal #LanguageLinkSendCommandSignal #LanguageLinkSignal #LanguageLinkSocketErrorSignal #LeDatabaseSidebarGroupedListRequestUpdateSelectionSignal #LeDatabaseSidebarGroupedListScrolledToIndexSignal #LeDatabaseSidebarGroupedListUpdateSelectionSignal #LeLocalStoreSignal #LePathFinderSignal #LeReferenceMaintenanceSignal #LeReloadOutOfDateReasonSignal #LeReloadReasonSignal #LeReloadUpToDateReasonSignal #LeTextSnippetUpdateTextAssignSignal #LeTextSnippetUpdateTextScheduleSignal #LeTextSnippetUpdateTextSignal #LeZincSignal #LlEsCheckServerReadyCompletedSignal #LlEsCheckServerReadySignal #LlEsCheckServerReadyStartingSignal #LlEsConnectCompletedSignal #LlEsConnectSignal #LlEsConnectStartingSignal #MethodStackSignal #PharoLinkBadResponseSignal #PharoLinkErrorRequestSignal #PharoLinkEvalSignal #PharoLinkNetworkErrorSignal #PharoLinkRegistryUnknownIdSignal #PharoLinkRequestSignal #PharoLinkResponseSignal #PharoLinkServerSignal #PharoLinkSignal #SkiaPerformanceSignal #SkiaSignal #SkiaStringToTextRunBoundsAsRectangleSignal #SkiaStringToTextRunComputeGlyphsSignal #SkiaStringToTextRunGlyphsAsByteArraySignal #SkiaStringToTextRunSignal #SkiaStringToTextRunUtfConvertionSignal #StampHeartbeatSignal #StampSignals #StreamLoggerFlusherErrorSignal #StringSignal #TaskAtErrorSignal #TelemetrySignal #ThisContextSignal #WrapperSignal #ZnLogEventSignal) +] + { #category : #loading } LeJsonV4 class >> loadFile: aFileReference [ @@ -18,15 +24,26 @@ LeJsonV4 class >> loadFile: aFileReference [ ] { #category : #private } -LeJsonV4 >> allClassMappingsFor: aNeoJSONMapper [ +LeJsonV4 >> allClassMappingsFor: aNeoJSONMapper [ + "Add the class mappings for all supported classes. + Classes are identified either by implementing #leJsonV4Name or being in the #explicitClassNamesToMap list." - (SystemNavigation default allImplementorsOf: #leJsonV4Name) do: [ :method | + "Add classes with #leJsonV4Name" + (SystemNavigation default allImplementorsOf: #leJsonV4Name) do: [ :method | | jsonName | - jsonName := method - gtValueWithReceiver: method methodClass soleInstance - possibleArguments: #(). - jsonName ifNotNil: [ method methodClass instanceSide leJsonV4MappingFor: aNeoJSONMapper ] ]. - + method methodClass isMeta ifTrue: + [ jsonName := method + gtValueWithReceiver: method methodClass soleInstance + possibleArguments: #(). + jsonName ifNotNil: + [ method methodClass instanceSide leJsonV4MappingFor: aNeoJSONMapper ] ] ]. + + "Add classes in #explicitClassNamesToMap" + self explicitClassesToMap do: [ :cls | + | jsonName | + jsonName := cls name asString. + jsonName at: 1 put: jsonName first asLowercase. + cls leJsonV4MappingFor: aNeoJSONMapper named: jsonName ]. ] { #category : #testing } @@ -51,6 +68,13 @@ LeJsonV4 >> deserialize: aStream [ ^ object ] +{ #category : #private } +LeJsonV4 >> explicitClassesToMap [ + + ^ self class explicitClassNamesToMap collect: [ :name | + self class environment classOrTraitNamed: name ] +] + { #category : #initialization } LeJsonV4 >> initialize [ diff --git a/src/Lepiter-Store/LeJsonV4IntegrityExamples.class.st b/src/Lepiter-Store/LeJsonV4IntegrityExamples.class.st new file mode 100644 index 000000000..d47927c4e --- /dev/null +++ b/src/Lepiter-Store/LeJsonV4IntegrityExamples.class.st @@ -0,0 +1,19 @@ +Class { + #name : #LeJsonV4IntegrityExamples, + #superclass : #Object, + #category : #'Lepiter-Store-Examples' +} + +{ #category : #examples } +LeJsonV4IntegrityExamples >> supportedClassesNotDuplicated [ + "Check that there are no classes that both define #leJsonV4Name and are in LeJsonV4>>explicitClassNamesToMap" + + | leJsonV4NameImplementers explicitClasses common | + + leJsonV4NameImplementers := (SystemNavigation default allImplementorsOf: #leJsonV4Name) collect: [ :method | + method methodClass instanceSide ]. + explicitClasses := LeJsonV4 explicitClassNamesToMap. + common := leJsonV4NameImplementers asSet intersection: explicitClasses asSet. + self assert: common isEmpty description: + [ 'The following classes have duplicate LeJsonV4 definitions: ', common printString ]. +] diff --git a/src/Lepiter-Store/LeJsonV4Reader.class.st b/src/Lepiter-Store/LeJsonV4Reader.class.st index 833bc1322..c7a024733 100644 --- a/src/Lepiter-Store/LeJsonV4Reader.class.st +++ b/src/Lepiter-Store/LeJsonV4Reader.class.st @@ -17,6 +17,15 @@ LeJsonV4Reader >> for: smalltalkClass do: block [ ^ mapping ] +{ #category : #mapping } +LeJsonV4Reader >> for: smalltalkClass named: aSymbol do: block [ + | mapping | + + mapping := super for: smalltalkClass do: block. + typeMap at: aSymbol put: smalltalkClass. + ^ mapping +] + { #category : #'initialize-release' } LeJsonV4Reader >> initialize [ diff --git a/src/Lepiter-Store/LeJsonV4SerialisationExamples.class.st b/src/Lepiter-Store/LeJsonV4SerialisationExamples.class.st index ccd48aacf..0399d7095 100644 --- a/src/Lepiter-Store/LeJsonV4SerialisationExamples.class.st +++ b/src/Lepiter-Store/LeJsonV4SerialisationExamples.class.st @@ -55,32 +55,26 @@ LeJsonV4SerialisationExamples >> checkInstance: instance [ { #category : #examples } LeJsonV4SerialisationExamples >> deSerializeAllImplementors [ "Perform a basic check on all implementors of #leJsonV4Name that the basic serialisation / deserialisation doesn't raise an error and looks sensible" - - | allImplementors allClasses leJsonV4 clsCount testedCount excludedClasses | + | allImplementors allClasses leJsonV4 clsCount testedCount | + LeJsonV4 cleanUp. + leJsonV4 := LeJsonV4 uniqueInstance. allImplementors := SystemNavigation default allImplementorsOf: #leJsonV4Name. allClasses := allImplementors flatCollect: [ :method | method methodClass instanceSide withAllSubclasses ] as: Set. + allClasses addAll: leJsonV4 explicitClassesToMap. clsCount := allClasses size. testedCount := 0. - leJsonV4 := LeJsonV4 uniqueInstance. "excludedClasses is a set of classes that can't serialise the default instance due to its implementation" - excludedClasses := {FileLocator. - FileReference. - Fraction. - GtPackageExampleGroup. - Point. - ScaledDecimal}. - allClasses removeAll: excludedClasses. "Give developers the chance to exclude classes that are not part of core Gt" (self class methods select: [ :method | method hasPragmaNamed: #leJsonV4ExcludedClasses ]) do: [ :method | allClasses removeAll: (self perform: method selector) ]. allClasses do: [ :cls | - (cls perform: #leJsonV4Name) - ifNotNil: [ cls deSerializeAllImplementorsInstances + ((cls respondsTo: #leJsonV4Name) and: [ (cls perform: #leJsonV4Name) isNotNil ]) + ifTrue: [ cls deSerializeAllImplementorsInstances do: [ :instance | self checkInstance: instance ] ]. testedCount := testedCount + 1 ] ] diff --git a/src/Lepiter-Store/NeoJSONMapper.extension.st b/src/Lepiter-Store/NeoJSONMapper.extension.st new file mode 100644 index 000000000..28247633a --- /dev/null +++ b/src/Lepiter-Store/NeoJSONMapper.extension.st @@ -0,0 +1,9 @@ +Extension { #name : #NeoJSONMapper } + +{ #category : #'*Lepiter-Store' } +NeoJSONMapper >> for: smalltalkClass named: aSymbol do: block [ + "Execute the code in block to further customize the mapping for schemaName. + Create and add a new standard object mapping for schemaName if necessary." + + ^ self for: smalltalkClass do: block +] diff --git a/src/Lepiter-Store/Object.extension.st b/src/Lepiter-Store/Object.extension.st index 7d591a45f..45bab6214 100644 --- a/src/Lepiter-Store/Object.extension.st +++ b/src/Lepiter-Store/Object.extension.st @@ -56,3 +56,18 @@ Object class >> leJsonV4MappingFor: aNeoJSONMapper [ self leJsonV4AddMappingsTo: mapping ]. ] + +{ #category : #'*Lepiter-Store' } +Object class >> leJsonV4MappingFor: aNeoJSONMapper named: aSymbol [ + "By default, Lepiter objects are written as a mapping. + Any subclasses that want a different representation should over-write this method. + This mapping is used for classes listed in LeJsonV4>>explicitClassNamesToMap" + + aNeoJSONMapper for: self named: aSymbol do: [ :mapping | + mapping + mapProperty: #'__type' + getter: [ :object | aSymbol ] + setter: [ :um | self error: 'Objects should not be read here' ]. + self leJsonV4AddMappingsTo: mapping ]. + +] diff --git a/src/Lepiter-Store/Point.extension.st b/src/Lepiter-Store/Point.extension.st index 084c8d9cf..6ba1db142 100644 --- a/src/Lepiter-Store/Point.extension.st +++ b/src/Lepiter-Store/Point.extension.st @@ -1,5 +1,11 @@ Extension { #name : #Point } +{ #category : #'*Lepiter-Store' } +Point class >> deSerializeAllImplementorsInstances [ + + ^ { 1@2 } +] + { #category : #'*Lepiter-Store' } Point class >> leFromJsonV4Dictionary: aDictionary [ "Create a new instance of the receiver from the supplied dictionary." diff --git a/src/Lepiter-Store/ScaledDecimal.extension.st b/src/Lepiter-Store/ScaledDecimal.extension.st index 0ed8448e2..4e49a0c96 100644 --- a/src/Lepiter-Store/ScaledDecimal.extension.st +++ b/src/Lepiter-Store/ScaledDecimal.extension.st @@ -1,5 +1,11 @@ Extension { #name : #ScaledDecimal } +{ #category : #'*Lepiter-Store' } +ScaledDecimal class >> deSerializeAllImplementorsInstances [ + + ^ { 4.5s3 } +] + { #category : #'*Lepiter-Store' } ScaledDecimal class >> leFromJsonV4Dictionary: aDictionary [ "Create a new instance of the receiver from the supplied dictionary. From f0920c1f9fdb20673c1f0b6d5653aa3922929c1b Mon Sep 17 00:00:00 2001 From: Alistair Grant Date: Wed, 21 Jan 2026 13:29:01 +0100 Subject: [PATCH 2/2] Make explicit class mapping extensible. --- .../LeBinaryContentsHash.class.st | 2 +- ...LeContentAttributesReloadExamples.class.st | 2 +- .../LeContentAttributesReloader.class.st | 2 +- src/Lepiter-Store/LeDBLoadError.class.st | 2 +- .../LeDatabaseAboutToReload.class.st | 2 +- .../LeDatabaseAlwaysReloadReason.class.st | 2 +- ...atabaseContentReloadErrorStrategy.class.st | 2 +- ...LeDatabaseFileChangedReloadReason.class.st | 2 +- ...eDatabaseIsReloadNecessaryChecker.class.st | 2 +- ...LeDatabaseMissingHashReloadReason.class.st | 2 +- .../LeDatabaseNewPagesReloadReason.class.st | 2 +- ...basePropertiesChangedReloadReason.class.st | 2 +- .../LeDatabasePropertiesExamples.class.st | 2 +- .../LeDatabasePropertyExamples.class.st | 34 +++++++------- src/Lepiter-Store/LeDatabaseReload.class.st | 2 +- .../LeDatabaseReloadReason.class.st | 2 +- src/Lepiter-Store/LeDatabaseReloaded.class.st | 2 +- src/Lepiter-Store/LeDatabaseStore.class.st | 2 +- .../LeDatabaseUpToDateReloadReason.class.st | 2 +- ...eDatabaseWithLocalMonitorExamples.class.st | 2 +- src/Lepiter-Store/LeDbVersion.class.st | 2 +- ...ebuggerContentReloadErrorStrategy.class.st | 2 +- src/Lepiter-Store/LeJsonV3.class.st | 2 +- src/Lepiter-Store/LeJsonV3000Updater.class.st | 2 +- src/Lepiter-Store/LeJsonV3001Updater.class.st | 2 +- src/Lepiter-Store/LeJsonV3002Updater.class.st | 2 +- src/Lepiter-Store/LeJsonV3003Updater.class.st | 2 +- src/Lepiter-Store/LeJsonV3Examples.class.st | 2 +- src/Lepiter-Store/LeJsonV3Reader.class.st | 2 +- .../LeJsonV3SchemaUpdater.class.st | 2 +- src/Lepiter-Store/LeJsonV3Writer.class.st | 2 +- src/Lepiter-Store/LeJsonV4.class.st | 37 +++++++++++++--- .../LeJsonV4000SnippetVisitor.class.st | 2 +- src/Lepiter-Store/LeJsonV4000Updater.class.st | 2 +- src/Lepiter-Store/LeJsonV4Examples.class.st | 2 +- .../LeJsonV4IntegrityExamples.class.st | 2 +- .../LeJsonV4LogicalPropertiesUpdater.class.st | 2 +- src/Lepiter-Store/LeJsonV4Reader.class.st | 2 +- .../LeJsonV4SchemaUpdater.class.st | 2 +- .../LeJsonV4SerialisationExamples.class.st | 2 +- src/Lepiter-Store/LeJsonV4Writer.class.st | 2 +- .../LeLocalAbstractProperties.class.st | 2 +- .../LeLocalAttachmentAlreadyExist.class.st | 2 +- .../LeLocalAttachmentDoesNotExist.class.st | 2 +- .../LeLocalAttachmentMissingFile.class.st | 2 +- src/Lepiter-Store/LeLocalExamples.class.st | 2 +- .../LeLocalJSONStoreShutdown.class.st | 2 +- .../LeLocalJSONStoreStartup.class.st | 2 +- .../LeLocalJsonV3Storage.class.st | 2 +- .../LeLocalJsonV4Storage.class.st | 2 +- .../LeLocalMonitorExamples.class.st | 2 +- .../LeLocalNullProperties.class.st | 2 +- src/Lepiter-Store/LeLocalSTONStorage.class.st | 2 +- src/Lepiter-Store/LeLocalStorage.class.st | 2 +- .../LeLocalStorageExamples.class.st | 2 +- src/Lepiter-Store/LeLocalStore.class.st | 44 +++++++++---------- src/Lepiter-Store/LeLocalStoreExport.class.st | 2 +- src/Lepiter-Store/LeLocalStoreLoad.class.st | 2 +- .../LeLocalStoreMonitor.class.st | 2 +- .../LeLocalStoreMonitorStarted.class.st | 2 +- .../LeLocalStoreMonitorStopped.class.st | 2 +- src/Lepiter-Store/LeLocalStoreSignal.class.st | 2 +- .../LeLocalV3001MigrationExamples.class.st | 2 +- .../LeLocalV3002MigrationExamples.class.st | 2 +- .../LeLocalV4000MigrationExamples.class.st | 2 +- .../LeLogicalDatabaseAboutToReload.class.st | 2 +- .../LeLogicalDatabaseProperties.class.st | 18 ++++---- ...LogicalDatabasePropertiesExamples.class.st | 2 +- .../LeLogicalDatabaseReload.class.st | 2 +- .../LeLogicalDatabaseReloadCommand.class.st | 2 +- .../LeLogicalDatabaseReloadDatabase.class.st | 2 +- ...eLogicalDatabaseReloadUpdateAddDb.class.st | 2 +- ...calDatabaseReloadUpdateExistingDb.class.st | 2 +- ...aseReloadUpdateExistingPlayground.class.st | 2 +- ...tabaseReloadUpdateExistingPrimary.class.st | 2 +- ...calDatabaseReloadUpdatePlayground.class.st | 2 +- ...ogicalDatabaseReloadUpdatePrimary.class.st | 2 +- ...gicalDatabaseReloadUpdateRemoveDb.class.st | 2 +- ...calDatabaseReloadUpdateShuffledDb.class.st | 2 +- ...aseReloadUpdateShuffledPlayground.class.st | 2 +- ...tabaseReloadUpdateShuffledPrimary.class.st | 2 +- .../LeLogicalDatabaseReloaded.class.st | 2 +- ...kLocalJsonV3StorageWithFilesOrder.class.st | 2 +- ...kLocalJsonV4StorageWithFilesOrder.class.st | 2 +- .../LePageComplexStructureChange.class.st | 2 +- .../LePageIsReloadNecessaryChecker.class.st | 2 +- .../LePageNoStructureChange.class.st | 2 +- .../LePageReloaderContext.class.st | 2 +- .../LePageStructureAsseambler.class.st | 12 ++--- ...LePageStructureAsseamblerExamples.class.st | 2 +- .../LePageStructureAssemblersGroup.class.st | 2 +- .../LePageStructureChange.class.st | 2 +- ...LePageStructureChangeTypeDetector.class.st | 2 +- .../LePageStructureNode.class.st | 2 +- .../LePropertiesExamples.class.st | 2 +- .../LeReloadOptimization.class.st | 2 +- .../LeReloadOutOfDateReasonSignal.class.st | 2 +- src/Lepiter-Store/LeReloadReason.class.st | 2 +- .../LeReloadReasonSignal.class.st | 2 +- .../LeReloadUpToDateReasonSignal.class.st | 2 +- ...ebuggerContentReloadErrorStrategy.class.st | 2 +- ...icationContentReloadErrorStrategy.class.st | 2 +- .../LeStoreAttachmentReader.class.st | 2 +- .../LeStoreAttachmentWriter.class.st | 2 +- .../LeStoreLocationExamples.class.st | 2 +- .../LeStoreMonitorAnnouncement.class.st | 2 +- .../LeStoreMonitorEntryQueued.class.st | 2 +- .../LeStoreMonitorSaved.class.st | 2 +- .../LeStoreMonitorSavedChanges.class.st | 2 +- src/Lepiter-Store/LeSubSettings.class.st | 2 +- .../LeUnknownObjectForTesting.class.st | 2 +- ...LeUnknownObjectForTestingResolver.class.st | 2 +- .../LeUnknownObjectResolver.class.st | 2 +- .../LeUnknownPageTypeResolver.class.st | 2 +- .../LeUnknownParsedObject.class.st | 2 +- src/Lepiter-Store/LeVolatileMonitor.class.st | 2 +- 116 files changed, 197 insertions(+), 170 deletions(-) diff --git a/src/Lepiter-Store/LeBinaryContentsHash.class.st b/src/Lepiter-Store/LeBinaryContentsHash.class.st index dd4cca7f7..09e39436e 100644 --- a/src/Lepiter-Store/LeBinaryContentsHash.class.st +++ b/src/Lepiter-Store/LeBinaryContentsHash.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'hex' ], - #category : #'Lepiter-Store-Reload - Optimizations' + #category : 'Lepiter-Store-Reload - Optimizations' } { #category : #factory } diff --git a/src/Lepiter-Store/LeContentAttributesReloadExamples.class.st b/src/Lepiter-Store/LeContentAttributesReloadExamples.class.st index d744f6d7c..c714ae4e0 100644 --- a/src/Lepiter-Store/LeContentAttributesReloadExamples.class.st +++ b/src/Lepiter-Store/LeContentAttributesReloadExamples.class.st @@ -1,7 +1,7 @@ Class { #name : #LeContentAttributesReloadExamples, #superclass : #Object, - #category : #'Lepiter-Store-Examples' + #category : 'Lepiter-Store-Examples' } { #category : #examples } diff --git a/src/Lepiter-Store/LeContentAttributesReloader.class.st b/src/Lepiter-Store/LeContentAttributesReloader.class.st index 3b60c6583..4b5d093c2 100644 --- a/src/Lepiter-Store/LeContentAttributesReloader.class.st +++ b/src/Lepiter-Store/LeContentAttributesReloader.class.st @@ -5,7 +5,7 @@ Class { 'targetContent', 'changedAttributes' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #'instance creation' } diff --git a/src/Lepiter-Store/LeDBLoadError.class.st b/src/Lepiter-Store/LeDBLoadError.class.st index 305f7970e..10b17e7db 100644 --- a/src/Lepiter-Store/LeDBLoadError.class.st +++ b/src/Lepiter-Store/LeDBLoadError.class.st @@ -12,7 +12,7 @@ Class { 'properties', 'pageTitle' ], - #category : #'Lepiter-Store-Exceptions' + #category : 'Lepiter-Store-Exceptions' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeDatabaseAboutToReload.class.st b/src/Lepiter-Store/LeDatabaseAboutToReload.class.st index b85a09bd9..5442744d8 100644 --- a/src/Lepiter-Store/LeDatabaseAboutToReload.class.st +++ b/src/Lepiter-Store/LeDatabaseAboutToReload.class.st @@ -5,7 +5,7 @@ Class { 'database', 'logicalDatabase' ], - #category : #'Lepiter-Store-Reload - Announcements' + #category : 'Lepiter-Store-Reload - Announcements' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeDatabaseAlwaysReloadReason.class.st b/src/Lepiter-Store/LeDatabaseAlwaysReloadReason.class.st index 39b14ea5e..79f377a59 100644 --- a/src/Lepiter-Store/LeDatabaseAlwaysReloadReason.class.st +++ b/src/Lepiter-Store/LeDatabaseAlwaysReloadReason.class.st @@ -1,7 +1,7 @@ Class { #name : #LeDatabaseAlwaysReloadReason, #superclass : #LeDatabaseReloadReason, - #category : #'Lepiter-Store-Reload - Optimizations' + #category : 'Lepiter-Store-Reload - Optimizations' } { #category : #printing } diff --git a/src/Lepiter-Store/LeDatabaseContentReloadErrorStrategy.class.st b/src/Lepiter-Store/LeDatabaseContentReloadErrorStrategy.class.st index a0bc82149..f87936e9c 100644 --- a/src/Lepiter-Store/LeDatabaseContentReloadErrorStrategy.class.st +++ b/src/Lepiter-Store/LeDatabaseContentReloadErrorStrategy.class.st @@ -10,7 +10,7 @@ Subclasses can also make use of two callback methods ({{gtMethod:LeDatabaseConte Class { #name : #LeDatabaseContentReloadErrorStrategy, #superclass : #Object, - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeDatabaseFileChangedReloadReason.class.st b/src/Lepiter-Store/LeDatabaseFileChangedReloadReason.class.st index fd25231ca..62e47481c 100644 --- a/src/Lepiter-Store/LeDatabaseFileChangedReloadReason.class.st +++ b/src/Lepiter-Store/LeDatabaseFileChangedReloadReason.class.st @@ -6,7 +6,7 @@ Class { 'modelHash', 'storageHash' ], - #category : #'Lepiter-Store-Reload - Optimizations' + #category : 'Lepiter-Store-Reload - Optimizations' } { #category : #'gt - extensions' } diff --git a/src/Lepiter-Store/LeDatabaseIsReloadNecessaryChecker.class.st b/src/Lepiter-Store/LeDatabaseIsReloadNecessaryChecker.class.st index a6590501a..0a84f9c11 100644 --- a/src/Lepiter-Store/LeDatabaseIsReloadNecessaryChecker.class.st +++ b/src/Lepiter-Store/LeDatabaseIsReloadNecessaryChecker.class.st @@ -7,7 +7,7 @@ Class { #classVars : [ 'ReloadAlways' ], - #category : #'Lepiter-Store-Reload - Optimizations' + #category : 'Lepiter-Store-Reload - Optimizations' } { #category : #evaluation } diff --git a/src/Lepiter-Store/LeDatabaseMissingHashReloadReason.class.st b/src/Lepiter-Store/LeDatabaseMissingHashReloadReason.class.st index 6f44a40a7..41fac3956 100644 --- a/src/Lepiter-Store/LeDatabaseMissingHashReloadReason.class.st +++ b/src/Lepiter-Store/LeDatabaseMissingHashReloadReason.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'model' ], - #category : #'Lepiter-Store-Reload - Optimizations' + #category : 'Lepiter-Store-Reload - Optimizations' } { #category : #printing } diff --git a/src/Lepiter-Store/LeDatabaseNewPagesReloadReason.class.st b/src/Lepiter-Store/LeDatabaseNewPagesReloadReason.class.st index 2da0c16f2..69c5bf7e2 100644 --- a/src/Lepiter-Store/LeDatabaseNewPagesReloadReason.class.st +++ b/src/Lepiter-Store/LeDatabaseNewPagesReloadReason.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'pageUIDs' ], - #category : #'Lepiter-Store-Reload - Optimizations' + #category : 'Lepiter-Store-Reload - Optimizations' } { #category : #printing } diff --git a/src/Lepiter-Store/LeDatabasePropertiesChangedReloadReason.class.st b/src/Lepiter-Store/LeDatabasePropertiesChangedReloadReason.class.st index 5d1f21ae9..ff52e01c5 100644 --- a/src/Lepiter-Store/LeDatabasePropertiesChangedReloadReason.class.st +++ b/src/Lepiter-Store/LeDatabasePropertiesChangedReloadReason.class.st @@ -5,7 +5,7 @@ Class { 'currentProperties', 'storageProperties' ], - #category : #'Lepiter-Store-Reload - Optimizations' + #category : 'Lepiter-Store-Reload - Optimizations' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeDatabasePropertiesExamples.class.st b/src/Lepiter-Store/LeDatabasePropertiesExamples.class.st index 95c49be05..8bc5872e4 100644 --- a/src/Lepiter-Store/LeDatabasePropertiesExamples.class.st +++ b/src/Lepiter-Store/LeDatabasePropertiesExamples.class.st @@ -1,7 +1,7 @@ Class { #name : #LeDatabasePropertiesExamples, #superclass : #Object, - #category : #'Lepiter-Store-Local-Examples' + #category : 'Lepiter-Store-Local-Examples' } { #category : #example } diff --git a/src/Lepiter-Store/LeDatabasePropertyExamples.class.st b/src/Lepiter-Store/LeDatabasePropertyExamples.class.st index cacc861a1..560fa3e18 100644 --- a/src/Lepiter-Store/LeDatabasePropertyExamples.class.st +++ b/src/Lepiter-Store/LeDatabasePropertyExamples.class.st @@ -1,51 +1,51 @@ Class { #name : #LeDatabasePropertyExamples, #superclass : #LeLocalExamples, - #category : #'Lepiter-Store-Local-Examples' + #category : 'Lepiter-Store-Local-Examples' } { #category : #examples } -LeDatabasePropertyExamples >> databaseWithPersonalInfo [ - "Check the personal information saved to disk when savePersonalInformation is true" +LeDatabasePropertyExamples >> databaseWithoutPersonalInfo [ + "Confirm that attachment properties don't include personal information when saved to disk" - | testAttachment pathString properties dbProperties | + | testAttachment pathString properties | memStore := FileSystem memory root / 'db'. memStore ensureCreateDirectory. testAttachment := memStore parent / 'test.attachment'. testAttachment ensureCreateFile. database := LeLocalStoreLoad current loadAndMonitorFrom: memStore. - database monitor savePersonalInformation: true. pathString := database addAttachmentByCopy: testAttachment. properties := STONJSON fromString: ((memStore / pathString) parent / LeAttachment basename) contents. - dbProperties := STONJSON - fromString: (memStore / database properties propertiesBasename) contents. - - self assert: (dbProperties at: #savePersonalInformation) equals: true. - self assert: (properties includesKey: #originalReference). - self - assert: ((properties at: #originalReference) at: #filename) - equals: '/test.attachment' + self deny: (properties includesKey: #originalReference) ] { #category : #examples } -LeDatabasePropertyExamples >> databaseWithoutPersonalInfo [ - "Confirm that attachment properties don't include personal information when saved to disk" +LeDatabasePropertyExamples >> databaseWithPersonalInfo [ + "Check the personal information saved to disk when savePersonalInformation is true" - | testAttachment pathString properties | + | testAttachment pathString properties dbProperties | memStore := FileSystem memory root / 'db'. memStore ensureCreateDirectory. testAttachment := memStore parent / 'test.attachment'. testAttachment ensureCreateFile. database := LeLocalStoreLoad current loadAndMonitorFrom: memStore. + database monitor savePersonalInformation: true. pathString := database addAttachmentByCopy: testAttachment. properties := STONJSON fromString: ((memStore / pathString) parent / LeAttachment basename) contents. - self deny: (properties includesKey: #originalReference) + dbProperties := STONJSON + fromString: (memStore / database properties propertiesBasename) contents. + + self assert: (dbProperties at: #savePersonalInformation) equals: true. + self assert: (properties includesKey: #originalReference). + self + assert: ((properties at: #originalReference) at: #filename) + equals: '/test.attachment' ] diff --git a/src/Lepiter-Store/LeDatabaseReload.class.st b/src/Lepiter-Store/LeDatabaseReload.class.st index 64f678ad0..f2459b053 100644 --- a/src/Lepiter-Store/LeDatabaseReload.class.st +++ b/src/Lepiter-Store/LeDatabaseReload.class.st @@ -25,7 +25,7 @@ Class { 'shouldDeletePages', 'contentReloadErrorStrategy' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeDatabaseReloadReason.class.st b/src/Lepiter-Store/LeDatabaseReloadReason.class.st index 2046de4c4..5bfc686d4 100644 --- a/src/Lepiter-Store/LeDatabaseReloadReason.class.st +++ b/src/Lepiter-Store/LeDatabaseReloadReason.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'database' ], - #category : #'Lepiter-Store-Reload - Optimizations' + #category : 'Lepiter-Store-Reload - Optimizations' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeDatabaseReloaded.class.st b/src/Lepiter-Store/LeDatabaseReloaded.class.st index 198409b67..3caab3fa3 100644 --- a/src/Lepiter-Store/LeDatabaseReloaded.class.st +++ b/src/Lepiter-Store/LeDatabaseReloaded.class.st @@ -5,7 +5,7 @@ Class { 'database', 'logicalDatabase' ], - #category : #'Lepiter-Store-Reload - Announcements' + #category : 'Lepiter-Store-Reload - Announcements' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeDatabaseStore.class.st b/src/Lepiter-Store/LeDatabaseStore.class.st index 9895548b0..81e943b98 100644 --- a/src/Lepiter-Store/LeDatabaseStore.class.st +++ b/src/Lepiter-Store/LeDatabaseStore.class.st @@ -6,7 +6,7 @@ Class { 'storage', 'dbProperties' ], - #category : #'Lepiter-Store-Model' + #category : 'Lepiter-Store-Model' } { #category : #'instance creation' } diff --git a/src/Lepiter-Store/LeDatabaseUpToDateReloadReason.class.st b/src/Lepiter-Store/LeDatabaseUpToDateReloadReason.class.st index 0491daf04..1b36262c2 100644 --- a/src/Lepiter-Store/LeDatabaseUpToDateReloadReason.class.st +++ b/src/Lepiter-Store/LeDatabaseUpToDateReloadReason.class.st @@ -1,7 +1,7 @@ Class { #name : #LeDatabaseUpToDateReloadReason, #superclass : #LeDatabaseReloadReason, - #category : #'Lepiter-Store-Reload - Optimizations' + #category : 'Lepiter-Store-Reload - Optimizations' } { #category : #printing } diff --git a/src/Lepiter-Store/LeDatabaseWithLocalMonitorExamples.class.st b/src/Lepiter-Store/LeDatabaseWithLocalMonitorExamples.class.st index 4094209db..9bcda146d 100644 --- a/src/Lepiter-Store/LeDatabaseWithLocalMonitorExamples.class.st +++ b/src/Lepiter-Store/LeDatabaseWithLocalMonitorExamples.class.st @@ -5,7 +5,7 @@ I am used by other examples, providing a {{gtClass:LeDatabase}} with {{gtClass:L Class { #name : #LeDatabaseWithLocalMonitorExamples, #superclass : #Object, - #category : #'Lepiter-Store-Local-Examples' + #category : 'Lepiter-Store-Local-Examples' } { #category : #'examples - database' } diff --git a/src/Lepiter-Store/LeDbVersion.class.st b/src/Lepiter-Store/LeDbVersion.class.st index 2a895b098..07a99e2a6 100644 --- a/src/Lepiter-Store/LeDbVersion.class.st +++ b/src/Lepiter-Store/LeDbVersion.class.st @@ -27,7 +27,7 @@ Class { 'major', 'minor' ], - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #'instance creation' } diff --git a/src/Lepiter-Store/LeForkDebuggerContentReloadErrorStrategy.class.st b/src/Lepiter-Store/LeForkDebuggerContentReloadErrorStrategy.class.st index ac4793ecb..5c97cedf8 100644 --- a/src/Lepiter-Store/LeForkDebuggerContentReloadErrorStrategy.class.st +++ b/src/Lepiter-Store/LeForkDebuggerContentReloadErrorStrategy.class.st @@ -5,7 +5,7 @@ If there is no handler, it forks the exception so the load can continue. Class { #name : #LeForkDebuggerContentReloadErrorStrategy, #superclass : #LeDatabaseContentReloadErrorStrategy, - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #action } diff --git a/src/Lepiter-Store/LeJsonV3.class.st b/src/Lepiter-Store/LeJsonV3.class.st index db6078b06..8e75dede3 100644 --- a/src/Lepiter-Store/LeJsonV3.class.st +++ b/src/Lepiter-Store/LeJsonV3.class.st @@ -21,7 +21,7 @@ Class { #superclass : #Object, #traits : 'TGtUniqueInstance', #classTraits : 'TGtUniqueInstance classTrait', - #category : #'Lepiter-Store-JSONV3' + #category : 'Lepiter-Store-JSONV3' } { #category : #private } diff --git a/src/Lepiter-Store/LeJsonV3000Updater.class.st b/src/Lepiter-Store/LeJsonV3000Updater.class.st index 9738a7d62..c6ac73147 100644 --- a/src/Lepiter-Store/LeJsonV3000Updater.class.st +++ b/src/Lepiter-Store/LeJsonV3000Updater.class.st @@ -1,7 +1,7 @@ Class { #name : #LeJsonV3000Updater, #superclass : #LeJsonV3SchemaUpdater, - #category : #'Lepiter-Store-JSONV3' + #category : 'Lepiter-Store-JSONV3' } { #category : #'accessing structure variables' } diff --git a/src/Lepiter-Store/LeJsonV3001Updater.class.st b/src/Lepiter-Store/LeJsonV3001Updater.class.st index 5afba0024..e5e923333 100644 --- a/src/Lepiter-Store/LeJsonV3001Updater.class.st +++ b/src/Lepiter-Store/LeJsonV3001Updater.class.st @@ -1,7 +1,7 @@ Class { #name : #LeJsonV3001Updater, #superclass : #LeJsonV3SchemaUpdater, - #category : #'Lepiter-Store-JSONV3' + #category : 'Lepiter-Store-JSONV3' } { #category : #'accessing structure variables' } diff --git a/src/Lepiter-Store/LeJsonV3002Updater.class.st b/src/Lepiter-Store/LeJsonV3002Updater.class.st index 5a1e8034d..1971bf7e4 100644 --- a/src/Lepiter-Store/LeJsonV3002Updater.class.st +++ b/src/Lepiter-Store/LeJsonV3002Updater.class.st @@ -5,7 +5,7 @@ Upgrade to V4.0. Class { #name : #LeJsonV3002Updater, #superclass : #LeJsonV3SchemaUpdater, - #category : #'Lepiter-Store-JSONV3' + #category : 'Lepiter-Store-JSONV3' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeJsonV3003Updater.class.st b/src/Lepiter-Store/LeJsonV3003Updater.class.st index 4b8da4cc7..a5db7b6ca 100644 --- a/src/Lepiter-Store/LeJsonV3003Updater.class.st +++ b/src/Lepiter-Store/LeJsonV3003Updater.class.st @@ -7,7 +7,7 @@ Upgrade 3.3 to 4.0. Class { #name : #LeJsonV3003Updater, #superclass : #LeJsonV3SchemaUpdater, - #category : #'Lepiter-Store-JSONV3' + #category : 'Lepiter-Store-JSONV3' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeJsonV3Examples.class.st b/src/Lepiter-Store/LeJsonV3Examples.class.st index bbeeb2b37..642c4e471 100644 --- a/src/Lepiter-Store/LeJsonV3Examples.class.st +++ b/src/Lepiter-Store/LeJsonV3Examples.class.st @@ -8,7 +8,7 @@ Class { #superclass : #Object, #traits : 'TAssertable', #classTraits : 'TAssertable classTrait', - #category : #'Lepiter-Store-Local-Examples' + #category : 'Lepiter-Store-Local-Examples' } { #category : #private } diff --git a/src/Lepiter-Store/LeJsonV3Reader.class.st b/src/Lepiter-Store/LeJsonV3Reader.class.st index 4e505b889..46751f978 100644 --- a/src/Lepiter-Store/LeJsonV3Reader.class.st +++ b/src/Lepiter-Store/LeJsonV3Reader.class.st @@ -31,7 +31,7 @@ Class { 'objects', 'typeMap' ], - #category : #'Lepiter-Store-JSONV3' + #category : 'Lepiter-Store-JSONV3' } { #category : #mapping } diff --git a/src/Lepiter-Store/LeJsonV3SchemaUpdater.class.st b/src/Lepiter-Store/LeJsonV3SchemaUpdater.class.st index d0cf14800..119c13e6f 100644 --- a/src/Lepiter-Store/LeJsonV3SchemaUpdater.class.st +++ b/src/Lepiter-Store/LeJsonV3SchemaUpdater.class.st @@ -9,7 +9,7 @@ A subclass is created for each step of the upgrade, allowing the database to be Class { #name : #LeJsonV3SchemaUpdater, #superclass : #Object, - #category : #'Lepiter-Store-JSONV3' + #category : 'Lepiter-Store-JSONV3' } { #category : #'private - accessing' } diff --git a/src/Lepiter-Store/LeJsonV3Writer.class.st b/src/Lepiter-Store/LeJsonV3Writer.class.st index 462a9247d..fe10f29ec 100644 --- a/src/Lepiter-Store/LeJsonV3Writer.class.st +++ b/src/Lepiter-Store/LeJsonV3Writer.class.st @@ -17,7 +17,7 @@ Class { #instVars : [ 'firstMappedObject' ], - #category : #'Lepiter-Store-JSONV3' + #category : 'Lepiter-Store-JSONV3' } { #category : #'initialize-release' } diff --git a/src/Lepiter-Store/LeJsonV4.class.st b/src/Lepiter-Store/LeJsonV4.class.st index d6d5f0ed0..6e714ba1c 100644 --- a/src/Lepiter-Store/LeJsonV4.class.st +++ b/src/Lepiter-Store/LeJsonV4.class.st @@ -8,13 +8,35 @@ Class { 'newWriter', 'mutex' ], - #category : #'Lepiter-Store-JsonV4' + #category : 'Lepiter-Store-JsonV4' } +{ #category : #maintenance } +LeJsonV4 class >> addExplicitMappingFor: aClass to: selector [ + "Add the supplied class and all its subclasses to the specified pre-existing list of class names" + | existingNames newNames source protocol | + + existingNames := selector value: self. + newNames := aClass withAllSubclasses collect: #name. + protocol := (self class >> selector) protocol. + source := String streamContents: [ :stream | + stream + << selector; cr; + tab; + << ''; cr; + cr; + tab; + << '^ '; + << (existingNames, newNames) asSet asArray sorted storeString ]. + self class compile: source classified: protocol. + self cleanUp. +] + { #category : #accessing } LeJsonV4 class >> explicitClassNamesToMap [ + - ^ #(#AsyncFuturePendingTaskSignal #AsyncFutureSignal #BeaconLoggerSignal #BeaconSignal #BlBeaconTaskSignal #BlDevScripterSignal #BlDevScripterStepAboutToPlaySignal #BlDevScripterStepExceptionSignal #BlDevScripterStepFinishedSignal #BlDevScripterStepPulsationFinishedSignal #BlDevScripterStepPulsationTimeoutedSignal #BlDevScripterStepSignal #BlDragAndDropSignal #BlDragToSignal #BlElementDetachCompositionLayerSignal #BlElementNamedChildNotFoundSignal #BlElementNotFocusableSignal #BlElementOffsetCompositionLayerSignal #BlElementSignal #BlGotFocusSignal #BlImageCacheSignal #BlInfiniteDataSourceChangedSignal #BlInfiniteDataSourceItemsChangedSignal #BlInfiniteDataSourceSignal #BlInfiniteElementSignal #BlInfiniteLinearLayoutSignal #BlInfiniteLinearLayoutStateClearScrapSignal #BlInfiniteLinearLayoutStateSetScrapSignal #BlInfiniteRecyclerAboutToBindHolderForPositionSignal #BlInfiniteRecyclerAboutToRecycleInPoolSignal #BlInfiniteRecyclerAddedToAttachedScrapSignal #BlInfiniteRecyclerAddedToChangedScrapSignal #BlInfiniteRecyclerClearedAttachedScrapSignal #BlInfiniteRecyclerFetchHolderSignal #BlInfiniteRecyclerSignal #BlLostFocusSignal #BlMarkElementNeedsPaintSignal #BlNonUIProcessSignal #BlParallelUniverseDeferredActionAddedSignal #BlParallelUniverseHostSpaceCreatedSignal #BlParallelUniverseHostSpaceShownSignal #BlParallelUniverseHostStartRequestSignal #BlParallelUniverseHostStartedSignal #BlParallelUniverseOpenSpaceRequestSignal #BlParallelUniverseRunDeferredActionSignal #BlParallelUniverseSignal #BlParallelUniverseSpaceAddedSignal #BlParallelUniverseSpaceDetachSignal #BlParallelUniverseSpaceDispatchAddedToSceneSignal #BlParallelUniverseSpaceRootAssignedSignal #BlParallelUniverseSpaceSignal #BlParallelUniverseTryToRunDeferredActionsSignal #BlPulseStatSignal #BlRequestLayoutSignal #BlSpaceDetachedSignal #BlSpaceHostChangeSignal #BlSpaceRenderSignal #BlSpaceRenderedSignal #BlSpaceSignal #BlSpartaSpaceRendererInitializeSignal #BlTaskExecutionSignal #BlTextStylerRequestedSignal #BrAsyncElementFutureAboutToCancelPromiseSignal #BrAsyncElementFutureCompletedSuccessfullySignal #BrAsyncElementFutureReceivedSignal #BrAsyncElementFutureScheduledSignal #BrAsyncElementFutureSignal #BrAsyncElementFutureSkippedFutureSignal #BrAsyncElementFutureTerminatedUnsuccessfullySignal #BrAsyncElementFutureUpdateElementSignal #BrAsyncElementFutureUpdateElementSkippedSignal #BrAsyncElementPromiseElementUpdateSignal #BrAsyncElementPromiseInitializeElementErrorSignal #BrAsyncElementPromiseInitializeElementSignal #BrAsyncElementPromiseInitializeElementSuccessSignal #BrAsyncElementPromiseRequestUpdateSignal #BrAsyncElementPromiseSignal #BrCursorOutOfRangeSignal #BrElementUpdaterElementMayUpdateSignal #BrElementUpdaterEnqueuePostponedUpdateSignal #BrElementUpdaterEnqueueUpdateSignal #BrElementUpdaterPerformUpdateSignal #BrElementUpdaterSignal #BrTextEditorAttributesModifiedSignal #BrTextEditorCommandSignal #BrTextEditorHolderCommandSignal #BrTextEditorRecordDeselectionSignal #BrTextEditorRecordSelectionSignal #BrTextEditorResetCacheSignal #BrTextEditorSegmentAdornmentErrorSignal #BrTextEditorSegmentBuildSignal #BrTextEditorSegmentRecycleSignal #BrTextEditorSegmentSignal #BrTextEditorSegmentUpdateSignal #BrTextEditorSignal #BrTextStylerAsyncStrategySignal #BrTextStylerAsyncStylingFinished #BrTextStylerAsyncStylingStarted #BrTextStylerAsyncStylingSubmitted #ChromeIdleTimerSignal #ChromeReceivedMessageSignal #ChromeSignal #ChromeStringSignal #ContextStackSignal #CurrentProcessSignal #DAPMessageSignal #DummySignal #ExceptionSignal #GlutinEventSignal #GtAwsWebServiceCommandEndSignal #GtAwsWebServiceCommandSignal #GtAwsWebServiceCommandStartSignal #GtBeaconGenericLogSignal #GtBeaconLabelledLogSignal #GtBeaconLeJsonEncodingErrorSignal #GtBeaconMethodSignal #GtBeaconTypedLogSignal #GtCoderAddOnCreatedSignal #GtCoderAddOnSignal #GtCoderAddOnsComputationFinishedSignal #GtCoderAddOnsComputationSignal #GtCoderAddOnsComputationStartedSignal #GtCoderEvaluationStatusChangedSignal #GtCoderEvaluationStatusShowNotificationSignal #GtCoderIncomingEvaluationStatusSignal #GtCompletionApplyPreviewSignal #GtCompletionCancelPreviewSignal #GtConnectorBasicEventSignal #GtConnectorBasicSignal #GtConnectorContextEventSignal #GtConnectorEventSignal #GtDeDockerLogEntrySignal #GtDebuggerPharoMethodIndicatorSignal #GtDebuggerSignal #GtDebuggerStackElementBindCoderViewModelSignal #GtDebuggerStackElementFirstNonFilteredContextFoundSignal #GtDebuggerStackElementFirstNonFilteredContextPreloadSignal #GtDebuggerStackElementOnStackChangedSignal #GtDebuggerStackElementOnUpdateContentSignal #GtDebuggerStackElementOnUpdateDebuggerSignal #GtDebuggerStackElementOnUpdateSessionSignal #GtDependencyAnalyzerBrokenBaselineSignal #GtEpNilCommentSignal #GtExamplesReportExceptionSignal #GtExamplesReportRetrySignal #GtExamplesReportRunClassSignal #GtExamplesReportRunExampleSignal #GtExamplesReportRunPackageSignal #GtExamplesReportSignal #GtFilterItemsChangedSignal #GtFilterSignal #GtGemStoneBeaconSignal #GtGemStoneClassCategoryChangeCodeSyncSignal #GtGemStoneClassCodeSyncSignal #GtGemStoneClassCommentCodeSyncSignal #GtGemStoneClassDefinitionCodeSyncSignal #GtGemStoneClassRemovalCodeSyncSignal #GtGemStoneClassRenameCodeSyncSignal #GtGemStoneCodeSyncSignal #GtGemStoneCodeSyncStateSignal #GtGemStoneIgnoredCodeSyncSignal #GtGemStoneKeepAlivePollCompletedSignal #GtGemStoneKeepAlivePollSignal #GtGemStoneKeepAlivePollStartedSignal #GtGemStoneKeepAliveSessionCleanSignal #GtGemStoneKeepAliveSessionEndSignal #GtGemStoneKeepAliveSessionErrorSignal #GtGemStoneKeepAliveSessionModifiedSignal #GtGemStoneKeepAliveSessionPollStartedSignal #GtGemStoneKeepAliveSessionSignal #GtGemStoneKeepAliveSignal #GtGemStoneMethodCodeSyncSignal #GtGemStoneSessionAutoCommitSignal #GtGemStoneSessionEvaluationDeliverySignal #GtGemStoneSessionEvaluationDeserializeResultSignal #GtGemStoneSessionEvaluationExecutionEndSignal #GtGemStoneSessionEvaluationExecutionSignal #GtGemStoneSessionEvaluationExecutionStartSignal #GtGemStoneSessionEvaluationPerformExecutionStartSignal #GtGemStoneSessionEvaluationPromiseWaitSignal #GtGemStoneSessionEvaluationResolveBindingsSignal #GtGemStoneSessionEvaluationScriptExecutionStartSignal #GtGemStoneSessionEvaluationSignal #GtGemStoneSessionSignal #GtGitCliContextStackSignal #GtGitCliSignal #GtGradCircleLayoutRadiusSignal #GtGradHierarchicalLayoutCurrentComponentSignal #GtGradHierarchicalLayoutInitialRanksSignal #GtGradHierarchicalLayoutLayeringStageOutputSignal #GtGradKamadaKawaiDistanceMatrixSignal #GtGradKamadaKawaiInitialPositionSetSignal #GtGradKamadaKawaiLayoutDeltasSignal #GtGradProcessingTreeSignal #GtGradTreeLayoutCorrectionSignal #GtGradTreeLayoutNodeProcessingFinishedSignal #GtGradTreeLayoutNodeProcessingStartedSignal #GtGradTreeLayoutOffsetSetSignal #GtInspectorSampleBOneForwardObjectSignal #GtInspectorSelectTabSignal #GtJustContextStackSignal #GtLSPServerIOSignal #GtLSPServerInputSignal #GtLSPServerOutputSignal #GtLlmFunctionCallAboutToBePerformedSignal #GtLlmFunctionCallPerformedSignal #GtLlmFunctionCallSignal #GtLlmStylerSignal #GtLoadItemsStackSignal #GtMondrianEdgeNotCreated #GtMyExampleBeaconSignal #GtMyExampleBeaconStartSignal #GtMyExampleBeaconStopSignal #GtMyExampleLabelledBeaconSignal #GtNetworkNoProxySetSignal #GtNetworkProxyInvalidEnvironmentVariableValueSignal #GtNetworkProxySetSignal #GtNetworkProxySignal #GtNetworkProxyUndefinedEnvironmentVariableSignal #GtNotificationIcebergCredentialsSignal #GtPharoCodersStreamChangedSignal #GtPharoExampleSuiteMediatorSignal #GtPharoFlushChangesFileSignal #GtPharoMethodCoderAddedSignal #GtPharoMethodCoderAnnouncementSignal #GtPharoMethodCoderCompiledSignal #GtPharoMethodCoderModifiedSignal #GtPharoMethodCoderRemovedSignal #GtPharoNewCodersStreamSignal #GtPharoStreamingMethodsChangedSignal #GtPharoStreamingMethodsCoderElementSignal #GtPharoStreamingMethodsFiltersElementStencilDefaultChangedSignal #GtPharoStreamingMethodsScrollToTargetSignal #GtPharoSubscribedToMethodCoderSignal #GtPharoUserMessageSignal #GtPhlowApplyToolSelectionSignal #GtPhlowForwarderFutureElementSignal #GtPhlowStoreToolSelectionSignal #GtRemoteRunnerAnnouncement #GtRemoteRunnerSignal #GtRemoteRunnerTraceAnnouncement #GtRlActionExecutionCompletedSignal #GtRlActionExecutionSignal #GtRlActionExecutionStartedSignal #GtRlActionSignal #GtRlClonerBaselineLoadCompletedSignal #GtRlClonerBaselineLoadSignal #GtRlClonerBaselineLoadStartedSignal #GtRlClonerBaselinePackageLoadSignal #GtRlClonerBaselineSignal #GtRlClonerBaselineSkipLoadSignal #GtRlCreateReleaseActionSignal #GtRlLoaderDirectiveActionExecutionCompletedSignal #GtRlLoaderDirectiveActionExecutionStartedSignal #GtRlLoaderDirectiveActionSignal #GtRlProjectLinkWithRepositorySignal #GtRlProjectReleaseStrategySignal #GtRlProjectReleaseStructureSignal #GtRlReleaseConfigurationSignal #GtRlReleaserSignal #GtRlRepositoryActiveReleaseVersionSignal #GtRlRepositoryPassiveReleaseVersionSignal #GtRrAnnouncementQueueDeliveryAnnouncement #GtRrAnnouncementQueueDeliveryCompletedSignal #GtRrAnnouncementQueueDeliveryInitiatedSignal #GtRrAnnouncementQueuePullCompletedSignal #GtRrAnnouncementQueuePullInitiatedSignal #GtRrAnnouncementQueuePullSignal #GtRrAnnouncementQueueSignal #GtRrChangesSyncRetrievalCompletedSignal #GtRrChangesSyncRetrievalSignal #GtRrChangesSyncRetrievalStartingSignal #GtRrCodeSyncApplyChangeCompletedSignal #GtRrCodeSyncApplyChangeSignal #GtRrCodeSyncApplyChangeStartingSignal #GtRrCodeSyncJobSignal #GtRrCodeSyncSignal #GtRrExampleStringSignal #GtRrJobAnnouncement #GtRrJobCancelledAnnouncement #GtRrJobCompletedAnnouncement #GtRrJobShutdownSignal #GtRrJobStartedAnnouncement #GtRrJobStartupAndShutdownSignal #GtRrJobStartupSignal #GtRrJobTerminatedAnnouncement #GtRrMessageStatsSignal #GtRrMqQueueTaskCompletedSignal #GtRrMqQueueTaskSignal #GtRrMqQueueTaskStartingSignal #GtRrMqTaskMissingSignal #GtRrNextTaskCompletedSignal #GtRrNextTaskFinishedWithWorkerSignal #GtRrNextTaskSignal #GtRrNextTaskStartingSignal #GtRrNextTaskWorkerNotRegisteredSignal #GtRrRegisterWorkerCompletedSignal #GtRrRegisterWorkerRejectedSignal #GtRrRegisterWorkerSignal #GtRrRegisterWorkerStartingSignal #GtRrResultProcessingErrorAnnouncement #GtRrStatusMessageChangedAnnouncement #GtRrStompMqCommandCallbackCompletedSignal #GtRrStompMqCommandCallbackSignal #GtRrStompMqCommandCallbackStartingSignal #GtRrStompMqSendMessageCompletedSignal #GtRrStompMqSendMessageSignal #GtRrStompMqSendMessageStartingSignal #GtRrStompMqTaskCallbackCompletedSignal #GtRrStompMqTaskCallbackSignal #GtRrStompMqTaskCallbackStartingSignal #GtRrStopRegisteredWorkerCompletedSignal #GtRrStopRegisteredWorkerSignal #GtRrStopRegisteredWorkerStartingSignal #GtRrStopRegisteredWorkersCompletedSignal #GtRrStopRegisteredWorkersSignal #GtRrStopRegisteredWorkersStartingSignal #GtRrSyslogSignal #GtRrTaskAnnouncement #GtRrTaskCompletedAnnouncement #GtRrTaskContext #GtRrTaskDoneCompletedSignal #GtRrTaskDoneSignal #GtRrTaskDoneStartingSignal #GtRrTaskFailedAnnouncement #GtRrTaskFinishedAnnouncement #GtRrTaskStartedAnnouncement #GtRrTimeoutAnnouncement #GtRrTimeoutCompletedAnnouncement #GtRrTimeoutScheduledAnnouncement #GtRrTimeoutStartedAnnouncement #GtRrWorkerAnnouncement #GtRrWorkerApplyChangeCompletedSignal #GtRrWorkerApplyChangeSignal #GtRrWorkerApplyChangeStartingSignal #GtRrWorkerApplyChangesCompletedSignal #GtRrWorkerApplyChangesSignal #GtRrWorkerApplyChangesStartingSignal #GtRrWorkerChangesSignal #GtRrWorkerChangesSyncAnnouncement #GtRrWorkerChangesSyncErrorAnnouncement #GtRrWorkerChangesSyncHaveEventsAnnouncement #GtRrWorkerChangesSyncStartAnnouncement #GtRrWorkerChangesSyncedAnnouncement #GtRrWorkerCheckCompletedSignal #GtRrWorkerCheckSignal #GtRrWorkerCheckStartingSignal #GtRrWorkerCliCompletedSignal #GtRrWorkerCliSignal #GtRrWorkerCliStartingSignal #GtRrWorkerCommandAnnouncement #GtRrWorkerCommandCompletedAnnouncement #GtRrWorkerCommandStartedAnnouncement #GtRrWorkerConnection #GtRrWorkerControlChannelRegisteredAnnouncement #GtRrWorkerFilterChangesCompletedSignal #GtRrWorkerFilterChangesSignal #GtRrWorkerFilterChangesStartingSignal #GtRrWorkerHeartbeatCompletedSignal #GtRrWorkerHeartbeatSignal #GtRrWorkerHeatbeatStartingSignal #GtRrWorkerOperationAnnouncement #GtRrWorkerOperationShutdownAnnouncement #GtRrWorkerOperationSignal #GtRrWorkerRegisterCompletedSignal #GtRrWorkerRegisterSignal #GtRrWorkerRegisterStartingSignal #GtRrWorkerRegisteredAnnouncement #GtRrWorkerRegistrationRefusedAnnouncement #GtRrWorkerReplacedAnnouncement #GtRrWorkerResponseConfirmedSignal #GtRrWorkerResponseErrorSignal #GtRrWorkerResponseSentSignal #GtRrWorkerResultEntry #GtRrWorkerRetrieveChangesCompletedSignal #GtRrWorkerRetrieveChangesSignal #GtRrWorkerRetrieveChangesStartingSignal #GtRrWorkerTaskCompletedSignal #GtRrWorkerTaskProcessErrorAnnouncement #GtRrWorkerTaskSignal #GtRrWorkerTaskStartingSignal #GtRrWorkerTimeoutAnnouncement #GtRrWorkerTraceAnnouncement #GtRrWorkerUnregisteredAnnouncement #GtRrWorkerWaitForTaskAnnouncement #GtSourceCoderProcessInDebuggerSignal #GtStrictSymbolEqualityArgumentSignal #GtStylerErrorSignal #GtTextualCoderEditorElementAddedToSceneGraphSignal #GtTextualCoderEditorElementAttachedSpaceSignal #GtTextualCoderEditorElementDetachedSpaceSignal #GtTextualCoderEditorElementRemovedFromSceneGraphSignal #GtTextualCoderEditorElementSignal #GtTextualCoderEditorElementUpdateCursorsSignal #GtTextualCoderEditorElementUpdateStateSignal #GtTextualCoderEditorElementUpdateTextSignal #GtVirtualMachineDebugSignal #GtVirtualMachineErrorSignal #GtVirtualMachineGenericSignal #GtVirtualMachineInfoSignal #GtVirtualMachineLevelSignal #GtVirtualMachineSignal #GtVirtualMachineTraceSignal #GtVirtualMachineWarningSignal #LanguageLinkBrokerHandleMessage #LanguageLinkBrokerSendMessage #LanguageLinkCommandSignal #LanguageLinkCommunicationsSignal #LanguageLinkDeliverCommandSignal #LanguageLinkEventSignal #LanguageLinkMsgPackPharoBrokerSignal #LanguageLinkSendCommandSignal #LanguageLinkSignal #LanguageLinkSocketErrorSignal #LeDatabaseSidebarGroupedListRequestUpdateSelectionSignal #LeDatabaseSidebarGroupedListScrolledToIndexSignal #LeDatabaseSidebarGroupedListUpdateSelectionSignal #LeLocalStoreSignal #LePathFinderSignal #LeReferenceMaintenanceSignal #LeReloadOutOfDateReasonSignal #LeReloadReasonSignal #LeReloadUpToDateReasonSignal #LeTextSnippetUpdateTextAssignSignal #LeTextSnippetUpdateTextScheduleSignal #LeTextSnippetUpdateTextSignal #LeZincSignal #LlEsCheckServerReadyCompletedSignal #LlEsCheckServerReadySignal #LlEsCheckServerReadyStartingSignal #LlEsConnectCompletedSignal #LlEsConnectSignal #LlEsConnectStartingSignal #MethodStackSignal #PharoLinkBadResponseSignal #PharoLinkErrorRequestSignal #PharoLinkEvalSignal #PharoLinkNetworkErrorSignal #PharoLinkRegistryUnknownIdSignal #PharoLinkRequestSignal #PharoLinkResponseSignal #PharoLinkServerSignal #PharoLinkSignal #SkiaPerformanceSignal #SkiaSignal #SkiaStringToTextRunBoundsAsRectangleSignal #SkiaStringToTextRunComputeGlyphsSignal #SkiaStringToTextRunGlyphsAsByteArraySignal #SkiaStringToTextRunSignal #SkiaStringToTextRunUtfConvertionSignal #StampHeartbeatSignal #StampSignals #StreamLoggerFlusherErrorSignal #StringSignal #TaskAtErrorSignal #TelemetrySignal #ThisContextSignal #WrapperSignal #ZnLogEventSignal) + ^ #(#AsyncFuturePendingTaskSignal #AsyncFutureSignal #BeaconLoggerSignal #BeaconSignal #BlBeaconTaskSignal #BlDevScripterSignal #BlDevScripterStepAboutToPlaySignal #BlDevScripterStepExceptionSignal #BlDevScripterStepFinishedSignal #BlDevScripterStepPulsationFinishedSignal #BlDevScripterStepPulsationTimeoutedSignal #BlDevScripterStepSignal #BlDragAndDropSignal #BlDragToSignal #BlElementDetachCompositionLayerSignal #BlElementNamedChildNotFoundSignal #BlElementNotFocusableSignal #BlElementOffsetCompositionLayerSignal #BlElementSignal #BlGotFocusSignal #BlImageCacheSignal #BlInfiniteDataSourceChangedSignal #BlInfiniteDataSourceItemsChangedSignal #BlInfiniteDataSourceSignal #BlInfiniteElementSignal #BlInfiniteLinearLayoutSignal #BlInfiniteLinearLayoutStateClearScrapSignal #BlInfiniteLinearLayoutStateSetScrapSignal #BlInfiniteRecyclerAboutToBindHolderForPositionSignal #BlInfiniteRecyclerAboutToRecycleInPoolSignal #BlInfiniteRecyclerAddedToAttachedScrapSignal #BlInfiniteRecyclerAddedToChangedScrapSignal #BlInfiniteRecyclerClearedAttachedScrapSignal #BlInfiniteRecyclerFetchHolderSignal #BlInfiniteRecyclerSignal #BlLostFocusSignal #BlMarkElementNeedsPaintSignal #BlNonUIProcessSignal #BlParallelUniverseDeferredActionAddedSignal #BlParallelUniverseHostSpaceCreatedSignal #BlParallelUniverseHostSpaceShownSignal #BlParallelUniverseHostStartedSignal #BlParallelUniverseHostStartRequestSignal #BlParallelUniverseOpenSpaceRequestSignal #BlParallelUniverseRunDeferredActionSignal #BlParallelUniverseSignal #BlParallelUniverseSpaceAddedSignal #BlParallelUniverseSpaceDetachSignal #BlParallelUniverseSpaceDispatchAddedToSceneSignal #BlParallelUniverseSpaceRootAssignedSignal #BlParallelUniverseSpaceSignal #BlParallelUniverseTryToRunDeferredActionsSignal #BlPulseStatSignal #BlRequestLayoutSignal #BlSpaceDetachedSignal #BlSpaceHostChangeSignal #BlSpaceRenderedSignal #BlSpaceRenderSignal #BlSpaceSignal #BlSpartaSpaceRendererInitializeSignal #BlTaskExecutionSignal #BlTextStylerRequestedSignal #BrAsyncElementFutureAboutToCancelPromiseSignal #BrAsyncElementFutureCompletedSuccessfullySignal #BrAsyncElementFutureReceivedSignal #BrAsyncElementFutureScheduledSignal #BrAsyncElementFutureSignal #BrAsyncElementFutureSkippedFutureSignal #BrAsyncElementFutureTerminatedUnsuccessfullySignal #BrAsyncElementFutureUpdateElementSignal #BrAsyncElementFutureUpdateElementSkippedSignal #BrAsyncElementPromiseElementUpdateSignal #BrAsyncElementPromiseInitializeElementErrorSignal #BrAsyncElementPromiseInitializeElementSignal #BrAsyncElementPromiseInitializeElementSuccessSignal #BrAsyncElementPromiseRequestUpdateSignal #BrAsyncElementPromiseSignal #BrCursorOutOfRangeSignal #BrElementUpdaterElementMayUpdateSignal #BrElementUpdaterEnqueuePostponedUpdateSignal #BrElementUpdaterEnqueueUpdateSignal #BrElementUpdaterPerformUpdateSignal #BrElementUpdaterSignal #BrTextEditorAttributesModifiedSignal #BrTextEditorCommandSignal #BrTextEditorHolderCommandSignal #BrTextEditorRecordDeselectionSignal #BrTextEditorRecordSelectionSignal #BrTextEditorResetCacheSignal #BrTextEditorSegmentAdornmentErrorSignal #BrTextEditorSegmentBuildSignal #BrTextEditorSegmentRecycleSignal #BrTextEditorSegmentSignal #BrTextEditorSegmentUpdateSignal #BrTextEditorSignal #BrTextStylerAsyncStrategySignal #BrTextStylerAsyncStylingFinished #BrTextStylerAsyncStylingStarted #BrTextStylerAsyncStylingSubmitted #ChromeIdleTimerSignal #ChromeReceivedMessageSignal #ChromeSignal #ChromeStringSignal #ContextStackSignal #CurrentProcessSignal #DAPMessageSignal #DummySignal #ExceptionSignal #GlutinEventSignal #GtAwsCliArgument #GtAwsCliArguments #GtAwsCliFlag #GtAwsWebServiceCommandEndSignal #GtAwsWebServiceCommandSignal #GtAwsWebServiceCommandStartSignal #GtBeaconGenericLogSignal #GtBeaconLabelledLogSignal #GtBeaconLeJsonEncodingErrorSignal #GtBeaconMethodSignal #GtBeaconTypedLogSignal #GtCoderAddOnCreatedSignal #GtCoderAddOnsComputationFinishedSignal #GtCoderAddOnsComputationSignal #GtCoderAddOnsComputationStartedSignal #GtCoderAddOnSignal #GtCoderEvaluationStatusChangedSignal #GtCoderEvaluationStatusShowNotificationSignal #GtCoderIncomingEvaluationStatusSignal #GtCompletionApplyPreviewSignal #GtCompletionCancelPreviewSignal #GtConnectorBasicEventSignal #GtConnectorBasicSignal #GtConnectorContextEventSignal #GtConnectorEventSignal #GtDebuggerPharoMethodIndicatorSignal #GtDebuggerSignal #GtDebuggerStackElementBindCoderViewModelSignal #GtDebuggerStackElementFirstNonFilteredContextFoundSignal #GtDebuggerStackElementFirstNonFilteredContextPreloadSignal #GtDebuggerStackElementOnStackChangedSignal #GtDebuggerStackElementOnUpdateContentSignal #GtDebuggerStackElementOnUpdateDebuggerSignal #GtDebuggerStackElementOnUpdateSessionSignal #GtDeDockerLogEntrySignal #GtDependencyAnalyzerBrokenBaselineSignal #GtEpNilCommentSignal #GtExamplesReportExceptionSignal #GtExamplesReportRetrySignal #GtExamplesReportRunClassSignal #GtExamplesReportRunExampleSignal #GtExamplesReportRunPackageSignal #GtExamplesReportSignal #GtFilterItemsChangedSignal #GtFilterSignal #GtGemStoneBeaconSignal #GtGemStoneClassCategoryChangeCodeSyncSignal #GtGemStoneClassCodeSyncSignal #GtGemStoneClassCommentCodeSyncSignal #GtGemStoneClassDefinitionCodeSyncSignal #GtGemStoneClassRemovalCodeSyncSignal #GtGemStoneClassRenameCodeSyncSignal #GtGemStoneCodeSyncSignal #GtGemStoneCodeSyncStateSignal #GtGemStoneIgnoredCodeSyncSignal #GtGemStoneKeepAlivePollCompletedSignal #GtGemStoneKeepAlivePollSignal #GtGemStoneKeepAlivePollStartedSignal #GtGemStoneKeepAliveSessionCleanSignal #GtGemStoneKeepAliveSessionEndSignal #GtGemStoneKeepAliveSessionErrorSignal #GtGemStoneKeepAliveSessionModifiedSignal #GtGemStoneKeepAliveSessionPollStartedSignal #GtGemStoneKeepAliveSessionSignal #GtGemStoneKeepAliveSignal #GtGemStoneMethodCodeSyncSignal #GtGemStoneSessionAutoCommitSignal #GtGemStoneSessionEvaluationDeliverySignal #GtGemStoneSessionEvaluationDeserializeResultSignal #GtGemStoneSessionEvaluationExecutionEndSignal #GtGemStoneSessionEvaluationExecutionSignal #GtGemStoneSessionEvaluationExecutionStartSignal #GtGemStoneSessionEvaluationPerformExecutionStartSignal #GtGemStoneSessionEvaluationPromiseWaitSignal #GtGemStoneSessionEvaluationResolveBindingsSignal #GtGemStoneSessionEvaluationScriptExecutionStartSignal #GtGemStoneSessionEvaluationSignal #GtGemStoneSessionSignal #GtGitCliContextStackSignal #GtGitCliSignal #GtGradCircleLayoutRadiusSignal #GtGradHierarchicalLayoutCurrentComponentSignal #GtGradHierarchicalLayoutInitialRanksSignal #GtGradHierarchicalLayoutLayeringStageOutputSignal #GtGradKamadaKawaiDistanceMatrixSignal #GtGradKamadaKawaiInitialPositionSetSignal #GtGradKamadaKawaiLayoutDeltasSignal #GtGradProcessingTreeSignal #GtGradTreeLayoutCorrectionSignal #GtGradTreeLayoutNodeProcessingFinishedSignal #GtGradTreeLayoutNodeProcessingStartedSignal #GtGradTreeLayoutOffsetSetSignal #GtInspectorSampleBOneForwardObjectSignal #GtInspectorSelectTabSignal #GtJustContextStackSignal #GtLlmFunctionCallAboutToBePerformedSignal #GtLlmFunctionCallPerformedSignal #GtLlmFunctionCallSignal #GtLlmStylerSignal #GtLoadItemsStackSignal #GtLSPServerInputSignal #GtLSPServerIOSignal #GtLSPServerOutputSignal #GtMondrianEdgeNotCreated #GtMyExampleBeaconSignal #GtMyExampleBeaconStartSignal #GtMyExampleBeaconStopSignal #GtMyExampleLabelledBeaconSignal #GtNetworkNoProxySetSignal #GtNetworkProxyInvalidEnvironmentVariableValueSignal #GtNetworkProxySetSignal #GtNetworkProxySignal #GtNetworkProxyUndefinedEnvironmentVariableSignal #GtNotificationIcebergCredentialsSignal #GtPharoCodersStreamChangedSignal #GtPharoExampleSuiteMediatorSignal #GtPharoFlushChangesFileSignal #GtPharoMethodCoderAddedSignal #GtPharoMethodCoderAnnouncementSignal #GtPharoMethodCoderCompiledSignal #GtPharoMethodCoderModifiedSignal #GtPharoMethodCoderRemovedSignal #GtPharoNewCodersStreamSignal #GtPharoStreamingMethodsChangedSignal #GtPharoStreamingMethodsCoderElementSignal #GtPharoStreamingMethodsFiltersElementStencilDefaultChangedSignal #GtPharoStreamingMethodsScrollToTargetSignal #GtPharoSubscribedToMethodCoderSignal #GtPharoUserMessageSignal #GtPhlowApplyToolSelectionSignal #GtPhlowForwarderFutureElementSignal #GtPhlowStoreToolSelectionSignal #GtRemoteRunnerAnnouncement #GtRemoteRunnerSignal #GtRemoteRunnerTraceAnnouncement #GtRlActionExecutionCompletedSignal #GtRlActionExecutionSignal #GtRlActionExecutionStartedSignal #GtRlActionSignal #GtRlClonerBaselineLoadCompletedSignal #GtRlClonerBaselineLoadSignal #GtRlClonerBaselineLoadStartedSignal #GtRlClonerBaselinePackageLoadSignal #GtRlClonerBaselineSignal #GtRlClonerBaselineSkipLoadSignal #GtRlCreateReleaseActionSignal #GtRlLoaderDirectiveActionExecutionCompletedSignal #GtRlLoaderDirectiveActionExecutionStartedSignal #GtRlLoaderDirectiveActionSignal #GtRlProjectLinkWithRepositorySignal #GtRlProjectReleaseStrategySignal #GtRlProjectReleaseStructureSignal #GtRlReleaseConfigurationSignal #GtRlReleaserSignal #GtRlRepositoryActiveReleaseVersionSignal #GtRlRepositoryPassiveReleaseVersionSignal #GtRrAnnouncementQueueDeliveryAnnouncement #GtRrAnnouncementQueueDeliveryCompletedSignal #GtRrAnnouncementQueueDeliveryInitiatedSignal #GtRrAnnouncementQueuePullCompletedSignal #GtRrAnnouncementQueuePullInitiatedSignal #GtRrAnnouncementQueuePullSignal #GtRrAnnouncementQueueSignal #GtRrChangesSyncRetrievalCompletedSignal #GtRrChangesSyncRetrievalSignal #GtRrChangesSyncRetrievalStartingSignal #GtRrCodeSyncApplyChangeCompletedSignal #GtRrCodeSyncApplyChangeSignal #GtRrCodeSyncApplyChangeStartingSignal #GtRrCodeSyncJobSignal #GtRrCodeSyncSignal #GtRrExampleStringSignal #GtRrJobAnnouncement #GtRrJobCancelledAnnouncement #GtRrJobCompletedAnnouncement #GtRrJobShutdownSignal #GtRrJobStartedAnnouncement #GtRrJobStartupAndShutdownSignal #GtRrJobStartupSignal #GtRrJobTerminatedAnnouncement #GtRrMessageStatsSignal #GtRrMqQueueTaskCompletedSignal #GtRrMqQueueTaskSignal #GtRrMqQueueTaskStartingSignal #GtRrMqTaskMissingSignal #GtRrNextTaskCompletedSignal #GtRrNextTaskFinishedWithWorkerSignal #GtRrNextTaskSignal #GtRrNextTaskStartingSignal #GtRrNextTaskWorkerNotRegisteredSignal #GtRrRegisterWorkerCompletedSignal #GtRrRegisterWorkerRejectedSignal #GtRrRegisterWorkerSignal #GtRrRegisterWorkerStartingSignal #GtRrResultProcessingErrorAnnouncement #GtRrStatusMessageChangedAnnouncement #GtRrStompMqCommandCallbackCompletedSignal #GtRrStompMqCommandCallbackSignal #GtRrStompMqCommandCallbackStartingSignal #GtRrStompMqSendMessageCompletedSignal #GtRrStompMqSendMessageSignal #GtRrStompMqSendMessageStartingSignal #GtRrStompMqTaskCallbackCompletedSignal #GtRrStompMqTaskCallbackSignal #GtRrStompMqTaskCallbackStartingSignal #GtRrStopRegisteredWorkerCompletedSignal #GtRrStopRegisteredWorkersCompletedSignal #GtRrStopRegisteredWorkerSignal #GtRrStopRegisteredWorkersSignal #GtRrStopRegisteredWorkersStartingSignal #GtRrStopRegisteredWorkerStartingSignal #GtRrSyslogSignal #GtRrTaskAnnouncement #GtRrTaskCompletedAnnouncement #GtRrTaskContext #GtRrTaskDoneCompletedSignal #GtRrTaskDoneSignal #GtRrTaskDoneStartingSignal #GtRrTaskFailedAnnouncement #GtRrTaskFinishedAnnouncement #GtRrTaskStartedAnnouncement #GtRrTimeoutAnnouncement #GtRrTimeoutCompletedAnnouncement #GtRrTimeoutScheduledAnnouncement #GtRrTimeoutStartedAnnouncement #GtRrWorkerAnnouncement #GtRrWorkerApplyChangeCompletedSignal #GtRrWorkerApplyChangesCompletedSignal #GtRrWorkerApplyChangeSignal #GtRrWorkerApplyChangesSignal #GtRrWorkerApplyChangesStartingSignal #GtRrWorkerApplyChangeStartingSignal #GtRrWorkerChangesSignal #GtRrWorkerChangesSyncAnnouncement #GtRrWorkerChangesSyncedAnnouncement #GtRrWorkerChangesSyncErrorAnnouncement #GtRrWorkerChangesSyncHaveEventsAnnouncement #GtRrWorkerChangesSyncStartAnnouncement #GtRrWorkerCheckCompletedSignal #GtRrWorkerCheckSignal #GtRrWorkerCheckStartingSignal #GtRrWorkerCliCompletedSignal #GtRrWorkerCliSignal #GtRrWorkerCliStartingSignal #GtRrWorkerCommandAnnouncement #GtRrWorkerCommandCompletedAnnouncement #GtRrWorkerCommandStartedAnnouncement #GtRrWorkerConnection #GtRrWorkerControlChannelRegisteredAnnouncement #GtRrWorkerFilterChangesCompletedSignal #GtRrWorkerFilterChangesSignal #GtRrWorkerFilterChangesStartingSignal #GtRrWorkerHeartbeatCompletedSignal #GtRrWorkerHeartbeatSignal #GtRrWorkerHeatbeatStartingSignal #GtRrWorkerOperationAnnouncement #GtRrWorkerOperationShutdownAnnouncement #GtRrWorkerOperationSignal #GtRrWorkerRegisterCompletedSignal #GtRrWorkerRegisteredAnnouncement #GtRrWorkerRegisterSignal #GtRrWorkerRegisterStartingSignal #GtRrWorkerRegistrationRefusedAnnouncement #GtRrWorkerReplacedAnnouncement #GtRrWorkerResponseConfirmedSignal #GtRrWorkerResponseErrorSignal #GtRrWorkerResponseSentSignal #GtRrWorkerResultEntry #GtRrWorkerRetrieveChangesCompletedSignal #GtRrWorkerRetrieveChangesSignal #GtRrWorkerRetrieveChangesStartingSignal #GtRrWorkerTaskCompletedSignal #GtRrWorkerTaskProcessErrorAnnouncement #GtRrWorkerTaskSignal #GtRrWorkerTaskStartingSignal #GtRrWorkerTimeoutAnnouncement #GtRrWorkerTraceAnnouncement #GtRrWorkerUnregisteredAnnouncement #GtRrWorkerWaitForTaskAnnouncement #GtSourceCoderProcessInDebuggerSignal #GtStrictSymbolEqualityArgumentSignal #GtStylerErrorSignal #GtTextualCoderEditorElementAddedToSceneGraphSignal #GtTextualCoderEditorElementAttachedSpaceSignal #GtTextualCoderEditorElementDetachedSpaceSignal #GtTextualCoderEditorElementRemovedFromSceneGraphSignal #GtTextualCoderEditorElementSignal #GtTextualCoderEditorElementUpdateCursorsSignal #GtTextualCoderEditorElementUpdateStateSignal #GtTextualCoderEditorElementUpdateTextSignal #GtVirtualMachineDebugSignal #GtVirtualMachineErrorSignal #GtVirtualMachineGenericSignal #GtVirtualMachineInfoSignal #GtVirtualMachineLevelSignal #GtVirtualMachineSignal #GtVirtualMachineTraceSignal #GtVirtualMachineWarningSignal #LanguageLinkBrokerHandleMessage #LanguageLinkBrokerSendMessage #LanguageLinkCommandSignal #LanguageLinkCommunicationsSignal #LanguageLinkDeliverCommandSignal #LanguageLinkEventSignal #LanguageLinkMsgPackPharoBrokerSignal #LanguageLinkSendCommandSignal #LanguageLinkSignal #LanguageLinkSocketErrorSignal #LeDatabaseSidebarGroupedListRequestUpdateSelectionSignal #LeDatabaseSidebarGroupedListScrolledToIndexSignal #LeDatabaseSidebarGroupedListUpdateSelectionSignal #LeLocalStoreSignal #LePathFinderSignal #LeReferenceMaintenanceSignal #LeReloadOutOfDateReasonSignal #LeReloadReasonSignal #LeReloadUpToDateReasonSignal #LeTextSnippetUpdateTextAssignSignal #LeTextSnippetUpdateTextScheduleSignal #LeTextSnippetUpdateTextSignal #LeZincSignal #LlEsCheckServerReadyCompletedSignal #LlEsCheckServerReadySignal #LlEsCheckServerReadyStartingSignal #LlEsConnectCompletedSignal #LlEsConnectSignal #LlEsConnectStartingSignal #MethodStackSignal #PharoLinkBadResponseSignal #PharoLinkErrorRequestSignal #PharoLinkEvalSignal #PharoLinkNetworkErrorSignal #PharoLinkRegistryUnknownIdSignal #PharoLinkRequestSignal #PharoLinkResponseSignal #PharoLinkServerSignal #PharoLinkSignal #SkiaPerformanceSignal #SkiaSignal #SkiaStringToTextRunBoundsAsRectangleSignal #SkiaStringToTextRunComputeGlyphsSignal #SkiaStringToTextRunGlyphsAsByteArraySignal #SkiaStringToTextRunSignal #SkiaStringToTextRunUtfConvertionSignal #StampHeartbeatSignal #StampSignals #StreamLoggerFlusherErrorSignal #StringSignal #TaskAtErrorSignal #TelemetrySignal #ThisContextSignal #WrapperSignal #ZnLogEventSignal) ] { #category : #loading } @@ -70,9 +92,14 @@ LeJsonV4 >> deserialize: aStream [ { #category : #private } LeJsonV4 >> explicitClassesToMap [ - - ^ self class explicitClassNamesToMap collect: [ :name | - self class environment classOrTraitNamed: name ] + | selectors | + + selectors := self class class methods + select: [ :method | method hasPragmaNamed: #leJsonV4ClassNames ] + thenCollect: #selector. + ^ selectors flatCollect: [ :selector | + (selector value: self class) collect: [ :clsName | + self class environment classOrTraitNamed: clsName ] ] ] { #category : #initialization } diff --git a/src/Lepiter-Store/LeJsonV4000SnippetVisitor.class.st b/src/Lepiter-Store/LeJsonV4000SnippetVisitor.class.st index 06df29cd5..db4ee7b75 100644 --- a/src/Lepiter-Store/LeJsonV4000SnippetVisitor.class.st +++ b/src/Lepiter-Store/LeJsonV4000SnippetVisitor.class.st @@ -6,7 +6,7 @@ Class { 'updater', 'substitutions' ], - #category : #'Lepiter-Store-JsonV4' + #category : 'Lepiter-Store-JsonV4' } { #category : #initialization } diff --git a/src/Lepiter-Store/LeJsonV4000Updater.class.st b/src/Lepiter-Store/LeJsonV4000Updater.class.st index 9ab3c8465..49ae5a531 100644 --- a/src/Lepiter-Store/LeJsonV4000Updater.class.st +++ b/src/Lepiter-Store/LeJsonV4000Updater.class.st @@ -10,7 +10,7 @@ Class { #instVars : [ 'jsonPage' ], - #category : #'Lepiter-Store-JsonV4' + #category : 'Lepiter-Store-JsonV4' } { #category : #private } diff --git a/src/Lepiter-Store/LeJsonV4Examples.class.st b/src/Lepiter-Store/LeJsonV4Examples.class.st index bea10cb73..2c29ee65a 100644 --- a/src/Lepiter-Store/LeJsonV4Examples.class.st +++ b/src/Lepiter-Store/LeJsonV4Examples.class.st @@ -8,7 +8,7 @@ Class { #superclass : #Object, #traits : 'TAssertable', #classTraits : 'TAssertable classTrait', - #category : #'Lepiter-Store-Local-Examples' + #category : 'Lepiter-Store-Local-Examples' } { #category : #private } diff --git a/src/Lepiter-Store/LeJsonV4IntegrityExamples.class.st b/src/Lepiter-Store/LeJsonV4IntegrityExamples.class.st index d47927c4e..c20ee9b93 100644 --- a/src/Lepiter-Store/LeJsonV4IntegrityExamples.class.st +++ b/src/Lepiter-Store/LeJsonV4IntegrityExamples.class.st @@ -1,7 +1,7 @@ Class { #name : #LeJsonV4IntegrityExamples, #superclass : #Object, - #category : #'Lepiter-Store-Examples' + #category : 'Lepiter-Store-Examples' } { #category : #examples } diff --git a/src/Lepiter-Store/LeJsonV4LogicalPropertiesUpdater.class.st b/src/Lepiter-Store/LeJsonV4LogicalPropertiesUpdater.class.st index cb5f31dae..e654f42d0 100644 --- a/src/Lepiter-Store/LeJsonV4LogicalPropertiesUpdater.class.st +++ b/src/Lepiter-Store/LeJsonV4LogicalPropertiesUpdater.class.st @@ -23,7 +23,7 @@ The default actions are: Class { #name : #LeJsonV4LogicalPropertiesUpdater, #superclass : #Object, - #category : #'Lepiter-Store-JsonV4' + #category : 'Lepiter-Store-JsonV4' } { #category : #updating } diff --git a/src/Lepiter-Store/LeJsonV4Reader.class.st b/src/Lepiter-Store/LeJsonV4Reader.class.st index c7a024733..7eb7b2864 100644 --- a/src/Lepiter-Store/LeJsonV4Reader.class.st +++ b/src/Lepiter-Store/LeJsonV4Reader.class.st @@ -5,7 +5,7 @@ Class { 'objects', 'typeMap' ], - #category : #'Lepiter-Store-JsonV4' + #category : 'Lepiter-Store-JsonV4' } { #category : #mapping } diff --git a/src/Lepiter-Store/LeJsonV4SchemaUpdater.class.st b/src/Lepiter-Store/LeJsonV4SchemaUpdater.class.st index d482499e0..c706d49dc 100644 --- a/src/Lepiter-Store/LeJsonV4SchemaUpdater.class.st +++ b/src/Lepiter-Store/LeJsonV4SchemaUpdater.class.st @@ -11,7 +11,7 @@ A subclass is created for each step of the upgrade, allowing the database to be Class { #name : #LeJsonV4SchemaUpdater, #superclass : #Object, - #category : #'Lepiter-Store-JsonV4' + #category : 'Lepiter-Store-JsonV4' } { #category : #'private - accessing' } diff --git a/src/Lepiter-Store/LeJsonV4SerialisationExamples.class.st b/src/Lepiter-Store/LeJsonV4SerialisationExamples.class.st index 0399d7095..ad14afbe1 100644 --- a/src/Lepiter-Store/LeJsonV4SerialisationExamples.class.st +++ b/src/Lepiter-Store/LeJsonV4SerialisationExamples.class.st @@ -3,7 +3,7 @@ Class { #superclass : #Object, #traits : 'TAssertable', #classTraits : 'TAssertable classTrait', - #category : #'Lepiter-Store-Examples' + #category : 'Lepiter-Store-Examples' } { #category : #examples } diff --git a/src/Lepiter-Store/LeJsonV4Writer.class.st b/src/Lepiter-Store/LeJsonV4Writer.class.st index 8657d479d..0575663e2 100644 --- a/src/Lepiter-Store/LeJsonV4Writer.class.st +++ b/src/Lepiter-Store/LeJsonV4Writer.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'firstMappedObject' ], - #category : #'Lepiter-Store-JsonV4' + #category : 'Lepiter-Store-JsonV4' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeLocalAbstractProperties.class.st b/src/Lepiter-Store/LeLocalAbstractProperties.class.st index a4c2805e4..a5842a26b 100644 --- a/src/Lepiter-Store/LeLocalAbstractProperties.class.st +++ b/src/Lepiter-Store/LeLocalAbstractProperties.class.st @@ -1,7 +1,7 @@ Class { #name : #LeLocalAbstractProperties, #superclass : #Object, - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #'api - testing' } diff --git a/src/Lepiter-Store/LeLocalAttachmentAlreadyExist.class.st b/src/Lepiter-Store/LeLocalAttachmentAlreadyExist.class.st index 68d60da62..7ab65bf80 100644 --- a/src/Lepiter-Store/LeLocalAttachmentAlreadyExist.class.st +++ b/src/Lepiter-Store/LeLocalAttachmentAlreadyExist.class.st @@ -5,7 +5,7 @@ Class { 'basename', 'uuid' ], - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeLocalAttachmentDoesNotExist.class.st b/src/Lepiter-Store/LeLocalAttachmentDoesNotExist.class.st index d5cb959b2..767cc45a3 100644 --- a/src/Lepiter-Store/LeLocalAttachmentDoesNotExist.class.st +++ b/src/Lepiter-Store/LeLocalAttachmentDoesNotExist.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'uuid' ], - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeLocalAttachmentMissingFile.class.st b/src/Lepiter-Store/LeLocalAttachmentMissingFile.class.st index 21e4e90bb..607276145 100644 --- a/src/Lepiter-Store/LeLocalAttachmentMissingFile.class.st +++ b/src/Lepiter-Store/LeLocalAttachmentMissingFile.class.st @@ -5,7 +5,7 @@ Class { 'uuid', 'directory' ], - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeLocalExamples.class.st b/src/Lepiter-Store/LeLocalExamples.class.st index 3037302fd..038337390 100644 --- a/src/Lepiter-Store/LeLocalExamples.class.st +++ b/src/Lepiter-Store/LeLocalExamples.class.st @@ -34,7 +34,7 @@ Class { 'database', 'memStore' ], - #category : #'Lepiter-Store-Local-Examples' + #category : 'Lepiter-Store-Local-Examples' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeLocalJSONStoreShutdown.class.st b/src/Lepiter-Store/LeLocalJSONStoreShutdown.class.st index 58b4f39ac..9b2db62c8 100644 --- a/src/Lepiter-Store/LeLocalJSONStoreShutdown.class.st +++ b/src/Lepiter-Store/LeLocalJSONStoreShutdown.class.st @@ -6,5 +6,5 @@ Class { #name : #LeLocalJSONStoreShutdown, #superclass : #Announcement, - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } diff --git a/src/Lepiter-Store/LeLocalJSONStoreStartup.class.st b/src/Lepiter-Store/LeLocalJSONStoreStartup.class.st index 4eba5d857..254002de4 100644 --- a/src/Lepiter-Store/LeLocalJSONStoreStartup.class.st +++ b/src/Lepiter-Store/LeLocalJSONStoreStartup.class.st @@ -6,5 +6,5 @@ Class { #name : #LeLocalJSONStoreStartup, #superclass : #Announcement, - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } diff --git a/src/Lepiter-Store/LeLocalJsonV3Storage.class.st b/src/Lepiter-Store/LeLocalJsonV3Storage.class.st index bdc2e09e5..aa435ba3f 100644 --- a/src/Lepiter-Store/LeLocalJsonV3Storage.class.st +++ b/src/Lepiter-Store/LeLocalJsonV3Storage.class.st @@ -1,7 +1,7 @@ Class { #name : #LeLocalJsonV3Storage, #superclass : #LeLocalStorage, - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #versions } diff --git a/src/Lepiter-Store/LeLocalJsonV4Storage.class.st b/src/Lepiter-Store/LeLocalJsonV4Storage.class.st index 46eaca0dc..33bdfc1a1 100644 --- a/src/Lepiter-Store/LeLocalJsonV4Storage.class.st +++ b/src/Lepiter-Store/LeLocalJsonV4Storage.class.st @@ -1,7 +1,7 @@ Class { #name : #LeLocalJsonV4Storage, #superclass : #LeLocalStorage, - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #versions } diff --git a/src/Lepiter-Store/LeLocalMonitorExamples.class.st b/src/Lepiter-Store/LeLocalMonitorExamples.class.st index 58b6c8018..319efc0d3 100644 --- a/src/Lepiter-Store/LeLocalMonitorExamples.class.st +++ b/src/Lepiter-Store/LeLocalMonitorExamples.class.st @@ -9,7 +9,7 @@ Class { #instVars : [ 'monitor' ], - #category : #'Lepiter-Store-Local-Examples' + #category : 'Lepiter-Store-Local-Examples' } { #category : #'examples - monitor' } diff --git a/src/Lepiter-Store/LeLocalNullProperties.class.st b/src/Lepiter-Store/LeLocalNullProperties.class.st index 4f6e17efd..ed4efefe9 100644 --- a/src/Lepiter-Store/LeLocalNullProperties.class.st +++ b/src/Lepiter-Store/LeLocalNullProperties.class.st @@ -3,7 +3,7 @@ Class { #superclass : #LeLocalAbstractProperties, #traits : 'TGtUniqueInstance', #classTraits : 'TGtUniqueInstance classTrait', - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #'api - testing' } diff --git a/src/Lepiter-Store/LeLocalSTONStorage.class.st b/src/Lepiter-Store/LeLocalSTONStorage.class.st index cf5f6ceac..5000fa5a5 100644 --- a/src/Lepiter-Store/LeLocalSTONStorage.class.st +++ b/src/Lepiter-Store/LeLocalSTONStorage.class.st @@ -1,7 +1,7 @@ Class { #name : #LeLocalSTONStorage, #superclass : #LeLocalStorage, - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #loading } diff --git a/src/Lepiter-Store/LeLocalStorage.class.st b/src/Lepiter-Store/LeLocalStorage.class.st index 953678da8..5382777f2 100644 --- a/src/Lepiter-Store/LeLocalStorage.class.st +++ b/src/Lepiter-Store/LeLocalStorage.class.st @@ -12,7 +12,7 @@ The database is a directory containing a page per file, with `db.properties` con Class { #name : #LeLocalStorage, #superclass : #Object, - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeLocalStorageExamples.class.st b/src/Lepiter-Store/LeLocalStorageExamples.class.st index 4dc84e914..268a9c811 100644 --- a/src/Lepiter-Store/LeLocalStorageExamples.class.st +++ b/src/Lepiter-Store/LeLocalStorageExamples.class.st @@ -3,7 +3,7 @@ Class { #superclass : #Object, #traits : 'TAssertable', #classTraits : 'TAssertable classTrait', - #category : #'Lepiter-Store-Local-Examples' + #category : 'Lepiter-Store-Local-Examples' } { #category : #examples } diff --git a/src/Lepiter-Store/LeLocalStore.class.st b/src/Lepiter-Store/LeLocalStore.class.st index c98d544f2..8580933ae 100644 --- a/src/Lepiter-Store/LeLocalStore.class.st +++ b/src/Lepiter-Store/LeLocalStore.class.st @@ -29,7 +29,7 @@ Class { 'localRoot', 'attachmentsDirectory' ], - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #accessing } @@ -178,6 +178,21 @@ LeLocalStore >> attachmentProperties: attachmentPath [ ^ LeAttachment loadFrom: attachmentFileReference parent / LeAttachment basename ] +{ #category : #accessing } +LeLocalStore >> attachmentsDirectory [ + ^ attachmentsDirectory +] + +{ #category : #accessing } +LeLocalStore >> attachmentsDirectory: anObject [ + attachmentsDirectory := anObject +] + +{ #category : #accessing } +LeLocalStore >> attachmentsDirectoryName [ + ^ self class attachmentsDirectoryName +] + { #category : #attachments } LeLocalStore >> attachmentUtf8Stream: attachmentPath do: aBlock [ "Answer a stream on the binary contents of the supplied attachment path" @@ -203,21 +218,6 @@ LeLocalStore >> attachmentWithDataForId: aUuid [ metadata: properties ] -{ #category : #accessing } -LeLocalStore >> attachmentsDirectory [ - ^ attachmentsDirectory -] - -{ #category : #accessing } -LeLocalStore >> attachmentsDirectory: anObject [ - attachmentsDirectory := anObject -] - -{ #category : #accessing } -LeLocalStore >> attachmentsDirectoryName [ - ^ self class attachmentsDirectoryName -] - { #category : #accessing } LeLocalStore >> dbPropertiesFile [ ^ localRoot / self propertiesBasename @@ -416,12 +416,6 @@ LeLocalStore >> lookupAttachmentDirectoryAndMetadataFor: aFileReference usingId: ^ attachmentDirectory resolve ] -{ #category : #accessing } -LeLocalStore >> pageFileReference: aLePage [ - - ^ localRoot / (self pageFilename: aLePage) -] - { #category : #accessing } LeLocalStore >> pageFilename: aLePage [ @@ -434,6 +428,12 @@ LeLocalStore >> pageFilenameForId: aLePage [ ^ storage pageFilenameForUid: aLePage ] +{ #category : #accessing } +LeLocalStore >> pageFileReference: aLePage [ + + ^ localRoot / (self pageFilename: aLePage) +] + { #category : #accessing } LeLocalStore >> pageHashFor: aLePage [ diff --git a/src/Lepiter-Store/LeLocalStoreExport.class.st b/src/Lepiter-Store/LeLocalStoreExport.class.st index a8c30dcd3..6ea89a5ba 100644 --- a/src/Lepiter-Store/LeLocalStoreExport.class.st +++ b/src/Lepiter-Store/LeLocalStoreExport.class.st @@ -1,7 +1,7 @@ Class { #name : #LeLocalStoreExport, #superclass : #LeLocalStore, - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #'api - exporting' } diff --git a/src/Lepiter-Store/LeLocalStoreLoad.class.st b/src/Lepiter-Store/LeLocalStoreLoad.class.st index d93bd4af6..8c38a0147 100644 --- a/src/Lepiter-Store/LeLocalStoreLoad.class.st +++ b/src/Lepiter-Store/LeLocalStoreLoad.class.st @@ -7,7 +7,7 @@ Class { 'duplicates', 'corrupted' ], - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #testing } diff --git a/src/Lepiter-Store/LeLocalStoreMonitor.class.st b/src/Lepiter-Store/LeLocalStoreMonitor.class.st index c58693a6e..f9afcda98 100644 --- a/src/Lepiter-Store/LeLocalStoreMonitor.class.st +++ b/src/Lepiter-Store/LeLocalStoreMonitor.class.st @@ -37,7 +37,7 @@ Class { 'SessionAnnouncer', 'ShutdownMonitor' ], - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #'api - accessing' } diff --git a/src/Lepiter-Store/LeLocalStoreMonitorStarted.class.st b/src/Lepiter-Store/LeLocalStoreMonitorStarted.class.st index 618806e21..ab463db2c 100644 --- a/src/Lepiter-Store/LeLocalStoreMonitorStarted.class.st +++ b/src/Lepiter-Store/LeLocalStoreMonitorStarted.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'monitor' ], - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeLocalStoreMonitorStopped.class.st b/src/Lepiter-Store/LeLocalStoreMonitorStopped.class.st index 32f2403d8..67aa9f600 100644 --- a/src/Lepiter-Store/LeLocalStoreMonitorStopped.class.st +++ b/src/Lepiter-Store/LeLocalStoreMonitorStopped.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'monitor' ], - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeLocalStoreSignal.class.st b/src/Lepiter-Store/LeLocalStoreSignal.class.st index 97d033c93..acd247266 100644 --- a/src/Lepiter-Store/LeLocalStoreSignal.class.st +++ b/src/Lepiter-Store/LeLocalStoreSignal.class.st @@ -9,7 +9,7 @@ Class { 'pageTitle', 'operation' ], - #category : #'Lepiter-Store-LocalJSON-Beacon' + #category : 'Lepiter-Store-LocalJSON-Beacon' } { #category : #testing } diff --git a/src/Lepiter-Store/LeLocalV3001MigrationExamples.class.st b/src/Lepiter-Store/LeLocalV3001MigrationExamples.class.st index a73c83a09..44a031ab2 100644 --- a/src/Lepiter-Store/LeLocalV3001MigrationExamples.class.st +++ b/src/Lepiter-Store/LeLocalV3001MigrationExamples.class.st @@ -1,7 +1,7 @@ Class { #name : #LeLocalV3001MigrationExamples, #superclass : #LeLocalExamples, - #category : #'Lepiter-Store-Local-Examples' + #category : 'Lepiter-Store-Local-Examples' } { #category : #examples } diff --git a/src/Lepiter-Store/LeLocalV3002MigrationExamples.class.st b/src/Lepiter-Store/LeLocalV3002MigrationExamples.class.st index 1253f687e..55a8d7c05 100644 --- a/src/Lepiter-Store/LeLocalV3002MigrationExamples.class.st +++ b/src/Lepiter-Store/LeLocalV3002MigrationExamples.class.st @@ -1,7 +1,7 @@ Class { #name : #LeLocalV3002MigrationExamples, #superclass : #LeLocalExamples, - #category : #'Lepiter-Store-Local-Examples' + #category : 'Lepiter-Store-Local-Examples' } { #category : #examples } diff --git a/src/Lepiter-Store/LeLocalV4000MigrationExamples.class.st b/src/Lepiter-Store/LeLocalV4000MigrationExamples.class.st index c17090175..fc222d23f 100644 --- a/src/Lepiter-Store/LeLocalV4000MigrationExamples.class.st +++ b/src/Lepiter-Store/LeLocalV4000MigrationExamples.class.st @@ -1,7 +1,7 @@ Class { #name : #LeLocalV4000MigrationExamples, #superclass : #LeLocalExamples, - #category : #'Lepiter-Store-Local-Examples' + #category : 'Lepiter-Store-Local-Examples' } { #category : #'as yet unclassified' } diff --git a/src/Lepiter-Store/LeLogicalDatabaseAboutToReload.class.st b/src/Lepiter-Store/LeLogicalDatabaseAboutToReload.class.st index 8ff32bd3b..a0590fd73 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseAboutToReload.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseAboutToReload.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'database' ], - #category : #'Lepiter-Store-Reload - Announcements' + #category : 'Lepiter-Store-Reload - Announcements' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeLogicalDatabaseProperties.class.st b/src/Lepiter-Store/LeLogicalDatabaseProperties.class.st index 15ab55d2e..b9f6802e3 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseProperties.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseProperties.class.st @@ -7,7 +7,7 @@ Class { 'localFile', 'properties' ], - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #accessing } @@ -429,23 +429,23 @@ LeLogicalDatabaseProperties >> registeredDatabaseDirectories: aCollection [ ] { #category : #'api - accessing' } -LeLogicalDatabaseProperties >> registeredDatabaseUrls [ +LeLogicalDatabaseProperties >> registeredDatabases [ - ^ (self properties at: 'registeredDatabaseUrls' ifAbsent: [ #() ]) collect: #asZnUrl + ^ self registeredDatabaseUrls collect: [ :each | + (LeDatabaseStore loaderFor: each) current + loadAndMonitorFrom: each ] ] { #category : #'api - accessing' } -LeLogicalDatabaseProperties >> registeredDatabaseUrls: aCollectionOfZnUrl [ +LeLogicalDatabaseProperties >> registeredDatabaseUrls [ - ^ self updateProperty: 'registeredDatabaseUrls' value: (aCollectionOfZnUrl collect: #asString) + ^ (self properties at: 'registeredDatabaseUrls' ifAbsent: [ #() ]) collect: #asZnUrl ] { #category : #'api - accessing' } -LeLogicalDatabaseProperties >> registeredDatabases [ +LeLogicalDatabaseProperties >> registeredDatabaseUrls: aCollectionOfZnUrl [ - ^ self registeredDatabaseUrls collect: [ :each | - (LeDatabaseStore loaderFor: each) current - loadAndMonitorFrom: each ] + ^ self updateProperty: 'registeredDatabaseUrls' value: (aCollectionOfZnUrl collect: #asString) ] { #category : #'api - storage' } diff --git a/src/Lepiter-Store/LeLogicalDatabasePropertiesExamples.class.st b/src/Lepiter-Store/LeLogicalDatabasePropertiesExamples.class.st index fa1a00687..1e852e0c6 100644 --- a/src/Lepiter-Store/LeLogicalDatabasePropertiesExamples.class.st +++ b/src/Lepiter-Store/LeLogicalDatabasePropertiesExamples.class.st @@ -1,7 +1,7 @@ Class { #name : #LeLogicalDatabasePropertiesExamples, #superclass : #Object, - #category : #'Lepiter-Store-Examples' + #category : 'Lepiter-Store-Examples' } { #category : #private } diff --git a/src/Lepiter-Store/LeLogicalDatabaseReload.class.st b/src/Lepiter-Store/LeLogicalDatabaseReload.class.st index 8234b8e2f..90e62a5b1 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseReload.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseReload.class.st @@ -11,7 +11,7 @@ Class { 'updateCommands', 'contentReloadErrorStrategy' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #private } diff --git a/src/Lepiter-Store/LeLogicalDatabaseReloadCommand.class.st b/src/Lepiter-Store/LeLogicalDatabaseReloadCommand.class.st index cc306bde3..3fe7d188d 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseReloadCommand.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseReloadCommand.class.st @@ -10,7 +10,7 @@ Class { #instVars : [ 'contentReloadErrorStrategy' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #updating } diff --git a/src/Lepiter-Store/LeLogicalDatabaseReloadDatabase.class.st b/src/Lepiter-Store/LeLogicalDatabaseReloadDatabase.class.st index ea6597633..f063fae58 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseReloadDatabase.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseReloadDatabase.class.st @@ -15,7 +15,7 @@ Class { 'isPrimaryDB', 'isPlaygroundDB' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateAddDb.class.st b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateAddDb.class.st index 455e05a49..9a2db1e61 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateAddDb.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateAddDb.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'database' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateExistingDb.class.st b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateExistingDb.class.st index e18babe25..28d432741 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateExistingDb.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateExistingDb.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'database' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateExistingPlayground.class.st b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateExistingPlayground.class.st index 393d29c07..28e8bda6c 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateExistingPlayground.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateExistingPlayground.class.st @@ -5,7 +5,7 @@ Class { 'playgroundDB', 'isAlsoPrimaryDB' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #updating } diff --git a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateExistingPrimary.class.st b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateExistingPrimary.class.st index 7960e43c0..5fc8a69b8 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateExistingPrimary.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateExistingPrimary.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'primaryDB' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #updating } diff --git a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdatePlayground.class.st b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdatePlayground.class.st index 629791300..ab8895f8e 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdatePlayground.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdatePlayground.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'playgroundDB' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdatePrimary.class.st b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdatePrimary.class.st index fa1fb29dd..180dc2a8d 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdatePrimary.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdatePrimary.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'primaryDB' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #updating } diff --git a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateRemoveDb.class.st b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateRemoveDb.class.st index d3f538ab0..61eb1d3eb 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateRemoveDb.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateRemoveDb.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'database' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #updating } diff --git a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateShuffledDb.class.st b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateShuffledDb.class.st index 944911fc5..1ef97280b 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateShuffledDb.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateShuffledDb.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'database' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #updating } diff --git a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateShuffledPlayground.class.st b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateShuffledPlayground.class.st index bad1c4740..4a898991a 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateShuffledPlayground.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateShuffledPlayground.class.st @@ -5,7 +5,7 @@ Class { 'playgroundDB', 'isAlsoPrimaryDB' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #updating } diff --git a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateShuffledPrimary.class.st b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateShuffledPrimary.class.st index 233785e0b..e88fb95a0 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateShuffledPrimary.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseReloadUpdateShuffledPrimary.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'primaryDB' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #updating } diff --git a/src/Lepiter-Store/LeLogicalDatabaseReloaded.class.st b/src/Lepiter-Store/LeLogicalDatabaseReloaded.class.st index 846b68173..e29ce3c6a 100644 --- a/src/Lepiter-Store/LeLogicalDatabaseReloaded.class.st +++ b/src/Lepiter-Store/LeLogicalDatabaseReloaded.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'database' ], - #category : #'Lepiter-Store-Reload - Announcements' + #category : 'Lepiter-Store-Reload - Announcements' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeMockLocalJsonV3StorageWithFilesOrder.class.st b/src/Lepiter-Store/LeMockLocalJsonV3StorageWithFilesOrder.class.st index 62b618965..56fbdf12b 100644 --- a/src/Lepiter-Store/LeMockLocalJsonV3StorageWithFilesOrder.class.st +++ b/src/Lepiter-Store/LeMockLocalJsonV3StorageWithFilesOrder.class.st @@ -1,7 +1,7 @@ Class { #name : #LeMockLocalJsonV3StorageWithFilesOrder, #superclass : #LeLocalJsonV3Storage, - #category : #'Lepiter-Store-Mocks' + #category : 'Lepiter-Store-Mocks' } { #category : #enumerating } diff --git a/src/Lepiter-Store/LeMockLocalJsonV4StorageWithFilesOrder.class.st b/src/Lepiter-Store/LeMockLocalJsonV4StorageWithFilesOrder.class.st index c1bb227e8..58325572e 100644 --- a/src/Lepiter-Store/LeMockLocalJsonV4StorageWithFilesOrder.class.st +++ b/src/Lepiter-Store/LeMockLocalJsonV4StorageWithFilesOrder.class.st @@ -1,5 +1,5 @@ Class { #name : #LeMockLocalJsonV4StorageWithFilesOrder, #superclass : #LeLocalJsonV4Storage, - #category : #'Lepiter-Store-Mocks' + #category : 'Lepiter-Store-Mocks' } diff --git a/src/Lepiter-Store/LePageComplexStructureChange.class.st b/src/Lepiter-Store/LePageComplexStructureChange.class.st index c7f68f129..abd269040 100644 --- a/src/Lepiter-Store/LePageComplexStructureChange.class.st +++ b/src/Lepiter-Store/LePageComplexStructureChange.class.st @@ -4,7 +4,7 @@ At the moment I indicate that there is a change in structure. Class { #name : #LePageComplexStructureChange, #superclass : #LePageStructureChange, - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #testing } diff --git a/src/Lepiter-Store/LePageIsReloadNecessaryChecker.class.st b/src/Lepiter-Store/LePageIsReloadNecessaryChecker.class.st index 36721958a..5958d1367 100644 --- a/src/Lepiter-Store/LePageIsReloadNecessaryChecker.class.st +++ b/src/Lepiter-Store/LePageIsReloadNecessaryChecker.class.st @@ -5,7 +5,7 @@ Class { 'existingPage', 'loadedPage' ], - #category : #'Lepiter-Store-Reload - Optimizations' + #category : 'Lepiter-Store-Reload - Optimizations' } { #category : #checking } diff --git a/src/Lepiter-Store/LePageNoStructureChange.class.st b/src/Lepiter-Store/LePageNoStructureChange.class.st index 209d7dcf6..d2a771e4b 100644 --- a/src/Lepiter-Store/LePageNoStructureChange.class.st +++ b/src/Lepiter-Store/LePageNoStructureChange.class.st @@ -6,5 +6,5 @@ There could be changes in content for individual snippets, but the structure is Class { #name : #LePageNoStructureChange, #superclass : #LePageStructureChange, - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } diff --git a/src/Lepiter-Store/LePageReloaderContext.class.st b/src/Lepiter-Store/LePageReloaderContext.class.st index e0dec97e9..c6a7b7be8 100644 --- a/src/Lepiter-Store/LePageReloaderContext.class.st +++ b/src/Lepiter-Store/LePageReloaderContext.class.st @@ -11,7 +11,7 @@ Class { 'targetSnippetsByUid', 'referenceSnippetsByUid' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #'instance creation' } diff --git a/src/Lepiter-Store/LePageStructureAsseambler.class.st b/src/Lepiter-Store/LePageStructureAsseambler.class.st index 1076f65f8..261e3ebb6 100644 --- a/src/Lepiter-Store/LePageStructureAsseambler.class.st +++ b/src/Lepiter-Store/LePageStructureAsseambler.class.st @@ -11,7 +11,7 @@ Class { 'reloaderContext', 'snippetStructure' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #actions } @@ -250,6 +250,11 @@ LePageStructureAsseambler >> reloadContentForStructure: aStructureNode intoConte ^ existingSnippet ] +{ #category : #accessing } +LePageStructureAsseambler >> reloaderContext [ + ^ reloaderContext +] + { #category : #actions } LePageStructureAsseambler >> reloadUnknownSnippet: existingSnippet fromSnippet: replacementSnippet intoContent: aParentContent [ @@ -265,11 +270,6 @@ LePageStructureAsseambler >> reloadUnknownSnippet: existingSnippet fromSnippet: ^ replacementSnippet ] -{ #category : #accessing } -LePageStructureAsseambler >> reloaderContext [ - ^ reloaderContext -] - { #category : #accessing } LePageStructureAsseambler >> removedSnippetsCount [ "Here we count explicitly the number of removed snippets" diff --git a/src/Lepiter-Store/LePageStructureAsseamblerExamples.class.st b/src/Lepiter-Store/LePageStructureAsseamblerExamples.class.st index b81dd3840..64abd6f83 100644 --- a/src/Lepiter-Store/LePageStructureAsseamblerExamples.class.st +++ b/src/Lepiter-Store/LePageStructureAsseamblerExamples.class.st @@ -1,7 +1,7 @@ Class { #name : #LePageStructureAsseamblerExamples, #superclass : #Object, - #category : #'Lepiter-Store-Examples' + #category : 'Lepiter-Store-Examples' } { #category : #assertions } diff --git a/src/Lepiter-Store/LePageStructureAssemblersGroup.class.st b/src/Lepiter-Store/LePageStructureAssemblersGroup.class.st index 3ed8d3449..85d192f19 100644 --- a/src/Lepiter-Store/LePageStructureAssemblersGroup.class.st +++ b/src/Lepiter-Store/LePageStructureAssemblersGroup.class.st @@ -3,7 +3,7 @@ Class { #superclass : #Object, #traits : 'TGtGroupWithItems', #classTraits : 'TGtGroupWithItems classTrait', - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #'gt - extensions' } diff --git a/src/Lepiter-Store/LePageStructureChange.class.st b/src/Lepiter-Store/LePageStructureChange.class.st index 280ce7797..3e01c2c22 100644 --- a/src/Lepiter-Store/LePageStructureChange.class.st +++ b/src/Lepiter-Store/LePageStructureChange.class.st @@ -6,7 +6,7 @@ My subclasses indicate concrete types of changes. Class { #name : #LePageStructureChange, #superclass : #Object, - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #testing } diff --git a/src/Lepiter-Store/LePageStructureChangeTypeDetector.class.st b/src/Lepiter-Store/LePageStructureChangeTypeDetector.class.st index 8204ece00..f16697cb9 100644 --- a/src/Lepiter-Store/LePageStructureChangeTypeDetector.class.st +++ b/src/Lepiter-Store/LePageStructureChangeTypeDetector.class.st @@ -6,7 +6,7 @@ The change in structure is calculated based on snippet ids. Class { #name : #LePageStructureChangeTypeDetector, #superclass : #Object, - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #api } diff --git a/src/Lepiter-Store/LePageStructureNode.class.st b/src/Lepiter-Store/LePageStructureNode.class.st index 9616ad46e..eb5a250ec 100644 --- a/src/Lepiter-Store/LePageStructureNode.class.st +++ b/src/Lepiter-Store/LePageStructureNode.class.st @@ -14,7 +14,7 @@ Class { 'typeName', 'changeStatuses' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #'instance creation' } diff --git a/src/Lepiter-Store/LePropertiesExamples.class.st b/src/Lepiter-Store/LePropertiesExamples.class.st index 30816b72e..a47cecb4a 100644 --- a/src/Lepiter-Store/LePropertiesExamples.class.st +++ b/src/Lepiter-Store/LePropertiesExamples.class.st @@ -3,7 +3,7 @@ Class { #superclass : #Object, #traits : 'TAssertable', #classTraits : 'TAssertable classTrait', - #category : #'Lepiter-Store-Examples' + #category : 'Lepiter-Store-Examples' } { #category : #private } diff --git a/src/Lepiter-Store/LeReloadOptimization.class.st b/src/Lepiter-Store/LeReloadOptimization.class.st index eb6fbe8ac..163b303c7 100644 --- a/src/Lepiter-Store/LeReloadOptimization.class.st +++ b/src/Lepiter-Store/LeReloadOptimization.class.st @@ -1,7 +1,7 @@ Class { #name : #LeReloadOptimization, #superclass : #DynamicVariable, - #category : #'Lepiter-Store-Reload - Optimizations' + #category : 'Lepiter-Store-Reload - Optimizations' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeReloadOutOfDateReasonSignal.class.st b/src/Lepiter-Store/LeReloadOutOfDateReasonSignal.class.st index 59e87b0e1..716f89e0f 100644 --- a/src/Lepiter-Store/LeReloadOutOfDateReasonSignal.class.st +++ b/src/Lepiter-Store/LeReloadOutOfDateReasonSignal.class.st @@ -1,5 +1,5 @@ Class { #name : #LeReloadOutOfDateReasonSignal, #superclass : #LeReloadReasonSignal, - #category : #'Lepiter-Store-Reload - Optimizations' + #category : 'Lepiter-Store-Reload - Optimizations' } diff --git a/src/Lepiter-Store/LeReloadReason.class.st b/src/Lepiter-Store/LeReloadReason.class.st index aa2337a61..00f4c541b 100644 --- a/src/Lepiter-Store/LeReloadReason.class.st +++ b/src/Lepiter-Store/LeReloadReason.class.st @@ -1,7 +1,7 @@ Class { #name : #LeReloadReason, #superclass : #Object, - #category : #'Lepiter-Store-Reload - Optimizations' + #category : 'Lepiter-Store-Reload - Optimizations' } { #category : #'gt - extensions' } diff --git a/src/Lepiter-Store/LeReloadReasonSignal.class.st b/src/Lepiter-Store/LeReloadReasonSignal.class.st index d4ad8c87e..5ae99b7d5 100644 --- a/src/Lepiter-Store/LeReloadReasonSignal.class.st +++ b/src/Lepiter-Store/LeReloadReasonSignal.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'reason' ], - #category : #'Lepiter-Store-Reload - Optimizations' + #category : 'Lepiter-Store-Reload - Optimizations' } { #category : #'gt - extensions' } diff --git a/src/Lepiter-Store/LeReloadUpToDateReasonSignal.class.st b/src/Lepiter-Store/LeReloadUpToDateReasonSignal.class.st index d68022ec3..5554577bd 100644 --- a/src/Lepiter-Store/LeReloadUpToDateReasonSignal.class.st +++ b/src/Lepiter-Store/LeReloadUpToDateReasonSignal.class.st @@ -1,5 +1,5 @@ Class { #name : #LeReloadUpToDateReasonSignal, #superclass : #LeReloadReasonSignal, - #category : #'Lepiter-Store-Reload - Optimizations' + #category : 'Lepiter-Store-Reload - Optimizations' } diff --git a/src/Lepiter-Store/LeShowDebuggerContentReloadErrorStrategy.class.st b/src/Lepiter-Store/LeShowDebuggerContentReloadErrorStrategy.class.st index b6947985e..0abbdb826 100644 --- a/src/Lepiter-Store/LeShowDebuggerContentReloadErrorStrategy.class.st +++ b/src/Lepiter-Store/LeShowDebuggerContentReloadErrorStrategy.class.st @@ -4,7 +4,7 @@ Executes the given computation normally without any kind of wrapping. This raise Class { #name : #LeShowDebuggerContentReloadErrorStrategy, #superclass : #LeDatabaseContentReloadErrorStrategy, - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #action } diff --git a/src/Lepiter-Store/LeSingleNotificationContentReloadErrorStrategy.class.st b/src/Lepiter-Store/LeSingleNotificationContentReloadErrorStrategy.class.st index 04029bfed..d273dd0ba 100644 --- a/src/Lepiter-Store/LeSingleNotificationContentReloadErrorStrategy.class.st +++ b/src/Lepiter-Store/LeSingleNotificationContentReloadErrorStrategy.class.st @@ -8,7 +8,7 @@ Class { 'contentErrors', 'currentDatabaseName' ], - #category : #'Lepiter-Store-Reload' + #category : 'Lepiter-Store-Reload' } { #category : #callbacks } diff --git a/src/Lepiter-Store/LeStoreAttachmentReader.class.st b/src/Lepiter-Store/LeStoreAttachmentReader.class.st index 9a915c8bf..33a387b27 100644 --- a/src/Lepiter-Store/LeStoreAttachmentReader.class.st +++ b/src/Lepiter-Store/LeStoreAttachmentReader.class.st @@ -7,7 +7,7 @@ Class { 'attachmentName', 'isBinaryContent' ], - #category : #'Lepiter-Store-Attachments' + #category : 'Lepiter-Store-Attachments' } { #category : #'api - accessing' } diff --git a/src/Lepiter-Store/LeStoreAttachmentWriter.class.st b/src/Lepiter-Store/LeStoreAttachmentWriter.class.st index df0fadb29..a974c1f66 100644 --- a/src/Lepiter-Store/LeStoreAttachmentWriter.class.st +++ b/src/Lepiter-Store/LeStoreAttachmentWriter.class.st @@ -8,7 +8,7 @@ Class { 'attachmentName', 'writer' ], - #category : #'Lepiter-Store-Attachments' + #category : 'Lepiter-Store-Attachments' } { #category : #'api - accessing' } diff --git a/src/Lepiter-Store/LeStoreLocationExamples.class.st b/src/Lepiter-Store/LeStoreLocationExamples.class.st index 137b2c106..a2b5c2a50 100644 --- a/src/Lepiter-Store/LeStoreLocationExamples.class.st +++ b/src/Lepiter-Store/LeStoreLocationExamples.class.st @@ -3,7 +3,7 @@ Class { #superclass : #Object, #traits : 'TAssertable', #classTraits : 'TAssertable classTrait', - #category : #'Lepiter-Store-Examples' + #category : 'Lepiter-Store-Examples' } { #category : #examples } diff --git a/src/Lepiter-Store/LeStoreMonitorAnnouncement.class.st b/src/Lepiter-Store/LeStoreMonitorAnnouncement.class.st index 9abccc190..c8b2a6ba2 100644 --- a/src/Lepiter-Store/LeStoreMonitorAnnouncement.class.st +++ b/src/Lepiter-Store/LeStoreMonitorAnnouncement.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'monitor' ], - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeStoreMonitorEntryQueued.class.st b/src/Lepiter-Store/LeStoreMonitorEntryQueued.class.st index b51703bac..001b90e66 100644 --- a/src/Lepiter-Store/LeStoreMonitorEntryQueued.class.st +++ b/src/Lepiter-Store/LeStoreMonitorEntryQueued.class.st @@ -1,5 +1,5 @@ Class { #name : #LeStoreMonitorEntryQueued, #superclass : #LeStoreMonitorAnnouncement, - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } diff --git a/src/Lepiter-Store/LeStoreMonitorSaved.class.st b/src/Lepiter-Store/LeStoreMonitorSaved.class.st index 532d57ce8..fa4608561 100644 --- a/src/Lepiter-Store/LeStoreMonitorSaved.class.st +++ b/src/Lepiter-Store/LeStoreMonitorSaved.class.st @@ -5,5 +5,5 @@ LeLocalStoreMonitorSaved is announced each time the monitor has completed a cycl Class { #name : #LeStoreMonitorSaved, #superclass : #LeStoreMonitorAnnouncement, - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } diff --git a/src/Lepiter-Store/LeStoreMonitorSavedChanges.class.st b/src/Lepiter-Store/LeStoreMonitorSavedChanges.class.st index 3990e233c..b9e77f477 100644 --- a/src/Lepiter-Store/LeStoreMonitorSavedChanges.class.st +++ b/src/Lepiter-Store/LeStoreMonitorSavedChanges.class.st @@ -1,5 +1,5 @@ Class { #name : #LeStoreMonitorSavedChanges, #superclass : #LeStoreMonitorSaved, - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } diff --git a/src/Lepiter-Store/LeSubSettings.class.st b/src/Lepiter-Store/LeSubSettings.class.st index e333c2ce2..fa977dda1 100644 --- a/src/Lepiter-Store/LeSubSettings.class.st +++ b/src/Lepiter-Store/LeSubSettings.class.st @@ -9,7 +9,7 @@ Class { #instVars : [ 'dbProperties' ], - #category : #'Lepiter-Store-Settings' + #category : 'Lepiter-Store-Settings' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeUnknownObjectForTesting.class.st b/src/Lepiter-Store/LeUnknownObjectForTesting.class.st index ca8e47dd2..66baf3531 100644 --- a/src/Lepiter-Store/LeUnknownObjectForTesting.class.st +++ b/src/Lepiter-Store/LeUnknownObjectForTesting.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'unknownParsedObject' ], - #category : #'Lepiter-Store-Examples' + #category : 'Lepiter-Store-Examples' } { #category : #serialization } diff --git a/src/Lepiter-Store/LeUnknownObjectForTestingResolver.class.st b/src/Lepiter-Store/LeUnknownObjectForTestingResolver.class.st index 3a8ae80ea..47cf728ce 100644 --- a/src/Lepiter-Store/LeUnknownObjectForTestingResolver.class.st +++ b/src/Lepiter-Store/LeUnknownObjectForTestingResolver.class.st @@ -1,7 +1,7 @@ Class { #name : #LeUnknownObjectForTestingResolver, #superclass : #LeUnknownObjectResolver, - #category : #'Lepiter-Store-Examples' + #category : 'Lepiter-Store-Examples' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeUnknownObjectResolver.class.st b/src/Lepiter-Store/LeUnknownObjectResolver.class.st index ca801a234..ddea3d303 100644 --- a/src/Lepiter-Store/LeUnknownObjectResolver.class.st +++ b/src/Lepiter-Store/LeUnknownObjectResolver.class.st @@ -1,7 +1,7 @@ Class { #name : #LeUnknownObjectResolver, #superclass : #Object, - #category : #'Lepiter-Store-JsonV4' + #category : 'Lepiter-Store-JsonV4' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeUnknownPageTypeResolver.class.st b/src/Lepiter-Store/LeUnknownPageTypeResolver.class.st index 446645c82..6a65787cb 100644 --- a/src/Lepiter-Store/LeUnknownPageTypeResolver.class.st +++ b/src/Lepiter-Store/LeUnknownPageTypeResolver.class.st @@ -1,7 +1,7 @@ Class { #name : #LeUnknownPageTypeResolver, #superclass : #LeUnknownObjectResolver, - #category : #'Lepiter-Store-JsonV4' + #category : 'Lepiter-Store-JsonV4' } { #category : #accessing } diff --git a/src/Lepiter-Store/LeUnknownParsedObject.class.st b/src/Lepiter-Store/LeUnknownParsedObject.class.st index 302beeda6..3b9c8d8d9 100644 --- a/src/Lepiter-Store/LeUnknownParsedObject.class.st +++ b/src/Lepiter-Store/LeUnknownParsedObject.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'map' ], - #category : #'Lepiter-Store-JsonV4' + #category : 'Lepiter-Store-JsonV4' } { #category : #'instance creation' } diff --git a/src/Lepiter-Store/LeVolatileMonitor.class.st b/src/Lepiter-Store/LeVolatileMonitor.class.st index a2f9d56cc..0e08db231 100644 --- a/src/Lepiter-Store/LeVolatileMonitor.class.st +++ b/src/Lepiter-Store/LeVolatileMonitor.class.st @@ -10,7 +10,7 @@ Class { 'tableOfContentsPageID', 'dbProperties' ], - #category : #'Lepiter-Store-LocalJSON-Store' + #category : 'Lepiter-Store-LocalJSON-Store' } { #category : #accessing }