Newer
Older
DesignCraft / src / main / java / designPatternExtensions / Bridge.java
@c-okada c-okada 4 days ago 1 KB Pull用にCommit
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;
    }
}