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.getTransferStyle());
// design.addMediatorInsertion(mi);
ObjectNode presenter = new ObjectNode("Presenter");
PresenterInsertion pi = new PresenterInsertion(a, b, presenter, dtc.getTransferStyle());
design.addPresenterInsertion(pi);
return design;
}
}
//A側Mediatorのsetter作成
//PresenterのSetDataをupdateDataとして命名されるように
//Contextを持たせる理由
//DataTransferDesignにはContextのリストがあり、その時に、いずれかのコンテキストのデータ転送かを
//判別する必要があると思うので、それを区別するためにMediatorInsertionの引数に渡している
// Meが主導に時はPULL->PUSHになる -> PresenterInsertion or ControllerInsertionとして扱い
//PULLPULL PUSHPUSHはMediatorInsertionとして扱う