package designPatternExtensions.designPattern;
import designPatternExtensions.*;
import models.deltaAlgebra.ObjectNode;
import models.dataSynchronizationModel.*;
//https://github.com/iluwatar/java-design-patterns/tree/master/memento
public class Memento implements DesignPattern{
public DataSynchronizationDesign create() throws IllegalRelationException {
DataSynchronizationDesign design = ModelLoader.load("models/designPattern/Memento.Json");
DataSynchronizationContext dtc = design.getSynchronizationContexts().getFirst();
ObjectNode star = dtc.getSrcTopObject();
ObjectNode states = dtc.getDstTopObject();
DataSynchronizationContext dtc2 = design.getSynchronizationContexts().getLast();
ObjectNode states2 = dtc2.getSrcTopObject();
ObjectNode star2 = dtc2.getDstTopObject();
ObjectNode starMementoInternal = new ObjectNode("StarMementoInternal");
DependencyInversion di = new DependencyInversion(
starMementoInternal, new InterfaceNode("StarMemento")
);
design.addDependencyInversion(di);
return design;
}
}