diff --git a/models/designPattern/Chain-of-responsibility.Json b/models/designPattern/Chain-of-responsibility.Json deleted file mode 100644 index 78c4119..0000000 --- a/models/designPattern/Chain-of-responsibility.Json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "Chain-of-responsibility", - "contexts": [ - { - "relations": [], - "transfer": { - "src": "Main.Request", - "dst": "Main.{ConcreteOrcRequestHandler}.Request", - "data": { - "name": "request" - }, - "style": "PUSH", - "multiplicity": "1:*" - } - } - ] -} \ No newline at end of file diff --git a/models/designPattern/ChainOfResponsibility.Json b/models/designPattern/ChainOfResponsibility.Json new file mode 100644 index 0000000..93592c2 --- /dev/null +++ b/models/designPattern/ChainOfResponsibility.Json @@ -0,0 +1,17 @@ +{ + "name": "Chain of responsibility", + "contexts": [ + { + "relations": [], + "transfer": { + "src": "Main.Request", + "dst": "Main.{ConcreteOrcRequestHandler}.Request", + "data": { + "name": "request" + }, + "style": "PUSH", + "multiplicity": "1:*" + } + } + ] +} \ No newline at end of file diff --git a/models/designPattern/Command.Json b/models/designPattern/Command.Json index 2cc27d5..dcc37e7 100644 --- a/models/designPattern/Command.Json +++ b/models/designPattern/Command.Json @@ -2,18 +2,30 @@ "name": "Command", "contexts": [ { + "relations": [], + "transfer": { + "src": "Main.Goblin", + "dst": "Main.Wizard.Goblin", + "data": { + "name": "goblin" + }, + "style": "PUSH", + "multiplicity": "1:1" + } + }, + { "relations": [{ - "src": "main", - "dst": "main.{goblin}", + "src": "Main.Data", + "dst": "Main.Wizard.Goblin.Data", "multiplicity": "1:1" }], "transfer": { - "src": "main.wizard.Data", - "dst": "main.{goblin}.Data", + "src": "Main.Data", + "dst": "Main.Wizard.Goblin.Data", "data": { "name": "data" }, - "style": "PUSH", + "style": "PLAIN", "multiplicity": "1:1" } } diff --git a/models/designPattern/Command2.Json b/models/designPattern/Command2.Json deleted file mode 100644 index dcc37e7..0000000 --- a/models/designPattern/Command2.Json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "Command", - "contexts": [ - { - "relations": [], - "transfer": { - "src": "Main.Goblin", - "dst": "Main.Wizard.Goblin", - "data": { - "name": "goblin" - }, - "style": "PUSH", - "multiplicity": "1:1" - } - }, - { - "relations": [{ - "src": "Main.Data", - "dst": "Main.Wizard.Goblin.Data", - "multiplicity": "1:1" - }], - "transfer": { - "src": "Main.Data", - "dst": "Main.Wizard.Goblin.Data", - "data": { - "name": "data" - }, - "style": "PLAIN", - "multiplicity": "1:1" - } - } - ] -} \ No newline at end of file diff --git a/models/designPattern/Factory-method.Json b/models/designPattern/Factory-method.Json deleted file mode 100644 index 2af49da..0000000 --- a/models/designPattern/Factory-method.Json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "Factory-method", - "contexts": [ - { - "relations": [], - "transfer": { - "src": "Main.ConcreteBlacksmith.{Weapon}", - "dst": "Main.Weapon", - "data": { - "name": "weapon" - }, - "style": "PLAIN", - "multiplicity": "*:1" - } - } - ] -} \ No newline at end of file diff --git a/models/designPattern/FactoryMethod.Json b/models/designPattern/FactoryMethod.Json new file mode 100644 index 0000000..582c1d4 --- /dev/null +++ b/models/designPattern/FactoryMethod.Json @@ -0,0 +1,17 @@ +{ + "name": "Factory method", + "contexts": [ + { + "relations": [], + "transfer": { + "src": "Main.ConcreteBlacksmith.{Weapon}", + "dst": "Main.Weapon", + "data": { + "name": "weapon" + }, + "style": "PLAIN", + "multiplicity": "*:1" + } + } + ] +} \ No newline at end of file diff --git a/src/main/java/designPatternExtensions/designPattern/ChainOfResponsibility.java b/src/main/java/designPatternExtensions/designPattern/ChainOfResponsibility.java new file mode 100644 index 0000000..5a5e581 --- /dev/null +++ b/src/main/java/designPatternExtensions/designPattern/ChainOfResponsibility.java @@ -0,0 +1,45 @@ +package designPatternExtensions.designPattern; + +import designPatternExtensions.DependencyInversion; +import designPatternExtensions.InterfaceNode; +import designPatternExtensions.MediatorInsertion; +import designPatternExtensions.ModelLoader; +import models.deltaAlgebra.ObjectNode; +import models.dataSynchronizationModel.*; + +//メモ +//https://github.com/iluwatar/java-design-patterns/tree/master/chain-of-responsibility + +public class ChainOfResponsibility implements DesignPattern { + + public DataSynchronizationDesign create() throws IllegalRelationException { + DataSynchronizationDesign design = ModelLoader.load("models/designPattern/ChainOfResponsibility.Json"); + DataSynchronizationContext dtc = design.getSynchronizationContexts().getFirst(); + ObjectNode main = dtc.getSrcTopObject(); + ObjectNode concreteOrcRequestHandler = (ObjectNode) dtc.getDstObjectHierarchy().getEdge(0).getDestination(); + //ObjectNode concreteOrcRequestHandler = (ObjectNode) dtc.getDstResource().getEdge(0).getDestination(); + + InterfaceNode requestHandler = new InterfaceNode(concreteOrcRequestHandler, "RequestHandler"); + DependencyInversion di = new DependencyInversion(concreteOrcRequestHandler, requestHandler); + design.addDependencyInversion(di); + + MediatorInsertion mi = new MediatorInsertion(main, concreteOrcRequestHandler, new ObjectNode("OrcKing"), TransferStyle.PUSH); + design.addMediatorInsertion(mi); + + return design; + } +} + +/* + (RequestTypeなどは仕様?) + public class Request + + public class ConcreteOrcRequestHandler + + public class OrcKing { + + private List handlers; + } + + ConcreteOrcRequestHandler ---> RequestHandler + */ \ No newline at end of file diff --git a/src/main/java/designPatternExtensions/designPattern/Chain_of_Responsibility.java b/src/main/java/designPatternExtensions/designPattern/Chain_of_Responsibility.java deleted file mode 100644 index d3ade28..0000000 --- a/src/main/java/designPatternExtensions/designPattern/Chain_of_Responsibility.java +++ /dev/null @@ -1,45 +0,0 @@ -package designPatternExtensions.designPattern; - -import designPatternExtensions.DependencyInversion; -import designPatternExtensions.InterfaceNode; -import designPatternExtensions.MediatorInsertion; -import designPatternExtensions.ModelLoader; -import models.deltaAlgebra.ObjectNode; -import models.dataSynchronizationModel.*; - -//メモ -//https://github.com/iluwatar/java-design-patterns/tree/master/chain-of-responsibility - -public class Chain_of_Responsibility implements DesignPattern { - - 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(0).getDestination(); - //ObjectNode concreteOrcRequestHandler = (ObjectNode) dtc.getDstResource().getEdge(0).getDestination(); - - InterfaceNode requestHandler = new InterfaceNode(concreteOrcRequestHandler, "RequestHandler"); - DependencyInversion di = new DependencyInversion(concreteOrcRequestHandler, requestHandler); - design.addDependencyInversion(di); - - MediatorInsertion mi = new MediatorInsertion(main, concreteOrcRequestHandler, new ObjectNode("OrcKing"), TransferStyle.PUSH); - design.addMediatorInsertion(mi); - - return design; - } -} - -/* - (RequestTypeなどは仕様?) - public class Request - - public class ConcreteOrcRequestHandler - - public class OrcKing { - - private List handlers; - } - - ConcreteOrcRequestHandler ---> RequestHandler - */ \ No newline at end of file diff --git a/src/main/java/designPatternExtensions/designPattern/Command.java b/src/main/java/designPatternExtensions/designPattern/Command.java index 069a338..24af3ab 100644 --- a/src/main/java/designPatternExtensions/designPattern/Command.java +++ b/src/main/java/designPatternExtensions/designPattern/Command.java @@ -29,7 +29,7 @@ public class Command implements DesignPattern { public DataSynchronizationDesign create() throws IllegalRelationException { - DataSynchronizationDesign design = ModelLoader.load("models/designPattern/Command2.Json"); + DataSynchronizationDesign design = ModelLoader.load("models/designPattern/Command.Json"); DataSynchronizationContext dtc = design.getSynchronizationContexts().getFirst(); ObjectNode main = dtc.getDstTopObject(); ObjectNode wizard = (ObjectNode) dtc.getDstObjectHierarchy().getEdges().get(0).getDestination(); diff --git a/src/main/java/designPatternExtensions/designPattern/FactoryMethod.java b/src/main/java/designPatternExtensions/designPattern/FactoryMethod.java new file mode 100644 index 0000000..6f2bf56 --- /dev/null +++ b/src/main/java/designPatternExtensions/designPattern/FactoryMethod.java @@ -0,0 +1,25 @@ +package designPatternExtensions.designPattern; + +import designPatternExtensions.DependencyInversion; +import designPatternExtensions.InterfaceNode; +import designPatternExtensions.ModelLoader; +import models.deltaAlgebra.ObjectNode; +import models.dataSynchronizationModel.*; + +//メモ +//https://github.com/iluwatar/java-design-patterns/tree/master/prototype + +public class FactoryMethod implements DesignPattern{ + public DataSynchronizationDesign create() throws IllegalRelationException { + DataSynchronizationDesign design = ModelLoader.load("models/designPattern/FactoryMethod.Json"); + DataSynchronizationContext dtc = design.getSynchronizationContexts().getFirst(); + ObjectNode concreteBlacksmith = (ObjectNode) dtc.getSrcObjectHierarchy().getEdge(0).getDestination(); + ObjectNode main = dtc.getDstTopObject(); + + InterfaceNode blackSmith = new InterfaceNode(concreteBlacksmith, "Blacksmith"); + DependencyInversion di = new DependencyInversion(concreteBlacksmith, blackSmith); + design.addDependencyInversion(di); + + return design; + } +} \ No newline at end of file diff --git a/src/main/java/designPatternExtensions/designPattern/Factory_method.java b/src/main/java/designPatternExtensions/designPattern/Factory_method.java deleted file mode 100644 index 46eacf4..0000000 --- a/src/main/java/designPatternExtensions/designPattern/Factory_method.java +++ /dev/null @@ -1,25 +0,0 @@ -package designPatternExtensions.designPattern; - -import designPatternExtensions.DependencyInversion; -import designPatternExtensions.InterfaceNode; -import designPatternExtensions.ModelLoader; -import models.deltaAlgebra.ObjectNode; -import models.dataSynchronizationModel.*; - -//メモ -//https://github.com/iluwatar/java-design-patterns/tree/master/prototype - -public class Factory_method implements DesignPattern{ - public DataSynchronizationDesign create() throws IllegalRelationException { - DataSynchronizationDesign design = ModelLoader.load("models/designPattern/Factory-method.Json"); - DataSynchronizationContext dtc = design.getSynchronizationContexts().getFirst(); - ObjectNode concreteBlacksmith = (ObjectNode) dtc.getSrcObjectHierarchy().getEdge(0).getDestination(); - ObjectNode main = dtc.getDstTopObject(); - - InterfaceNode blackSmith = new InterfaceNode(concreteBlacksmith, "Blacksmith"); - DependencyInversion di = new DependencyInversion(concreteBlacksmith, blackSmith); - design.addDependencyInversion(di); - - return design; - } -} \ No newline at end of file diff --git a/src/test/java/parser/PatternTest.java b/src/test/java/parser/PatternTest.java index 27b46e4..4cf733c 100644 --- a/src/test/java/parser/PatternTest.java +++ b/src/test/java/parser/PatternTest.java @@ -10,12 +10,12 @@ @Test void adapter() throws Exception { run(new Adapter()); } @Test void bridge() throws Exception { run(new Bridge()); } @Test void builder() throws Exception { run(new Builder()); } - @Test void chainOfResponsibility() throws Exception { run(new Chain_of_Responsibility()); } + @Test void chainOfResponsibility() throws Exception { run(new ChainOfResponsibility()); } @Test void command() throws Exception { run(new Command()); } @Test void composite() throws Exception { run(new Composite()); } @Test void decorator() throws Exception { run(new Decorator()); } @Test void facade() throws Exception { run(new Facade()); } - @Test void factoryMethod() throws Exception { run(new Factory_method()); } + @Test void factoryMethod() throws Exception { run(new FactoryMethod()); } @Test void flyweight() throws Exception { run(new Flyweight()); } @Test void interpreter() throws Exception { run(new Interpreter()); } @Test void iterator() throws Exception { run(new Iterator()); }