Newer
Older
DesignCraft / src / main / java / designPatternExtensions / designPattern / Visitor.java
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;
    }
}