/**create the complete factory tree that represent the app dependencies * @return dependency tree * */ @SuppressWarnings("unchecked") public R buildTreeUnvalidated(){ R rootFactory = factoryContext.get(rootClass); if (rootFactory==null){ throw new IllegalStateException("FactoryCreator missing for root class "+ rootClass.getSimpleName()+"\n"+"probably missing call: factoryBuilder.addFactory("+rootClass.getSimpleName()+".class,...\n"); } rootFactory.internal().addBackReferences(); return rootFactory; }
@SuppressWarnings("unchecked") private <T> T readInternal(ReaderFunction<T> function) { try { T value = function.read(); if (value instanceof Data) { return (T) ((Data) value).internal().addBackReferences(); } return value; } catch (IOException e) { throw new RuntimeException(e); } }
public DataMerger(R currentData, R commonData, R newData) { if (currentData==commonData){ throw new IllegalArgumentException("Arguments: currentData and commonData can't be the same, use .utility().copy() to create a copy"); } currentData.internal().addBackReferences(); commonData.internal().addBackReferences(); newData.internal().addBackReferences(); this.currentData = currentData; this.commonData = commonData; this.newData = newData; }
/** * @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 R getHistoryFactory(String id) { R historyFactory = executeWidthServerExceptionReporting(()->microserviceResource.getHistoryFactory(new UserAwareRequest<>(user, passwordHash, id))).value; return historyFactory.internal().addBackReferences(); }
@Override public R read(String data) { return ObjectMapperBuilder.build().readValue(data,rootClass).internal().addBackReferences(); }
@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); }
@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); }
public RootFactoryWrapper(R rootFactory) { this.rootFactory = rootFactory; this.rootFactory.internal().addBackReferences(); this.rootFactory.internalFactory().loopDetector();//loop after that cause views/attributes need root and updateCachedChildren(); }
public InMemoryDataStorage(R initialFactory, ChangeSummaryCreator<R,S> changeSummaryCreator){ initialFactory.internal().addBackReferences(); this.initialFactory=initialFactory; this.changeSummaryCreator = changeSummaryCreator; }