diff --git a/DTRAM/src/adapter/Adapter.java b/DTRAM/src/adapter/Adapter.java new file mode 100644 index 0000000..3573a8b --- /dev/null +++ b/DTRAM/src/adapter/Adapter.java @@ -0,0 +1,29 @@ +package adapter; + +public class Adapter { + private FishingBoat fishingBoat; + private FishingBoatAdapter fishingBoatAdapter; + private Captain captain; + + public Adapter() { + fishingBoat = new FishingBoat(); + fishingBoatAdapter = new FishingBoatAdapter(fishingBoat); + captain = new Captain(fishingBoatAdapter); + } + + public void sail(String message) { + this.fishingBoat.sail(message); + } + + public String getFishingBoatAdapter() { + return fishingBoatAdapter.getValue(); + } + + public String getCaptain() { + return captain.getValue(); + } + + public String getFishingBoat() { + return fishingBoat.getValue(); + } +} \ No newline at end of file diff --git a/DTRAM/src/adapter/Captain.java b/DTRAM/src/adapter/Captain.java new file mode 100644 index 0000000..eb431a1 --- /dev/null +++ b/DTRAM/src/adapter/Captain.java @@ -0,0 +1,13 @@ +package adapter; + +public class Captain { + private FishingBoatAdapter fishingBoatAdapter; + + public Captain(FishingBoatAdapter fishingBoatAdapter) { + this.fishingBoatAdapter = fishingBoatAdapter; + } + + public String getValue() { + return this.fishingBoatAdapter.getValue(); + } +} \ No newline at end of file diff --git a/DTRAM/src/adapter/FishingBoat.java b/DTRAM/src/adapter/FishingBoat.java new file mode 100644 index 0000000..a43a3fc --- /dev/null +++ b/DTRAM/src/adapter/FishingBoat.java @@ -0,0 +1,13 @@ +package adapter; + +public class FishingBoat { + private String value = "TheFishingBoatIsSailing"; + + public void sail(String message) { + this.value = message; + } + + public String getValue() { + return value; + } +} \ No newline at end of file diff --git a/DTRAM/src/adapter/FishingBoatAdapter.java b/DTRAM/src/adapter/FishingBoatAdapter.java new file mode 100644 index 0000000..0be2f04 --- /dev/null +++ b/DTRAM/src/adapter/FishingBoatAdapter.java @@ -0,0 +1,13 @@ +package adapter; + +public class FishingBoatAdapter { + private FishingBoat fishingBoat; + + public FishingBoatAdapter(FishingBoat fishingBoat) { + this.fishingBoat = fishingBoat; + } + + public String getValue() { + return this.fishingBoat.getValue(); + } +} \ No newline at end of file diff --git a/DTRAM/src/observer/Hobbits.java b/DTRAM/src/observer/Hobbits.java new file mode 100644 index 0000000..9fc6226 --- /dev/null +++ b/DTRAM/src/observer/Hobbits.java @@ -0,0 +1,30 @@ +package observer; + +import java.util.AbstractMap; +import java.util.Map; + +public class Hobbits { + private Logger logger; + private Map.Entry value = new AbstractMap.SimpleEntry<>(1,"hobbits"); + public void updateWeather(int weather) { + Map.Entry temp_if23; + if ((weather==this.value.getKey())) { + temp_if23 = this.value; + } else { + return; + } + value = temp_if23; + this.logger.updateHobbits(value); + } + public Hobbits(Logger logger) { + this.logger = logger; + } + public void update(String type, int id) { + this.value = new AbstractMap.SimpleEntry<>(id, type); + this.logger.updateHobbits(value); + this.logger.updateHobbits(value); + } + public Map.Entry getValue() { + return value; + } +} \ No newline at end of file diff --git a/DTRAM/src/observer/Logger.java b/DTRAM/src/observer/Logger.java new file mode 100644 index 0000000..b88d251 --- /dev/null +++ b/DTRAM/src/observer/Logger.java @@ -0,0 +1,20 @@ +package observer; + +import java.util.Map; + +public class Logger { + private Map.Entry orcs; + private Map.Entry hobbits; + private String value = "not started"; // init + public void updateOrcs(Map.Entry orcs) { + this.orcs = orcs; + value = orcs.getValue(); + } + public void updateHobbits(Map.Entry hobbits) { + this.hobbits = hobbits; + value = hobbits.getValue(); + } + public String getValue() { + return value; + } +} \ No newline at end of file diff --git a/DTRAM/src/observer/Observer.java b/DTRAM/src/observer/Observer.java new file mode 100644 index 0000000..b686ed9 --- /dev/null +++ b/DTRAM/src/observer/Observer.java @@ -0,0 +1,35 @@ +package observer; + +import java.util.Map; + +public class Observer { + private Logger logger; + private Orcs orcs; + private Hobbits hobbits; + private Weather weather; + public Observer() { + logger = new Logger(); + orcs = new Orcs(logger); + hobbits = new Hobbits(logger); + weather = new Weather(orcs,hobbits); + } + public void update(String type, int id) { + this.hobbits.update(type, id); + this.orcs.update(type, id); + } + public void timePasses() { + this.weather.timePasses(); + } + public Map.Entry getHobbits() { + return hobbits.getValue(); + } + public Map.Entry getOrcs() { + return orcs.getValue(); + } + public String getLogger() { + return logger.getValue(); + } + public int getWeather() { + return weather.getValue(); + } +} \ No newline at end of file diff --git a/DTRAM/src/observer/Orcs.java b/DTRAM/src/observer/Orcs.java new file mode 100644 index 0000000..18e99c2 --- /dev/null +++ b/DTRAM/src/observer/Orcs.java @@ -0,0 +1,30 @@ +package observer; + +import java.util.AbstractMap; +import java.util.Map; + +public class Orcs { + private Logger logger; + private Map.Entry value = new AbstractMap.SimpleEntry<>(0,"orcs"); + public void updateWeather(int weather) { + Map.Entry temp_if22; + if ((weather==this.value.getKey())) { + temp_if22 = this.value; + } else { + return; + } + value = temp_if22; + this.logger.updateOrcs(value); + } + public Orcs(Logger logger) { + this.logger = logger; + } + public void update(String type, int id) { + this.value = new AbstractMap.SimpleEntry<>(id, type); + this.logger.updateOrcs(value); + this.logger.updateOrcs(value); + } + public Map.Entry getValue() { + return value; + } +} \ No newline at end of file diff --git a/DTRAM/src/observer/Weather.java b/DTRAM/src/observer/Weather.java new file mode 100644 index 0000000..4d717fb --- /dev/null +++ b/DTRAM/src/observer/Weather.java @@ -0,0 +1,19 @@ +package observer; + +public class Weather { + private Orcs orcs; + private Hobbits hobbits; + private int value = 0; + public Weather(Orcs orcs, Hobbits hobbits) { + this.orcs = orcs; + this.hobbits = hobbits; + } + public void timePasses() { + this.value = ((this.value+1)%2); + this.orcs.updateWeather(value); + this.hobbits.updateWeather(value); + } + public int getValue() { + return value; + } +} \ No newline at end of file diff --git a/DTRAM/src/tests/AdapterTest.java b/DTRAM/src/tests/AdapterTest.java new file mode 100644 index 0000000..5d5f15e --- /dev/null +++ b/DTRAM/src/tests/AdapterTest.java @@ -0,0 +1,11 @@ +package tests; + +import adapter.Adapter; + +public class AdapterTest { + public static void main(String[] args){ + Adapter adapter = new Adapter(); + + System.out.println(adapter.getCaptain()); + } +} diff --git a/DTRAM/src/tests/ObserverTest.java b/DTRAM/src/tests/ObserverTest.java new file mode 100644 index 0000000..16856c6 --- /dev/null +++ b/DTRAM/src/tests/ObserverTest.java @@ -0,0 +1,20 @@ +package tests; + +import observer.Observer; + +public class ObserverTest { + public static void main(String[] args){ + Observer observer = new Observer(); + + System.out.println(observer.getLogger()); + observer.timePasses(); + + System.out.println("\n-past-"); + System.out.println(observer.getLogger()); + observer.timePasses(); + + System.out.println("\n-past-"); + System.out.println(observer.getLogger()); + observer.timePasses(); + } +} diff --git a/README.md b/README.md index c477247..4b57fad 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ -GeneratedDesingPetternsByDTRAM +GeneratedDesignPatternsByDTRAM =============== diff --git a/UML/Adapter/classAdapter.wsd b/UML/Adapter/classAdapter.wsd new file mode 100644 index 0000000..c847461 --- /dev/null +++ b/UML/Adapter/classAdapter.wsd @@ -0,0 +1,39 @@ +@startuml class adapter + +namespace DTRAM{ + class Adapter + class Captain{ + +getValue():String + } + class FishingBoat{ + -value:String + -- + +sail(message:String):String + +getValue():String + } + class FishingBoatAdapter{ + +getValue():String + } + + Adapter o---> Captain + Adapter o---> FishingBoatAdapter + Adapter o---> FishingBoat + + Captain o-right-> FishingBoatAdapter + FishingBoatAdapter o-left-> Captain + FishingBoatAdapter o-right-> FishingBoat +} + +namespace Iluwatar{ + class App + class Captain + class FishingBoat + + interface RowingBoat + class FishingBoatAdapter + + Captain o-right-> RowingBoat + RowingBoat .up.|> FishingBoatAdapter + FishingBoatAdapter o-right-> FishingBoat +} +@enduml \ No newline at end of file diff --git a/UML/Adapter/sequenceDTRAMAdapter.wsd b/UML/Adapter/sequenceDTRAMAdapter.wsd new file mode 100644 index 0000000..868d9c5 --- /dev/null +++ b/UML/Adapter/sequenceDTRAMAdapter.wsd @@ -0,0 +1,21 @@ +@startuml sequence DTRAM adapter + + Adapter -> Captain : getCaptain() + activate Captain + + Captain -> FishingBoatAdapter : getValue() + activate FishingBoatAdapter + + FishingBoatAdapter -> FishingBoat : getValue() + activate FishingBoat + + FishingBoat --> FishingBoatAdapter : return value + deactivate FishingBoat + + FishingBoatAdapter --> Captain : return fishingBoatAdapter.getValue() + deactivate FishingBoatAdapter + + Captain --> Adapter : return captain.getValue() + deactivate Captain + +@enduml \ No newline at end of file diff --git a/UML/Adapter/sequenceIluwatarAdapter.wsd b/UML/Adapter/sequenceIluwatarAdapter.wsd new file mode 100644 index 0000000..6dc7508 --- /dev/null +++ b/UML/Adapter/sequenceIluwatarAdapter.wsd @@ -0,0 +1,26 @@ +@startuml sequence DTRAM adapter + + App -> Captain : row() + activate Captain + + Captain -> RowingBoat : row() + activate RowingBoat + + RowingBoat -> FishingBoatAdapter : row() + activate FishingBoatAdapter + + FishingBoatAdapter -> FishingBoat : row() + activate FishingBoat + + FishingBoat --> FishingBoatAdapter : sail() + deactivate FishingBoat + + FishingBoatAdapter --> RowingBoat + deactivate FishingBoatAdapter + + RowingBoat --> Captain : row() + deactivate RowingBoat + + Captain --> App + +@enduml \ No newline at end of file diff --git a/UML/Observer/classObserver.wsd b/UML/Observer/classObserver.wsd new file mode 100644 index 0000000..1711d83 --- /dev/null +++ b/UML/Observer/classObserver.wsd @@ -0,0 +1,43 @@ +@startuml class adapter + +namespace DTRAM{ + class Observer + class Logger + class Weather{ + +timePasses():void + } + class Orcs{ + +update(type:String,int id):void + } + class Hobbits{ + +update(type:String,int id):void + } + + Observer o---> Logger + Observer o---> Weather + Observer o---> Orcs + Observer o---> Hobbits + + Weather o--> Orcs + Weather o--> Hobbits + + Orcs o--> Logger + Hobbits o--> Logger +} + +namespace Iluwatar{ + class Weather{ + +timePasses():void + } + + interface WeatherObserver<>{ + +update(type:WeatherType):void + } + class Hobbits + class Orcs + + Weather o-down-> WeatherObserver + Hobbits .up.|> WeatherObserver + Orcs .up.|> WeatherObserver +} +@enduml \ No newline at end of file diff --git a/UML/Observer/sequenceDTRAMObserver.wsd b/UML/Observer/sequenceDTRAMObserver.wsd new file mode 100644 index 0000000..9ebb44b --- /dev/null +++ b/UML/Observer/sequenceDTRAMObserver.wsd @@ -0,0 +1,33 @@ +@startuml sequence DTRAM observer + +Observer -> Weather : timePasses() +activate Weather + +Weather -> Orcs : updateWeather(value:int) +activate Orcs + +Orcs -> Logger : updateOrcs(value:Map.Entry) +activate Logger + +Logger --> Orcs +deactivate Logger + +Orcs --> Weather +deactivate Orcs + +Weather -> Hobbits : updateWeather(value:int) +activate Hobbits + +Hobbits -> Logger : updateHobbits(value:Map.Entry) +activate Logger + +Logger --> Hobbits +deactivate Logger + +Hobbits --> Weather +deactivate Hobbits + +Weather --> Observer +deactivate Weather + +@enduml \ No newline at end of file diff --git a/UML/Observer/sequenceIluwatarObserver.wsd b/UML/Observer/sequenceIluwatarObserver.wsd new file mode 100644 index 0000000..9c8c667 --- /dev/null +++ b/UML/Observer/sequenceIluwatarObserver.wsd @@ -0,0 +1,21 @@ +@startuml sequence Iluwatar observer + +App -> Weather : timePasses() +activate Weather + +Weather -> WeatherObserver : observers.update(currentWeather:WeatherType) +activate WeatherObserver + +WeatherObserver -> LOGGER : info() +activate LOGGER + +LOGGER --> WeatherObserver +deactivate LOGGER + +WeatherObserver --> Weather +deactivate WeatherObserver + +Weather --> App +deactivate Weather + +@enduml \ No newline at end of file diff --git a/models/Adapter.model b/models/Adapter.model new file mode 100644 index 0000000..3bb6134 --- /dev/null +++ b/models/Adapter.model @@ -0,0 +1,18 @@ +init{ + fishingBoat := "TheFishingBoatIsSailing" +} + +channel CIO1 { + out fishingBoat(fb:Str, sail(message:Str)) == message +} + +channel C1{ + in fishingBoat(fb2:Str, sail(s2)) == s2 + out fishingBoatAdapter(fa:Str, sail(s2)) == s2 +} + +channel C2{ + in fishingBoatAdapter(fa2:Str, row(s3)) == s3 + out captain(cp1:Str, row(s3)) == s3 +} + diff --git a/out/production/DTRAM/adapter/Adapter.class b/out/production/DTRAM/adapter/Adapter.class new file mode 100644 index 0000000..729670b --- /dev/null +++ b/out/production/DTRAM/adapter/Adapter.class Binary files differ diff --git a/out/production/DTRAM/adapter/Captain.class b/out/production/DTRAM/adapter/Captain.class new file mode 100644 index 0000000..7622b0e --- /dev/null +++ b/out/production/DTRAM/adapter/Captain.class Binary files differ diff --git a/out/production/DTRAM/adapter/FishingBoat.class b/out/production/DTRAM/adapter/FishingBoat.class new file mode 100644 index 0000000..32e8347 --- /dev/null +++ b/out/production/DTRAM/adapter/FishingBoat.class Binary files differ diff --git a/out/production/DTRAM/adapter/FishingBoatAdapter.class b/out/production/DTRAM/adapter/FishingBoatAdapter.class new file mode 100644 index 0000000..c592ded --- /dev/null +++ b/out/production/DTRAM/adapter/FishingBoatAdapter.class Binary files differ diff --git a/out/production/DTRAM/tests/AdapterTest.class b/out/production/DTRAM/tests/AdapterTest.class new file mode 100644 index 0000000..3d10fab --- /dev/null +++ b/out/production/DTRAM/tests/AdapterTest.class Binary files differ