package designPatternExtensions.designPattern;
import designPatternExtensions.MediatorInsertion;
import designPatternExtensions.PresenterInsertion;
import models.objectOrientedTransfer.*;
import designPatternExtensions.ModelLoader;
import java.util.ArrayList;
//メモ
//https://github.com/iluwatar/java-design-patterns/tree/master/builder
//staticがないとnew Hero().new Builder(...)のような形になり、Builderとして成立しない
//なんならメソッドチェーンもない
//Mainが仲介者になり、制御の委譲を用いる必要がある
public class Builder implements DesignPattern {
public DataTransferDesign create() throws IllegalRelationException {
DataTransferDesign design = ModelLoader.load("models/designPattern/Builder.Json");
DataTransferContext dtc = design.getTransferContexts().getFirst();
ObjectNode builder = dtc.getSrcFirstResource();
ObjectNode main = dtc.getDstFirstResource();
//
// MediatorInsertion mi = new MediatorInsertion(main, builder, new ObjectNode("Hero"));
// design.addMediatorInsertion(mi);
// PresenterInsertion pi = new PresenterInsertion(main, builder, new ObjectNode("Presenter"), dtc.getTransferStyle());
// design.addPresenterInsertion(pi);
return design;
}
}