Newer
Older
DesignCraft / src / main / java / designPatternExtensions / designPattern / MediatorInsertionTest.java

package designPatternExtensions.designPattern;

        import designPatternExtensions.*;
        import models.objectOrientedTransfer.*;

public class MediatorInsertionTest implements DesignPattern {

    public DataTransferDesign create() throws IllegalRelationException {
        DataTransferDesign design = ModelLoader.load("models/designPattern/MediatorInsertionTest.Json");
        DataTransferContext dtc = design.getTransferContexts().getFirst();
        ObjectNode a = dtc.getSrcFirstResource();
        ObjectNode b = dtc.getDstFirstResource();

        ObjectNode me = new ObjectNode("Me");
        MediatorInsertion mi = new MediatorInsertion(a, b, me, dtc);
        design.addMediatorInsertion(mi);
       // ControlFlowInversion ci = new ControlFlowInversion(mi, PushPullValue.PUSH);

        return design;
    }
}

//Contextを持たせる理由
//DataTransferDesignにはContextのリストがあり、その時に、いずれかのコンテキストのデータ転送かを
//判別する必要があると思うので、それを区別するためにMediatorInsertionの引数に渡している

// A -PUSH-> B にMediatorInsertionする場合はnew MediatorInsertion(A, B, me);
// A -PULL-> B の時はnew MediatorInsertion(B, A, me);
// Meが主導に時はPULL->PUSHになる?