package designPatternExtensions;
import models.objectOrientedTransfer.*;
import java.util.ArrayList;
import java.util.List;
public class Bridge {
public static DataTransferDesign create() throws IllegalRelationException {
ObjectNode main = new ObjectNode("Main");
ObjectNode sword = new ObjectNode("Sword");
ObjectNode soulEatingEnchantment = new ObjectNode("SoulEatingEnchantment");
ObjectNode data = new ObjectNode("String");
List<ReferenceEdge> srcEdges = new ArrayList<>();
List<ReferenceEdge> dstEdges = new ArrayList<>();
srcEdges.add(new ReferenceEdge(main, soulEatingEnchantment, "soulEatingEnchantment", "String"));
dstEdges.add(new ReferenceEdge(main, sword, "sword", "String"));
List<Relation> relations = new ArrayList<>();
Relation transferRelation = new Relation(srcEdges, dstEdges, MultiplicityValue.OneToOne);
DataTransferContext context = new DataTransferContext(relations, transferRelation, data, "data", PushPullValue.PULL);
DataTransferDesign design = new DataTransferDesign(context);
DependencyInversion di1 = new DependencyInversion(sword, new InterfaceNode(sword, "Weapon"), main);
design.addDependencyInversion(di1);
DependencyInversion di2 = new DependencyInversion(soulEatingEnchantment, new InterfaceNode(soulEatingEnchantment, "Enchantment"), sword);
design.addDependencyInversion(di2);
return design;
}
}