diff --git a/models/designPattern/Facade.Json b/models/designPattern/Facade.Json index e7f5b1f..4966ec9 100644 --- a/models/designPattern/Facade.Json +++ b/models/designPattern/Facade.Json @@ -2,18 +2,11 @@ "name" : "Facade", "contexts" : [ { - "relations": [ - { - "src": "Main", - "dst": "Main.DwarvenGoldmineFacade.{ConcreteDwarvenDigger}", - "multiplicity": "1:1" - } - ], + "relations": [], "transfer": { - "src": "Main", - "dst": "Main.DwarvenGoldmineFacade.{ConcreteDwarvenDigger}", + "src": "Main.Data", + "dst": "Main.{ConcreteDwarvenDigger}.Data", "data": { - "type": "Data", "name": "data" }, "style": "PUSH", diff --git a/models/designPattern/Flyweight.Json b/models/designPattern/Flyweight.Json index bfa4d32..f049a7b 100644 --- a/models/designPattern/Flyweight.Json +++ b/models/designPattern/Flyweight.Json @@ -4,8 +4,8 @@ { "relations": [ { - "src": "Main.AlchemistShop", - "dst": "Main.AlchemistShop.TopShelf.{Potion}", + "src": "Main.AlchemistShop.PotionFactory.{Potion}", + "dst": "Main.AlchemistShop", "multiplicity": "1:1" } ], @@ -13,24 +13,22 @@ "src": "Main.AlchemistShop.PotionFactory.{Potion}", "dst": "Main.AlchemistShop.TopShelf.{Potion}", "data": { - "type": "Data", "name": "data" }, "style": "PULL", - "multiplicity": "*:1" + "multiplicity": "*:*" } }, { "relations": [], "transfer": { - "src": "Main", - "dst": "Main.AlchemistShop.TopShelf.{Potion}", + "src": "Main.AlchemistShop.TopShelf.{Potion}.Data", + "dst": "Main.Data", "data": { - "type": "Data", "name": "data" }, - "style": "PUSH", - "multiplicity": "1:*" + "style": "PULL", + "multiplicity": "*:1" } } ] diff --git a/models/designPattern/Mediator2.Json b/models/designPattern/Mediator2.Json index ee80533..bb64029 100644 --- a/models/designPattern/Mediator2.Json +++ b/models/designPattern/Mediator2.Json @@ -4,9 +4,9 @@ { "relations": [], "transfer": { - "src": "Main", - "dst": "Main.PartyImpl.{ConcretePartyMember}", - "data": { "type": "Action", "name": "action" }, + "src": "Main.Action", + "dst": "Main.PartyImpl.{ConcretePartyMember}.Action", + "data": { "name": "action" }, "style": "PUSH", "multiplicity": "1:1" } @@ -15,9 +15,9 @@ "relations": [ ], "transfer": { - "src": "Main.PartyImpl.{ConcretePartyMember}", - "dst": "Main.PartyImpl.{ConcretePartyMember}", - "data": { "type": "Action", "name": "action" }, + "src": "Main.PartyImpl.{ConcretePartyMember}.Action", + "dst": "Main.PartyImpl.{ConcretePartyMember}.Action", + "data": { "name": "action" }, "style": "PUSH", "multiplicity": "1:*" } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 5fc3b72..7570aeb 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -43,7 +43,7 @@ // DependencyInversion di = new DependencyInversion(company, new InterfaceNode(company, "ICompany"), customer); // design.addDependencyInversion(di); -// design = new Memento().create(); + design = new Flyweight().create(); System.out.println(design.getDeltaComplex()); System.out.println(ASTGenerator.generate(design)); diff --git a/src/main/java/designPatternExtensions/designPattern/AbstractFactory.java b/src/main/java/designPatternExtensions/designPattern/AbstractFactory.java index c0a5019..00d1d30 100644 --- a/src/main/java/designPatternExtensions/designPattern/AbstractFactory.java +++ b/src/main/java/designPatternExtensions/designPattern/AbstractFactory.java @@ -2,7 +2,7 @@ import designPatternExtensions.*; import models.deltaAlgebra.ObjectNode; -import models.objectOrientedTransfer.*; +import models.dataSynchronizationModel.*; import designPatternExtensions.ModelLoader; //https://github.com/iluwatar/java-design-patterns/tree/master/abstract-factory diff --git a/src/main/java/designPatternExtensions/designPattern/Bridge.java b/src/main/java/designPatternExtensions/designPattern/Bridge.java index 484b1a7..b653766 100644 --- a/src/main/java/designPatternExtensions/designPattern/Bridge.java +++ b/src/main/java/designPatternExtensions/designPattern/Bridge.java @@ -3,7 +3,7 @@ import designPatternExtensions.DependencyInversion; import designPatternExtensions.InterfaceNode; import models.deltaAlgebra.ObjectNode; -import models.objectOrientedTransfer.*; +import models.dataSynchronizationModel.*; import designPatternExtensions.ModelLoader; //メモ @@ -13,8 +13,8 @@ public DataSynchronizationDesign create() throws IllegalRelationException { DataSynchronizationDesign design = ModelLoader.load("models/designPattern/"+this.getClass().getSimpleName()+".Json"); - ObjectNode concreteEnchant = (ObjectNode) design.getSynchronizationContexts().getFirst().getSrcResource().getEdge(0).getDestination(); - ObjectNode concreteWeapon = (ObjectNode) design.getSynchronizationContexts().getFirst().getDstResource().getEdge(0).getDestination(); + ObjectNode concreteEnchant = (ObjectNode) design.getSynchronizationContexts().getFirst().getSrcObjectHierarchy().getEdge(0).getDestination(); + ObjectNode concreteWeapon = (ObjectNode) design.getSynchronizationContexts().getFirst().getDstObjectHierarchy().getEdge(0).getDestination(); DependencyInversion di1 = new DependencyInversion(concreteWeapon, new InterfaceNode(concreteWeapon, "Weapon")); design.addDependencyInversion(di1); diff --git a/src/main/java/designPatternExtensions/designPattern/Chain_of_Responsibility.java b/src/main/java/designPatternExtensions/designPattern/Chain_of_Responsibility.java index 531d9d3..96e423c 100644 --- a/src/main/java/designPatternExtensions/designPattern/Chain_of_Responsibility.java +++ b/src/main/java/designPatternExtensions/designPattern/Chain_of_Responsibility.java @@ -5,10 +5,7 @@ import designPatternExtensions.MediatorInsertion; import designPatternExtensions.ModelLoader; import models.deltaAlgebra.ObjectNode; -import models.objectOrientedTransfer.DataTransferContext; -import models.objectOrientedTransfer.DataTransferDesign; -import models.objectOrientedTransfer.IllegalRelationException; -import models.objectOrientedTransfer.PushPullValue; +import models.dataSynchronizationModel.*; import javax.print.attribute.standard.Media; @@ -17,11 +14,11 @@ public class Chain_of_Responsibility implements DesignPattern { - public DataTransferDesign create() throws IllegalRelationException { - DataTransferDesign design = ModelLoader.load("models/designPattern/Chain-of-responsibility.Json"); - DataTransferContext dtc = design.getTransferContexts().getFirst(); - ObjectNode main = dtc.getSrcFirstResource(); - ObjectNode concreteOrcRequestHandler = (ObjectNode) dtc.getDstResource().getEdge(1).getDestination(); + public DataSynchronizationDesign create() throws IllegalRelationException { + DataSynchronizationDesign design = ModelLoader.load("models/designPattern/Chain-of-responsibility.Json"); + DataSynchronizationContext dtc = design.getSynchronizationContexts().getFirst(); + ObjectNode main = dtc.getSrcTopObject(); + ObjectNode concreteOrcRequestHandler = (ObjectNode) dtc.getDstObjectHierarchy().getEdge(1).getDestination(); //ObjectNode concreteOrcRequestHandler = (ObjectNode) dtc.getDstResource().getEdge(0).getDestination(); InterfaceNode requestHandler = new InterfaceNode(concreteOrcRequestHandler, "RequestHandler"); diff --git a/src/main/java/designPatternExtensions/designPattern/Composite.java b/src/main/java/designPatternExtensions/designPattern/Composite.java index 7975f82..abe40bb 100644 --- a/src/main/java/designPatternExtensions/designPattern/Composite.java +++ b/src/main/java/designPatternExtensions/designPattern/Composite.java @@ -4,22 +4,20 @@ import designPatternExtensions.InterfaceNode; import designPatternExtensions.ModelLoader; import models.deltaAlgebra.ObjectNode; -import models.objectOrientedTransfer.DataTransferContext; -import models.objectOrientedTransfer.DataTransferDesign; -import models.objectOrientedTransfer.IllegalRelationException; +import models.dataSynchronizationModel.*; //メモ //https://github.com/iluwatar/java-design-patterns/tree/master/composite public class Composite implements DesignPattern{ - public DataTransferDesign create() throws IllegalRelationException { - DataTransferDesign design = ModelLoader.load("models/designPattern/"+this.getClass().getSimpleName()+".Json"); - DataTransferContext dtc = design.getTransferContexts().getFirst(); - ObjectNode sentence = (ObjectNode) dtc.getSrcResource().getEdges().get(0).getDestination(); - ObjectNode main = dtc.getDstFirstResource(); - DataTransferContext dtc3 = design.getTransferContexts().get(3); - ObjectNode letter = dtc3.getSrcFirstResource(); - ObjectNode word = dtc3.getDstFirstResource(); + public DataSynchronizationDesign create() throws IllegalRelationException { + DataSynchronizationDesign design = ModelLoader.load("models/designPattern/"+this.getClass().getSimpleName()+".Json"); + DataSynchronizationContext dtc = design.getSynchronizationContexts().getFirst(); + ObjectNode sentence = (ObjectNode) dtc.getSrcObjectHierarchy().getEdges().get(0).getDestination(); + ObjectNode main = dtc.getDstTopObject(); + DataSynchronizationContext dtc3 = design.getSynchronizationContexts().get(3); + ObjectNode letter = dtc3.getSrcTopObject(); + ObjectNode word = dtc3.getDstTopObject(); InterfaceNode LetterComposite = new InterfaceNode(sentence, "LetterComposite"); DependencyInversion di = new DependencyInversion(sentence, LetterComposite, main); diff --git a/src/main/java/designPatternExtensions/designPattern/Facade.java b/src/main/java/designPatternExtensions/designPattern/Facade.java index fd5600d..0562122 100644 --- a/src/main/java/designPatternExtensions/designPattern/Facade.java +++ b/src/main/java/designPatternExtensions/designPattern/Facade.java @@ -5,20 +5,22 @@ import designPatternExtensions.MediatorInsertion; import designPatternExtensions.ModelLoader; import models.deltaAlgebra.ObjectNode; -import models.objectOrientedTransfer.DataTransferContext; -import models.objectOrientedTransfer.DataTransferDesign; -import models.objectOrientedTransfer.IllegalRelationException; +import models.dataSynchronizationModel.*; //https://github.com/iluwatar/java-design-patterns/tree/master/facade public class Facade implements DesignPattern { - public DataTransferDesign create() throws IllegalRelationException { - DataTransferDesign design = ModelLoader.load("models/designPattern/"+this.getClass().getSimpleName()+".Json"); - DataTransferContext dtc = design.getTransferContexts().getFirst(); - ObjectNode main = dtc.getSrcFirstResource(); - ObjectNode concreteDwarvenDigger = (ObjectNode) dtc.getDstResource().getEdge(1).getDestination(); + public DataSynchronizationDesign create() throws IllegalRelationException { + DataSynchronizationDesign design = ModelLoader.load("models/designPattern/"+this.getClass().getSimpleName()+".Json"); + DataSynchronizationContext dtc = design.getSynchronizationContexts().getFirst(); + ObjectNode main = dtc.getSrcTopObject(); + ObjectNode facade = new ObjectNode("DwarvenGoldmineFacade"); + ObjectNode concreteDwarvenDigger = (ObjectNode) dtc.getDstObjectHierarchy().getEdge(0).getDestination(); + + MediatorInsertion mi = new MediatorInsertion(main, concreteDwarvenDigger, facade, dtc.getTransferStyle()); + design.addMediatorInsertion(mi); DependencyInversion di = new DependencyInversion(concreteDwarvenDigger, new InterfaceNode(concreteDwarvenDigger, "DwarvenMineWorker")); design.addDependencyInversion(di); diff --git a/src/main/java/designPatternExtensions/designPattern/Factory_method.java b/src/main/java/designPatternExtensions/designPattern/Factory_method.java index 77e9773..072e3fd 100644 --- a/src/main/java/designPatternExtensions/designPattern/Factory_method.java +++ b/src/main/java/designPatternExtensions/designPattern/Factory_method.java @@ -4,19 +4,17 @@ import designPatternExtensions.InterfaceNode; import designPatternExtensions.ModelLoader; import models.deltaAlgebra.ObjectNode; -import models.objectOrientedTransfer.DataTransferContext; -import models.objectOrientedTransfer.DataTransferDesign; -import models.objectOrientedTransfer.IllegalRelationException; +import models.dataSynchronizationModel.*; //メモ //https://github.com/iluwatar/java-design-patterns/tree/master/prototype public class Factory_method implements DesignPattern{ - public DataTransferDesign create() throws IllegalRelationException { - DataTransferDesign design = ModelLoader.load("models/designPattern/Factory-method.Json"); - DataTransferContext dtc = design.getTransferContexts().getFirst(); - ObjectNode concreteBlacksmith = dtc.getSrcFirstResource(); - ObjectNode main = dtc.getDstFirstResource(); + public DataSynchronizationDesign create() throws IllegalRelationException { + DataSynchronizationDesign design = ModelLoader.load("models/designPattern/Factory-method.Json"); + DataSynchronizationContext dtc = design.getSynchronizationContexts().getFirst(); + ObjectNode concreteBlacksmith = dtc.getSrcTopObject(); + ObjectNode main = dtc.getDstTopObject(); InterfaceNode blackSmith = new InterfaceNode(concreteBlacksmith, "Blacksmith"); DependencyInversion di = new DependencyInversion(concreteBlacksmith, blackSmith); diff --git a/src/main/java/designPatternExtensions/designPattern/Flyweight.java b/src/main/java/designPatternExtensions/designPattern/Flyweight.java index cdef3e4..f098c92 100644 --- a/src/main/java/designPatternExtensions/designPattern/Flyweight.java +++ b/src/main/java/designPatternExtensions/designPattern/Flyweight.java @@ -5,18 +5,16 @@ import designPatternExtensions.MediatorInsertion; import designPatternExtensions.ModelLoader; import models.deltaAlgebra.ObjectNode; -import models.objectOrientedTransfer.DataTransferContext; -import models.objectOrientedTransfer.DataTransferDesign; -import models.objectOrientedTransfer.IllegalRelationException; +import models.dataSynchronizationModel.*; //https://github.com/iluwatar/java-design-patterns/tree/master/facade public class Flyweight implements DesignPattern { - public DataTransferDesign create() throws IllegalRelationException { - DataTransferDesign design = ModelLoader.load("models/designPattern/"+this.getClass().getSimpleName()+".Json"); - DataTransferContext dtc = design.getTransferContexts().getLast(); + public DataSynchronizationDesign create() throws IllegalRelationException { + DataSynchronizationDesign design = ModelLoader.load("models/designPattern/"+this.getClass().getSimpleName()+".Json"); + DataSynchronizationContext dtc = design.getSynchronizationContexts().getLast(); // ObjectNode potion = (ObjectNode) dtc.getSrcResource().getEdge(0).getDestination(); // ObjectNode alchemistShop = dtc.getDstFirstResource(); // diff --git a/src/main/java/designPatternExtensions/designPattern/Interpreter.java b/src/main/java/designPatternExtensions/designPattern/Interpreter.java index 2b317a3..b46f65e 100644 --- a/src/main/java/designPatternExtensions/designPattern/Interpreter.java +++ b/src/main/java/designPatternExtensions/designPattern/Interpreter.java @@ -4,19 +4,17 @@ import designPatternExtensions.InterfaceNode; import designPatternExtensions.ModelLoader; import models.deltaAlgebra.ObjectNode; -import models.objectOrientedTransfer.DataTransferContext; -import models.objectOrientedTransfer.DataTransferDesign; -import models.objectOrientedTransfer.IllegalRelationException; +import models.dataSynchronizationModel.*; //メモ //https://github.com/iluwatar/java-design-patterns/tree/master/prototype public class Interpreter implements DesignPattern{ - public DataTransferDesign create() throws IllegalRelationException { - DataTransferDesign design = ModelLoader.load("models/designPattern/Interpreter.Json"); - DataTransferContext dtc = design.getTransferContexts().getFirst(); - ObjectNode main = dtc.getSrcFirstResource(); - ObjectNode concreteExpression = dtc.getDstFirstResource(); + public DataSynchronizationDesign create() throws IllegalRelationException { + DataSynchronizationDesign design = ModelLoader.load("models/designPattern/Interpreter.Json"); + DataSynchronizationContext dtc = design.getSynchronizationContexts().getFirst(); + ObjectNode main = dtc.getSrcTopObject(); + ObjectNode concreteExpression = dtc.getDstTopObject(); InterfaceNode expression = new InterfaceNode(concreteExpression, "Expression"); DependencyInversion di = new DependencyInversion(concreteExpression, expression); diff --git a/src/main/java/designPatternExtensions/designPattern/Mediator.java b/src/main/java/designPatternExtensions/designPattern/Mediator.java index f96da78..01a3697 100644 --- a/src/main/java/designPatternExtensions/designPattern/Mediator.java +++ b/src/main/java/designPatternExtensions/designPattern/Mediator.java @@ -2,23 +2,20 @@ import designPatternExtensions.*; import models.deltaAlgebra.ObjectNode; -import models.objectOrientedTransfer.DataTransferContext; -import models.objectOrientedTransfer.DataTransferDesign; -import models.objectOrientedTransfer.IllegalRelationException; -import models.objectOrientedTransfer.PushPullValue; +import models.dataSynchronizationModel.*; //concretePartyMemberがActionをおこすと、PartyImplからほかのPartyMemberの処理を呼び出す //https://github.com/iluwatar/java-design-patterns/tree/master/mediator public class Mediator implements DesignPattern { - public DataTransferDesign create() throws IllegalRelationException { - DataTransferDesign design = ModelLoader.load("models/designPattern/" + this.getClass().getSimpleName() + ".Json"); - DataTransferContext dtc = design.getTransferContexts().getFirst(); - ObjectNode main = dtc.getSrcFirstResource(); - ObjectNode partyImpl = dtc.getDstFirstResource(); - DataTransferContext dtc2 = design.getTransferContexts().getLast(); - ObjectNode concretePartyMember = (ObjectNode) dtc2.getDstResource().getEdge(0).getDestination(); + public DataSynchronizationDesign create() throws IllegalRelationException { + DataSynchronizationDesign design = ModelLoader.load("models/designPattern/" + this.getClass().getSimpleName() + ".Json"); + DataSynchronizationContext dtc = design.getSynchronizationContexts().getFirst(); + ObjectNode main = dtc.getSrcTopObject(); + ObjectNode partyImpl = dtc.getDstTopObject(); + DataSynchronizationContext dtc2 = design.getSynchronizationContexts().getLast(); + ObjectNode concretePartyMember = (ObjectNode) dtc2.getDstObjectHierarchy().getEdge(0).getDestination(); InterfaceNode partyMemberBase = new InterfaceNode(concretePartyMember, "PartyMemberBase"); DependencyInversion di = new DependencyInversion(concretePartyMember, partyMemberBase); diff --git a/src/main/java/designPatternExtensions/designPattern/Mediator2.java b/src/main/java/designPatternExtensions/designPattern/Mediator2.java index 8ea4c0b..28875a6 100644 --- a/src/main/java/designPatternExtensions/designPattern/Mediator2.java +++ b/src/main/java/designPatternExtensions/designPattern/Mediator2.java @@ -5,10 +5,7 @@ import designPatternExtensions.MediatorInsertion; import designPatternExtensions.ModelLoader; import models.deltaAlgebra.ObjectNode; -import models.objectOrientedTransfer.DataTransferContext; -import models.objectOrientedTransfer.DataTransferDesign; -import models.objectOrientedTransfer.IllegalRelationException; -import models.objectOrientedTransfer.PushPullValue; +import models.dataSynchronizationModel.*; //concretePartyMemberがActionをおこすと、PartyImplからほかのPartyMemberの処理を呼び出す //https://github.com/iluwatar/java-design-patterns/tree/master/mediator @@ -19,12 +16,12 @@ public class Mediator2 implements DesignPattern { - public DataTransferDesign create() throws IllegalRelationException { - DataTransferDesign design = ModelLoader.load("models/designPattern/" + this.getClass().getSimpleName() + ".Json"); - DataTransferContext dtc = design.getTransferContexts().getFirst(); - ObjectNode main = dtc.getSrcFirstResource(); - ObjectNode partyImpl = (ObjectNode) dtc.getDstResource().getEdge(0).getDestination(); - ObjectNode concretePartyMember = (ObjectNode) dtc.getDstResource().getEdge(1).getDestination(); + public DataSynchronizationDesign create() throws IllegalRelationException { + DataSynchronizationDesign design = ModelLoader.load("models/designPattern/" + this.getClass().getSimpleName() + ".Json"); + DataSynchronizationContext dtc = design.getSynchronizationContexts().getFirst(); + ObjectNode main = dtc.getSrcTopObject(); + ObjectNode partyImpl = (ObjectNode) dtc.getDstObjectHierarchy().getEdge(0).getDestination(); + ObjectNode concretePartyMember = (ObjectNode) dtc.getDstObjectHierarchy().getEdge(1).getDestination(); // InterfaceNode partyMemberBase = new InterfaceNode(concretePartyMember, "PartyMemberBase"); // DependencyInversion di = new DependencyInversion(concretePartyMember, partyMemberBase); @@ -40,7 +37,7 @@ ObjectNode imp2 = new ObjectNode("PartyImpl2"); - MediatorInsertion mi = new MediatorInsertion(concretePartyMember, concretePartyMember, imp2, PushPullValue.PUSH); + MediatorInsertion mi = new MediatorInsertion(concretePartyMember, concretePartyMember, partyImpl, PushPullValue.PUSH); design.addMediatorInsertion(mi); // MediatorInsertion mi2 = new MediatorInsertion(main, concretePartyMember, partyImpl, PushPullValue.PUSH); diff --git a/src/main/java/designPatternExtensions/designPattern/Visitor.java b/src/main/java/designPatternExtensions/designPattern/Visitor.java index 85b152b..6a7f6f3 100644 --- a/src/main/java/designPatternExtensions/designPattern/Visitor.java +++ b/src/main/java/designPatternExtensions/designPattern/Visitor.java @@ -20,7 +20,7 @@ public DataSynchronizationDesign create() throws IllegalRelationException { DataSynchronizationDesign design = ModelLoader.load("models/designPattern/Visitor.Json"); - DataSynchronizationContext dtc = design.getSynchronizationCContexts().getFirst(); + DataSynchronizationContext dtc = design.getSynchronizationContexts().getFirst(); ObjectNode visitor = dtc.getSrcObjectHierarchy().getBottom(); ObjectNode commander = dtc.getSrcTopObject();