package designPatternExtensions.designPattern;
//メモ
//https://github.com/iluwatar/java-design-patterns/tree/master/visitor
//Commander->Sergent(Children) 1:多の転送ができないため不可能
//制御の委譲をできるようにする必要がある(自分の作業)
import designPatternExtensions.DependencyInversion;
import designPatternExtensions.InterfaceNode;
import designPatternExtensions.ModelLoader;
import models.deltaAlgebra.MultiplicityValue;
import models.deltaAlgebra.ObjectNode;
import models.deltaAlgebra.ReferenceEdge;
import models.objectOrientedTransfer.*;
import java.util.ArrayList;
import java.util.List;
public class Visitor implements DesignPattern{
public DataTransferDesign create() throws IllegalRelationException {
DataTransferDesign design = ModelLoader.load("models/designPattern/Visitor.Json");
DataTransferContext dtc = design.getTransferContexts().getFirst();
ObjectNode visitor = dtc.getDataType();
ObjectNode commander = dtc.getSrcFirstResource();
DependencyInversion di = new DependencyInversion(
visitor, new InterfaceNode(visitor, "UnitVisitor"), commander
);
design.addDependencyInversion(di);
return design;
}
}