@Override public void loadInitialFactory() { currentFactoryStorageId = UUID.randomUUID().toString(); StoredDataMetadata<S> metadata = new StoredDataMetadata<>(currentFactoryStorageId, "System", "initial", currentFactoryStorageId, 0,null); storage.put(currentFactoryStorageId,new DataAndStoredMetadata<>(initialFactory, metadata)); }
@Override public void updateCurrentFactory(DataAndNewMetadata<R> update, String user, String comment, MergeDiffInfo<R> mergeDiff) { final StoredDataMetadata<S> storedDataMetadata = new StoredDataMetadata<>( LocalDateTime.now(), UUID.randomUUID().toString(), user, comment, update.metadata.baseVersionId, update.metadata.dataModelVersion, changeSummaryCreator.createChangeSummary(mergeDiff)); final DataAndStoredMetadata<R,S> updateData = new DataAndStoredMetadata<>(update.root, storedDataMetadata); storage.put(updateData.metadata.id, updateData); currentFactoryStorageId =updateData.metadata.id; }
@Override public String writeStorageMetadata(StoredDataMetadata<S> metadata) { return ObjectMapperBuilder.build().writeValueAsString(new StoredDataMetadata<>( metadata.creationTime, metadata.id, metadata.user, metadata.comment, metadata.baseVersionId, dataModelVersion, metadata.changeSummary )); } }
@Override public void updateCurrentFactory(DataAndNewMetadata<R> update, String user, String comment, MergeDiffInfo<R> mergeDiff) { S changeSummary = null; if (mergeDiff!=null){ changeSummary=changeSummaryCreator.createChangeSummary(mergeDiff); } final StoredDataMetadata<S> storedDataMetadata = new StoredDataMetadata<>( LocalDateTime.now(), UUID.randomUUID().toString(), user, comment, update.metadata.baseVersionId, update.metadata.dataModelVersion, changeSummary ); final DataAndStoredMetadata<R,S> updateData = new DataAndStoredMetadata<>(update.root, storedDataMetadata); writeFile(currentFactoryPath, dataSerialisationManager.write(updateData.root)); writeFile(currentFactoryPathMetadata, dataSerialisationManager.writeStorageMetadata(updateData.metadata)); fileSystemFactoryStorageHistory.updateHistory(updateData.metadata,updateData.root); }