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/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/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/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