@Override public DataAndNewMetadata<R> prepareNewFactory(String currentFactoryStorageId, R currentFactoryCopy){ NewDataMetadata metadata = new NewDataMetadata(); metadata.baseVersionId=currentFactoryStorageId; return new DataAndNewMetadata<>(currentFactoryCopy,metadata); }
@Override public void loadInitialFactory() { fileSystemFactoryStorageHistory.initFromFileSystem(); if (!Files.exists(currentFactoryPath)){ NewDataMetadata metadata = new NewDataMetadata(); metadata.baseVersionId= UUID.randomUUID().toString(); DataAndNewMetadata<R> initialFactoryAndStorageMetadata = new DataAndNewMetadata<>(initialFactory,metadata); updateCurrentFactory(initialFactoryAndStorageMetadata,"System","initial factory",null); } }
@Override public DataAndNewMetadata<R> prepareNewFactory(String currentFactoryStorageId, R currentFactoryCopy){ NewDataMetadata metadata = new NewDataMetadata(); metadata.baseVersionId=currentFactoryStorageId; dataSerialisationManager.prepareNewFactoryMetadata(metadata); return new DataAndNewMetadata<>(currentFactoryCopy,metadata); }
public FactoryUpdateLog<R> revertTo(StoredDataMetadata storedDataMetadata, String user) { R historyFactory = getHistoryFactory(storedDataMetadata.id); DataAndNewMetadata<R> current = prepareNewFactory(); current = new DataAndNewMetadata<>(historyFactory,current.metadata); return updateCurrentFactory(current,user,"revert",s->true); }
@Override public MergeDiffInfo<R> simulateUpdateCurrentFactory(UserAwareRequest<DataAndNewMetadata<R>> request) { Function<String, Boolean> permissionChecker = authenticateAndGetPermissionChecker(request); return microservice.simulateUpdateCurrentFactory(new DataAndNewMetadata<>(request.request.root.internal().addBackReferences(), request.request.metadata), permissionChecker); }
@Override public FactoryUpdateLog<R> updateCurrentFactory(UserAwareRequest<UpdateCurrentFactoryRequest<R>> update) { Function<String, Boolean> permissionChecker = authenticateAndGetPermissionChecker(update); return microservice.updateCurrentFactory(new DataAndNewMetadata<>(update.request.factoryUpdate.root.internal().addBackReferences(), update.request.factoryUpdate.metadata), update.user, update.request.comment, permissionChecker); }
/** * @see DataStorage#prepareNewFactory() * * @return new factory for editing, server assign new id for the update */ @SuppressWarnings("unchecked") public DataAndNewMetadata<R> prepareNewFactory() { DataAndNewMetadata<R> currentFactory = executeWidthServerExceptionReporting(()->microserviceResource.prepareNewFactory(new UserAwareRequest<>(user,passwordHash,null))); R root = currentFactory.root.internal().addBackReferences(); if (factoryTreeBuilderBasedAttributeSetup!=null){ factoryTreeBuilderBasedAttributeSetup.applyToRootFactoryDeep(root); } return new DataAndNewMetadata<>(root,currentFactory.metadata); }
public FactoryUpdateLog<R> updateCurrentFactory(DataAndNewMetadata<R> update, String user, String comment, Function<String,Boolean> permissionChecker) { R commonVersion = dataStorage.getHistoryFactory(update.metadata.baseVersionId); FactoryUpdateLog<R> factoryLog = factoryManager.update(commonVersion,update.root, permissionChecker); if (!factoryLog.failedUpdate()&& factoryLog.successfullyMerged()){ DataAndNewMetadata<R> copy = new DataAndNewMetadata<>(factoryManager.getCurrentFactory().internal().copy(),update.metadata); dataStorage.updateCurrentFactory(copy,user,comment,factoryLog.mergeDiffInfo); } return factoryLog; }