From 8ba29cd6f5cc3f4758417f171054d8cead202036 Mon Sep 17 00:00:00 2001 From: stefanmihet <122049318+stefanmihet@users.noreply.github.com> Date: Sat, 15 Apr 2023 10:46:42 +0300 Subject: [PATCH 1/4] adaugam o clasaa --- _1_basics/src/main/java/code/_3_in_class/bunaZiua.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 _1_basics/src/main/java/code/_3_in_class/bunaZiua.java diff --git a/_1_basics/src/main/java/code/_3_in_class/bunaZiua.java b/_1_basics/src/main/java/code/_3_in_class/bunaZiua.java new file mode 100644 index 000000000..3c605c094 --- /dev/null +++ b/_1_basics/src/main/java/code/_3_in_class/bunaZiua.java @@ -0,0 +1,7 @@ +package code._3_in_class; + +public class bunaZiua { + public static void main(String[] args) { + System.out.println("buna ziua:)"); + } +} From 2d295db4a46507f09ccb827941a5a14834295ca9 Mon Sep 17 00:00:00 2001 From: stefanmihet <122049318+stefanmihet@users.noreply.github.com> Date: Sat, 22 Apr 2023 14:20:40 +0300 Subject: [PATCH 2/4] mesaj --- .../main/java/code/_3_in_class/bunaZiua.java | 3 +- .../src/main/java/code/_3_in_class/Boxer.java | 30 +++++++++++++++++++ .../main/java/code/_3_in_class/BruceLee.java | 22 ++++++++++++++ .../main/java/code/_3_in_class/IBoxer.java | 7 +++++ .../src/main/java/code/_3_in_class/Main.java | 27 ++++++++++++++++- .../java/code/_3_in_class/interface01.java | 8 +++++ .../java/code/_3_in_class/interface02.java | 5 ++++ .../code/_3_in_class/someRandomClass.java | 13 ++++++++ .../java/code/_3_in_class/superBoxer.java | 23 ++++++++++++++ 9 files changed, 136 insertions(+), 2 deletions(-) create mode 100644 _2_oo/src/main/java/code/_3_in_class/Boxer.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/BruceLee.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/IBoxer.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/interface01.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/interface02.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/someRandomClass.java create mode 100644 _2_oo/src/main/java/code/_3_in_class/superBoxer.java diff --git a/_1_basics/src/main/java/code/_3_in_class/bunaZiua.java b/_1_basics/src/main/java/code/_3_in_class/bunaZiua.java index 3c605c094..d524bde4b 100644 --- a/_1_basics/src/main/java/code/_3_in_class/bunaZiua.java +++ b/_1_basics/src/main/java/code/_3_in_class/bunaZiua.java @@ -2,6 +2,7 @@ public class bunaZiua { public static void main(String[] args) { - System.out.println("buna ziua:)"); + System.out.println("buna ziua"); } } + diff --git a/_2_oo/src/main/java/code/_3_in_class/Boxer.java b/_2_oo/src/main/java/code/_3_in_class/Boxer.java new file mode 100644 index 000000000..f99c2f9b9 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/Boxer.java @@ -0,0 +1,30 @@ +package code._3_in_class; +import java.util.Random; + +public class Boxer { + String nume; + int health=100; + int damagePerAttack=10; + + public Boxer(String nume, int health, int damagePerAttack){ + this.nume=nume; + this.health=health; + this.damagePerAttack=damagePerAttack; + } + public Boxer(String nume){ + this.nume=nume; + } + + public void attak(Boxer opponent){ + int defendValue=(this.damagePerAttack*this.defend())/100; + opponent.health=opponent.health-(this.damagePerAttack+this.defend())/100; + System.out.println(("defendValue: "+defendValue)); + System.out.println(("newHealth: "+opponent.health)); + } + + public void defend() { + Random random=new Random(); + int defendPerc = random.nextInt(101); + return defendPerc; + } +} diff --git a/_2_oo/src/main/java/code/_3_in_class/BruceLee.java b/_2_oo/src/main/java/code/_3_in_class/BruceLee.java new file mode 100644 index 000000000..63979a116 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/BruceLee.java @@ -0,0 +1,22 @@ +package code._3_in_class; + +public class BruceLee { + String nume; + int health=100; + int damagePerAttack=10; + + public Boxer(String nume, int health, int damagePerAttack){ + this.nume=nume; + this.health=health; + this.damagePerAttack=damagePerAttack; + } + public Boxer(String nume){ + this.nume=nume; + } + + void attak(Boxer opponent){ + opponent.health=0; + } + void defend(){} +} + diff --git a/_2_oo/src/main/java/code/_3_in_class/IBoxer.java b/_2_oo/src/main/java/code/_3_in_class/IBoxer.java new file mode 100644 index 000000000..b8e28a877 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/IBoxer.java @@ -0,0 +1,7 @@ +package code._3_in_class; + +public interface IBoxer { + public void attack(Boxer opponent); + public int defent(); + +} diff --git a/_2_oo/src/main/java/code/_3_in_class/Main.java b/_2_oo/src/main/java/code/_3_in_class/Main.java index 3b87b4563..516b128bc 100644 --- a/_2_oo/src/main/java/code/_3_in_class/Main.java +++ b/_2_oo/src/main/java/code/_3_in_class/Main.java @@ -1,8 +1,33 @@ package code._3_in_class; - +import java.util.Random; public class Main { public static void main(String[] args) { //TODO put your code changes in here + IBoxer ion=new Boxer("ion", 100, 10); + IBoxer vasile=new Boxer("vasile"); + + startBoxingMatch(ion, vasile); + announceVictory(ion); + } + private static void announceVictory(Boxer ion) { + if(ion.health<=0) + System.out.println("vasile goooo"); + else + System.out.println("ion gooooo"); + } + + //startingBoxingMatch + + + private static void startBoxingMatch(Boxer ion, Boxer vasile){ + Random random= new Random(); + while (ion.health>0 && vasile.health>0){ + int zeroOrOne= random.nextInt(2); + if(zeroOrOne==0) + ion.attak((vasile)); + else + vasile.attak((ion)); + } } } \ No newline at end of file diff --git a/_2_oo/src/main/java/code/_3_in_class/interface01.java b/_2_oo/src/main/java/code/_3_in_class/interface01.java new file mode 100644 index 000000000..960ed2a3c --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/interface01.java @@ -0,0 +1,8 @@ +package code._3_in_class; + +public interface interface01 { + default void m(){ + System.out.println("helllo from m()"); + } +} + diff --git a/_2_oo/src/main/java/code/_3_in_class/interface02.java b/_2_oo/src/main/java/code/_3_in_class/interface02.java new file mode 100644 index 000000000..1501b8f6a --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/interface02.java @@ -0,0 +1,5 @@ +package code._3_in_class; + +public interface interface02 { + default void m2 +} diff --git a/_2_oo/src/main/java/code/_3_in_class/someRandomClass.java b/_2_oo/src/main/java/code/_3_in_class/someRandomClass.java new file mode 100644 index 000000000..6e1f5de80 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/someRandomClass.java @@ -0,0 +1,13 @@ +package code._3_in_class; + +public class someRandomClass implements interface01, interface02{ + public static void main(){ + someRandomClass c= new someRandomClass(); + c.m(); + } + + @Override + public void m(){ + interface02.super.m(); + } +} diff --git a/_2_oo/src/main/java/code/_3_in_class/superBoxer.java b/_2_oo/src/main/java/code/_3_in_class/superBoxer.java new file mode 100644 index 000000000..a1bc0b255 --- /dev/null +++ b/_2_oo/src/main/java/code/_3_in_class/superBoxer.java @@ -0,0 +1,23 @@ +package code._3_in_class; + +public class superBoxer implements IBoxer { + String nume; + int health=100; + int damagePerAttack=10; + + public Boxer(String nume, int health, int damagePerAttack){ + this.nume=nume; + this.health=health; + this.damagePerAttack=damagePerAttack; + } + public superBoxer(String nume){ + this.nume=nume; + } + @Override + public void attack(Boxer opponent){ + + } + + @Override + public void defent(); +} From 97dc7cc918b14a881f4da4b9f04876f3108dde63 Mon Sep 17 00:00:00 2001 From: stefanmihet <122049318+stefanmihet@users.noreply.github.com> Date: Sat, 20 May 2023 12:32:38 +0300 Subject: [PATCH 3/4] letso --- .../code/chess/requirements/ChessBoard.java | 24 +++++-- .../code/chess/requirements/MovementType.java | 2 +- .../clean/code/chess/requirements/Pawn.java | 50 +++++++++++--- .../out/production/Iterator/DiscJockey.class | Bin 0 -> 2118 bytes .../production/Iterator/RadioStation.class | Bin 0 -> 764 bytes .../out/production/Iterator/SongInfo.class | Bin 0 -> 773 bytes .../production/Iterator/SongIterator.class | Bin 0 -> 155 bytes .../production/Iterator/SongsOfThe70s.class | Bin 0 -> 1206 bytes .../production/Iterator/SongsOfThe80s.class | Bin 0 -> 1162 bytes .../production/Iterator/SongsOfThe90s.class | Bin 0 -> 1488 bytes .../requirements/Iterator/src/DiscJockey.java | 57 ++++++++++++++++ .../Iterator/src/RadioStation.java | 19 ++++++ .../requirements/Iterator/src/SongInfo.java | 24 +++++++ .../Iterator/src/SongIterator.java | 9 +++ .../Iterator/src/SongsOfThe70s.java | 39 +++++++++++ .../Iterator/src/SongsOfThe80s.java | 49 ++++++++++++++ .../Iterator/src/SongsOfThe90s.java | 54 ++++++++++++++++ .../out/production/Observer/GetTheStock.class | Bin 0 -> 2093 bytes .../out/production/Observer/GrabStocks.class | Bin 0 -> 1194 bytes .../out/production/Observer/Observer.class | Bin 0 -> 123 bytes .../production/Observer/StockGrabber.class | Bin 0 -> 2261 bytes .../production/Observer/StockObserver.class | Bin 0 -> 1584 bytes .../out/production/Observer/Subject.class | Bin 0 -> 182 bytes .../Observer/src/GetTheStock.java | 52 +++++++++++++++ .../requirements/Observer/src/GrabStocks.java | 51 +++++++++++++++ .../requirements/Observer/src/Observer.java | 5 ++ .../Observer/src/StockGrabber.java | 61 ++++++++++++++++++ .../Observer/src/StockObserver.java | 41 ++++++++++++ .../requirements/Observer/src/Subject.java | 11 ++++ 29 files changed, 531 insertions(+), 17 deletions(-) create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/out/production/Iterator/DiscJockey.class create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/out/production/Iterator/RadioStation.class create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/out/production/Iterator/SongInfo.class create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/out/production/Iterator/SongIterator.class create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/out/production/Iterator/SongsOfThe70s.class create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/out/production/Iterator/SongsOfThe80s.class create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/out/production/Iterator/SongsOfThe90s.class create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/DiscJockey.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/RadioStation.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongInfo.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongIterator.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongsOfThe70s.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongsOfThe80s.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongsOfThe90s.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/out/production/Observer/GetTheStock.class create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/out/production/Observer/GrabStocks.class create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/out/production/Observer/Observer.class create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/out/production/Observer/StockGrabber.class create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/out/production/Observer/StockObserver.class create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/out/production/Observer/Subject.class create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/src/GetTheStock.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/src/GrabStocks.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/src/Observer.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/src/StockGrabber.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/src/StockObserver.java create mode 100644 clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/src/Subject.java diff --git a/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/ChessBoard.java b/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/ChessBoard.java index 1e40d959f..e50b49cd9 100644 --- a/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/ChessBoard.java +++ b/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/ChessBoard.java @@ -2,21 +2,33 @@ public class ChessBoard { - public static int MAX_BOARD_WIDTH = 7; - public static int MAX_BOARD_HEIGHT = 7; + public static int MAX_BOARD_WIDTH = 8; + public static int MAX_BOARD_HEIGHT = 8; private Pawn[][] pieces; public ChessBoard() { pieces = new Pawn[MAX_BOARD_WIDTH][MAX_BOARD_HEIGHT]; + } + public void add(Pawn piece, int xCoordinate, int yCoordinate, PieceColor pieceColor) { + if (isLegalBoardPosition(xCoordinate, yCoordinate)) { + piece.setXCoordinate(xCoordinate); + piece.setYCoordinate(yCoordinate); + piece.setPieceColor(pieceColor); + pieces[xCoordinate][yCoordinate] = piece; + } } - public void Add(Pawn pawn, int xCoordinate, int yCoordinate, PieceColor pieceColor) { - throw new UnsupportedOperationException("Need to implement ChessBoard.add()"); + public boolean isLegalBoardPosition(int xCoordinate, int yCoordinate) { + return xCoordinate >= 0 && xCoordinate < MAX_BOARD_WIDTH && + yCoordinate >= 0 && yCoordinate < MAX_BOARD_HEIGHT; } - public boolean IsLegalBoardPosition(int xCoordinate, int yCoordinate) { - throw new UnsupportedOperationException("Need to implement ChessBoard.IsLegalBoardPosition()"); + public Pawn getPiece(int xCoordinate, int yCoordinate) { + if (isLegalBoardPosition(xCoordinate, yCoordinate)) { + return pieces[xCoordinate][yCoordinate]; + } + return null; } } diff --git a/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/MovementType.java b/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/MovementType.java index 326e0721f..8c7579157 100644 --- a/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/MovementType.java +++ b/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/MovementType.java @@ -2,5 +2,5 @@ public enum MovementType { - MOVE, CAPTURE; + MOVE, FORWARD, CAPTURE; } diff --git a/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/Pawn.java b/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/Pawn.java index e589abeb7..658ab1bd9 100644 --- a/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/Pawn.java +++ b/clean_code_projects/_1_project_requirements_chess/src/main/java/clean/code/chess/requirements/Pawn.java @@ -11,10 +11,6 @@ public Pawn(PieceColor pieceColor) { this.pieceColor = pieceColor; } - public ChessBoard getChesssBoard() { - return chessBoard; - } - public void setChessBoard(ChessBoard chessBoard) { this.chessBoard = chessBoard; } @@ -39,21 +35,55 @@ public PieceColor getPieceColor() { return this.pieceColor; } - private void setPieceColor(PieceColor value) { + void setPieceColor(PieceColor value) { pieceColor = value; } - public void Move(MovementType movementType, int newX, int newY) { - throw new UnsupportedOperationException("Need to implement Pawn.Move()"); + private boolean isValidForwardMove(int newX, int newY) { + int direction = (pieceColor == PieceColor.WHITE) ? 1 : -1; + if (newX == xCoordinate + direction && newY == yCoordinate) { + return chessBoard.isLegalBoardPosition(newX, newY) && chessBoard.getPiece(newX, newY) == null; + } + return false; + } + + + public void move(MovementType movementType, int newX, int newY) { + if (movementType == MovementType.FORWARD) { + if (isValidForwardMove(newX, newY)) { + chessBoard.getPiece(xCoordinate, yCoordinate).setXCoordinate(newX); + chessBoard.getPiece(xCoordinate, yCoordinate).setYCoordinate(newY); + chessBoard.add(chessBoard.getPiece(xCoordinate, yCoordinate), newX, newY, pieceColor); + chessBoard.add(null, xCoordinate, yCoordinate, null); + } + } else if (movementType == MovementType.CAPTURE) { + if (isValidCaptureMove(newX, newY)) { + chessBoard.add(null, newX, newY, null); + chessBoard.getPiece(xCoordinate, yCoordinate).setXCoordinate(newX); + chessBoard.getPiece(xCoordinate, yCoordinate).setYCoordinate(newY); + chessBoard.add(chessBoard.getPiece(xCoordinate, yCoordinate), newX, newY, pieceColor); + chessBoard.add(null, xCoordinate, yCoordinate, null); + } + } + } + + private boolean isValidCaptureMove(int newX, int newY) { + int direction = (pieceColor == PieceColor.WHITE) ? 1 : -1; + if (newX == xCoordinate + direction && Math.abs(newY - yCoordinate) == 1) { + return chessBoard.isLegalBoardPosition(newX, newY) && chessBoard.getPiece(newX, newY) != null && + chessBoard.getPiece(newX, newY).getPieceColor() != pieceColor; + } + return false; } + @Override public String toString() { - return CurrentPositionAsString(); + return currentPositionAsString(); } - protected String CurrentPositionAsString() { + protected String currentPositionAsString() { String eol = System.lineSeparator(); - return String.format("Current X: {1}{0}Current Y: {2}{0}Piece Color: {3}", eol, xCoordinate, yCoordinate, pieceColor); + return String.format("Current X: %d%sCurrent Y: %d%sPiece Color: %s", xCoordinate, eol, yCoordinate, eol, pieceColor); } } diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/out/production/Iterator/DiscJockey.class b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/out/production/Iterator/DiscJockey.class new file mode 100644 index 0000000000000000000000000000000000000000..73abfabec85fe260469296d49aa46fa8e697df9e GIT binary patch literal 2118 zcmaJ?Yg-dX6n-aAHiShm+)Aq$D{2xhQL*I`v;snj4Z)HWiuSgIfh>ewn%!vmCvE>g zKetb@kACp!XMa@NcP5*VD32eKIp@robKdjLnX_;Hef1i^JyatIq0KQe0A||?E3Pc{-Uh$DzJd`H_rtQnh^er#% zI{Ti$g{%@Xv{}AeNvo3=O!TN@+H)rGR2vsfL>n8kjg5W`7#K7$gb!PwNV*-s}nyYLCF85lKj9XD80bG59#NEE)Tmrp41L@i3y zx67%zoiO797d2%ucQ59bWQ-INVHimhV;C3c)<6m+84x=Zz-bMX*bHOx?NH=662`5! z&15*zg*%usaM#4A_)H+GIcNz<3QCrjlRuMV-u)AGV#dTQ<^o5 zO^37RMv%sR6QAROK-a$Xl|5%2NrBeG0k6t^(Zo{SebI7umAkSpn^?gY0zC|~Ev?Fi zEKAFiyBc05%7)IEc!VznhK{U5x#T)U%ips75+%>K9G_h|5YGhn(0rT3>#43K^$f2Y z*IVBsrU8EwM>nm)u=a)04FwnX4Y{$V$Q5Dbo_o zx<#wJX;o~c2gY{4WHYUqJ$r`C+2zRRx>a;F4Nb#uXc}*~S8|`%8|zMRX*Cl1&uiAY zhYqE0*wb+|c^O_dCqk`4%8D8_5!CBv6X$)ac(`UA2hbyVw^}L66Ys)9LsaupEmi|rf0gj*MbmBR=J!fF?{-*Eg=!% z1!f#aR+h?^=Sk1NPXgE9sqH+-26+1;?|0<@uhoaEoGBqbk`Df|SmQsC!@6D{<14*# zs_T_wTCbeST-zY{dD!58o?4kv+PU^8|At78ox(_tpQ1ZCaf;qQXb+*l|3RJr`sg`; zPHGo8#rrUfuW3!z&SMi>)EEihFptpEHYJ6!A5SQ$%uk89micv%Irk^}qQfunaq=%1 zFL6~MOQ~B+Ym|Dmq`ht`udx?Ms3Q|f84r|{QfNt>VV>ky4g5BQF~aZB6-qJO;FzDp zHB52Lr>Q+a9IHr>zpWde{U4-HqG@249Y3;e489k;WF;xrkd-R z=D42KIAiqfV;w)j()`Xf*q_6WMqFf!cJ9s4bC+@m5_??3M7+=65nO5!O2??c$MFB* CqW0RlTJfnrC8gZSX&a2Py&6g#ku!le}c%;1i}ms9w2gBK0HBH+AL zvA?VRv*5FXGFD9wmj#+N&lGr{1d&X1)c#*o@0!dt7gtU9#dxScv8!2sk8P|AxF2L+ z=}saOr9%PhjqV2mB~OLH{`t5UM2E6BB2w|RFGpP&DHHzztz@WTfo1QaNSi8SsVKHq zJN6d)>Lig02km;7yo?6STm1(uP>9X;xH!{BYLir+liXgKB=DEy3ezM3lJ;2k_tY6j zalOS}NjM#S9{IsLWyV~&ILSlPJno>%8!%r6!dwCE2BQ|epwBfX5MO8XHCjW1|8-h- z{s1>{lhG1x;WiPI{Dnd}`o4&2C! zKa_4?29BGJqW-%gCX^Olw)FvunqE>|&1lqjrfmX3Huz^?%>_C!A}2%u literal 0 HcmV?d00001 diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/out/production/Iterator/SongsOfThe70s.class b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/out/production/Iterator/SongsOfThe70s.class new file mode 100644 index 0000000000000000000000000000000000000000..46d82238ca172fddf8a808ad28381e97a510d2de GIT binary patch literal 1206 zcmZux?M@Rx6g|@qcDpPsEJ6W67XfX{M*&fkA_^KwO$B2K1piIjp)6@<<918JTWM5C zB=G@!DC3=NDHZv#vom+@J?EY?v-|tc&tCvuV9P)VVGR)zQS>nMpYT(jt#Mh+?v_qO z*=OikcckNQFoaX-eGNLpV35@GomzI&^Y~f8Y4`>-gk$K1siDtA90`WLqARP7-J`u@ zvAWn`h?PXc4`K{MgL8&}%z%LT!ujtPc%-ac?@HM`jK zPMuTAxlc;AYp&;Tdz+t0*V8b`pey#gJaP@#m{Rs7l?O8>9^w(1Mg5V=?%rC4=F*>3 zUfM(kvjpS#!sEW{F$|~DU8dyQ@tlTvYCB--q{fO)RdT=S35Ln8qRw%w7p~gNZR8jt zuiXlzCJJQhPP1MT-X1U2C}I`dGOz7(5=ZNHFybFObXfmWA$6sfcEVicQV$9HFh-}x9$ySmlXXPz%9`@Mqq$JKqe8zX`R3f`U&2` zGVPc_6H9oE6h1bIC{r}S5y(g=3le2_@w{< literal 0 HcmV?d00001 diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/out/production/Iterator/SongsOfThe80s.class b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/out/production/Iterator/SongsOfThe80s.class new file mode 100644 index 0000000000000000000000000000000000000000..4b6a8b0c69e69389ac53c039b3a4cd1e966873ac GIT binary patch literal 1162 zcmZWoT~8W86g?x0yWk>%7OPde(pnd^Vo|FVYbz#35~7J165~q;7;z0B$?js}TYplU zXzfSZv=4phk7{~nK_E4RJ2Q9Y+;^Fap9)2XAA<}d7yOc^YP?ZR z9hNRc*<~2qvKp4V&EPW=#Q-z}R0MSlL1zdRnvJS+cy@d)HkKWRAh&IPRphmnU|=~F z!wi~ylWUwcC3Zwd1W|@SNjRpeOfl%Yc1zTZLaSaEwuTwvn&l1p*}Tp*7!2Wk!7Ik$ zrLc{CA!?3>I6036w;f}zX&ZZT7eok8rB;(cJj1*SQ%3^HJKbZ?&K|p z6r3|p`-ru5%_Q0`4-aM&(p0FY zW%sGF+pJJ8!g;G94qEk+u#b7EMxJQCS?0AOw=H?@I2HHYBIaSQA>F=aD7izLAMm;d zyeB)|mw2PnzSplvs3TDm+z}OOrbLq3y&e}&vPqR&Sg-$K+46Gz?!IHiksL8?a2;Cr@ zjE+VhMAYA(FrJJ)icUw=pWgOybT*>?qU}e54`7w-3{IT{IQf2=E>>lKZ literal 0 HcmV?d00001 diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/out/production/Iterator/SongsOfThe90s.class b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/out/production/Iterator/SongsOfThe90s.class new file mode 100644 index 0000000000000000000000000000000000000000..9d46f2cd7a0e2712a4fdaad623e0a68a18730738 GIT binary patch literal 1488 zcmah}Yje{^6g}$)vW-k)lLRP95R`{vDCQBu!y!#cp}0748)uTqx32AtEf7*hmYL=c z^!KzgkhEo{UpwuOVtQ5UBHaPcucf-Moxz+ydM!|D zKZ6U*bW^q+zpG?BgNp)%9qGQZe9sEI%Br`NB=P6eu;t6PMRnGW3a!R|;J03>(7+Xe zj835H?fE%e#x-5s^EoV_WZ=4q8~B2lqe@r3P<2$m%-=}2uj+dOGj?@hEYsMdqN`js zaSOL8d%w@_JQ$ZaXxX^L*fNe4n>5s26N|XV7Dv47&{;e7jGDXVyDmq7b*`MmeLOJm z(8MED1g1vK8#z(66RJRlKBdfjf>e#|6$6h2%&0g+*KEV-crxqSWb|S(U&L?3qJ$7wFzK#M% z{fQ@s_f6@w2lwWIk^#q1$)0M*k-FakxlwAA+EL+?(bS*$q$v(yz-jlz3BX!bQH71O%43Lcdh*SGY^yORju-TvN31hro4}ryrv; zuv9vND7}ZVdxY#e>)1YZWgItiKQ;fv>pEbLK$4 z6tZ0Nm_h*;$XFuhJxt>XZ%uNN32XS8U!k9LoW)PfC{3IF9+!8o-@iUKd(U! XapyNI3H%%E&KOvJSe-h<68P>Px?@SQ literal 0 HcmV?d00001 diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/DiscJockey.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/DiscJockey.java new file mode 100644 index 000000000..91de25ca6 --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/DiscJockey.java @@ -0,0 +1,57 @@ +package clean.code.design_patterns.requirements.Iterator.src; + +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.Hashtable; +import java.util.Iterator; + +public class DiscJockey { + + SongsOfThe70s songs70s; + SongsOfThe80s songs80s; + SongsOfThe90s songs90s; + + SongIterator iter70sSongs; + SongIterator iter80sSongs; + SongIterator iter90sSongs; + + + public DiscJockey(SongIterator newSongs70s, SongIterator newSongs80s, SongIterator newSongs90s) { + + iter70sSongs = newSongs70s; + iter80sSongs = newSongs80s; + iter90sSongs = newSongs90s; + + } + public void showTheSongs(){ + + Iterator Songs70s = iter70sSongs.createIterator(); + Iterator Songs80s = iter80sSongs.createIterator(); + Iterator Songs90s = iter90sSongs.createIterator(); + + System.out.println("Songs of the 70s\n"); + printTheSongs(Songs70s); + + System.out.println("Songs of the 80s\n"); + printTheSongs(Songs80s); + + System.out.println("Songs of the 90s\n"); + printTheSongs(Songs90s); + + } + + public void printTheSongs(Iterator iterator){ + + while(iterator.hasNext()){ + + SongInfo songInfo = (SongInfo) iterator.next(); + + System.out.println(songInfo.getSongName()); + System.out.println(songInfo.getBandName()); + System.out.println(songInfo.getYearReleased() + "\n"); + + } + + } + +} \ No newline at end of file diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/RadioStation.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/RadioStation.java new file mode 100644 index 000000000..5a20782dc --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/RadioStation.java @@ -0,0 +1,19 @@ +package clean.code.design_patterns.requirements.Iterator.src; + +public class RadioStation { + + public static void main(String[] args){ + + SongsOfThe70s songs70s = new SongsOfThe70s(); + SongsOfThe80s songs80s = new SongsOfThe80s(); + SongsOfThe90s songs90s = new SongsOfThe90s(); + + DiscJockey album = new DiscJockey(songs70s, songs80s, songs90s); + + // madMike.showTheSongs(); + + album.showTheSongs(); + + } + +} \ No newline at end of file diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongInfo.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongInfo.java new file mode 100644 index 000000000..a9ee63c1b --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongInfo.java @@ -0,0 +1,24 @@ +package clean.code.design_patterns.requirements.Iterator.src; + +public class SongInfo{ + + String songName; + String bandName; + int yearReleased; + + public SongInfo(String newSongName, String newBandName, int newYearReleased){ + songName = newSongName; + bandName = newBandName; + yearReleased = newYearReleased; + } + + public String getSongName(){ + return songName; + } + public String getBandName(){ + return bandName; + } + public int getYearReleased(){ + return yearReleased; + } +} \ No newline at end of file diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongIterator.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongIterator.java new file mode 100644 index 000000000..05fa65733 --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongIterator.java @@ -0,0 +1,9 @@ +package clean.code.design_patterns.requirements.Iterator.src; + +import java.util.Iterator; + +public interface SongIterator { + + public Iterator createIterator(); + +} \ No newline at end of file diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongsOfThe70s.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongsOfThe70s.java new file mode 100644 index 000000000..a7fefe82e --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongsOfThe70s.java @@ -0,0 +1,39 @@ +package clean.code.design_patterns.requirements.Iterator.src; + +import java.util.ArrayList; +import java.util.Iterator; + +public class SongsOfThe70s implements SongIterator{ + + // ArrayList holds SongInfo objects + ArrayList bestSongs; + + public SongsOfThe70s() { + + bestSongs = new ArrayList(); + + addSong("Imagine", "John Lennon", 1971); + addSong("American Pie", "Don McLean", 1971); + addSong("I Will Survive", "Gloria Gaynor", 1979); + + } + + // Add a SongInfo object to the end of the ArrayList + public void addSong(String songName, String bandName, int yearReleased){ + + SongInfo songInfo = new SongInfo(songName, bandName, yearReleased); + + bestSongs.add(songInfo); + + } + + public ArrayList getBestSongs(){ + return bestSongs; + + } + + public Iterator createIterator() { + return bestSongs.iterator(); + } + +} \ No newline at end of file diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongsOfThe80s.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongsOfThe80s.java new file mode 100644 index 000000000..3d17fe2c6 --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongsOfThe80s.java @@ -0,0 +1,49 @@ +package clean.code.design_patterns.requirements.Iterator.src; + +import java.util.Arrays; +import java.util.Iterator; + +public class SongsOfThe80s implements SongIterator{ + + // Create an array of SongInfo Objects + SongInfo[] bestSongs; + + // Used to increment to the next position in the array + int arrayValue = 0; + + public SongsOfThe80s() { + + bestSongs = new SongInfo[3]; + + addSong("Roam", "B 52s", 1989); + addSong("Cruel Summer", "Bananarama", 1984); + addSong("Head Over Heels", "Tears For Fears", 1985); + + } + + // Add a SongInfo Object to the array and increment to the next position + public void addSong(String songName, String bandName, int yearReleased){ + + SongInfo song = new SongInfo(songName, bandName, yearReleased); + + bestSongs[arrayValue] = song; + + arrayValue++; + + } + + // This is replaced by the Iterator + public SongInfo[] getBestSongs(){ + + return bestSongs; + + } + + // NEW By adding this method I'll be able to treat all + // collections the same + @Override + public Iterator createIterator() { + return Arrays.asList(bestSongs).iterator(); + } + +} \ No newline at end of file diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongsOfThe90s.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongsOfThe90s.java new file mode 100644 index 000000000..1849030ac --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/SongsOfThe90s.java @@ -0,0 +1,54 @@ +package clean.code.design_patterns.requirements.Iterator.src; + +import java.util.Hashtable; +import java.util.Iterator; + +public class SongsOfThe90s implements SongIterator{ + + // Create a Hashtable with an int as a key and SongInfo + // Objects + + Hashtable bestSongs = new Hashtable(); + + // Will increment the Hashtable key + + int hashKey = 0; + + public SongsOfThe90s() { + + addSong("Losing My Religion", "REM", 1991); + addSong("Creep", "Radiohead", 1993); + addSong("Walk on the Ocean", "Toad The Wet Sprocket", 1991); + + } + + // Add a new SongInfo Object to the Hashtable and then increment + // the Hashtable key + + public void addSong(String songName, String bandName, int yearReleased){ + + SongInfo songInfo = new SongInfo(songName, bandName, yearReleased); + + bestSongs.put(hashKey, songInfo); + + hashKey++; + + } + + // This is replaced by the Iterator + // Return a Hashtable full of SongInfo Objects + + public Hashtable getBestSongs(){ + + return bestSongs; + + } + + // NEW By adding this method I'll be able to treat all + // collections the same + + public Iterator createIterator() { + return bestSongs.values().iterator(); + } + +} \ No newline at end of file diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/out/production/Observer/GetTheStock.class b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/out/production/Observer/GetTheStock.class new file mode 100644 index 0000000000000000000000000000000000000000..e18ff9e61de4570297321453867edf4c7ac57a97 GIT binary patch literal 2093 zcmZuyYg1cA7=AW{oDdGTluKhR(n4(#T2d9;N@yvNLWAMb22*Lh9g>9{lAIGyHe9@G z^^<>~pB!g8V@GGy))C6o8OP855@-Aae(?70CQ8!4OxWFbpZD4KecpZd{QCFfp8;IL z9Uok1(%{z73=c!+hOucx@`kk@SzO)VX~EzbH!V|KW@rkAQZ4YJMT1XAD|Cj|SuU2d zJSpsSjzKTUan>nM^t*X>*zoyL$d-g_!9?5C52;J>k8)AaRl82D>`PH zGq6}Q1xkNSzxi+!0S!;-IEJU|LS4=}+{j4oJm*CQcW^G0($LS)e{e|L65MghMZq&y zx6`~ROxyBd04Fq@)G>%5hV}#WydkobyJJ`xyP$H9c_zNwzyAAY{rjGYFDeraVTL~C zB>1+7#CX~)82K67DHy_wGZe|-$l#z4A&f|YBMd#k#=Ju*iFi)O^LT;ITvP568Vfao zeRvV)HC)hf5iixL5VOmxd6G=qH1cJ>xW@48VTaXFRy?ATGOA--O3<27EGbFhg{*pf zYF@(?s;;VXwYok`U`od{V&qcdf|SqB1^N9Ff37Gm^(zG8ilGiv(a*BWp3fNhSzkwE-QUR-HZC5 zs5nI#VxDf^Exaj_9t{R{!@=c>e+R`IBOsYcz-c=}CGSX>7GEeAsPC35 zzW#)rHu5RMG3B~ybc?J>IkzQh+BQmcvG`U}7>-yr3$o?n3|?hYT`i}o93;0>wkQSJ z6m%GaD?^toPzkNE0f?EIbQ)2obMr>A8iX%tmz^}9G38zDtcheqYCxtb+ZH9^7{z%m zvUaA_;lZX4TiDjHBkTDN!_a|TrnPD3c%)LON{MHTw6L8WhP$=JtpY2g*C>TNFAXJZ zJ6A478`Z6`)HyEi6!{_W+co&g!x^o;AytZLBcD&2f=9i0j~bng4X^=5`o}GcJJWfi zRN^HKA2OV3$nUVQHGEw6!qo*@&5(|%$D;&`Q0FTIm^PN0OV|gf@xB-9C^BFKTij%AlM2t#qq#Beyp?m9=_>D&p!I@!#%%` zXS#7J*NxNb@t+V{@ee=3*)exG;12(Yu3&l(=k_tWhcOD5EN%WvU#W@q3nnCD50lD# z^-1%rGS59}PW*sHxl_X*a0ls>$9M(U!wT*1;f+rjyZ=w>A;nK$J#^tXq)W)Y3DTjID>wiqvwAVmvNqWE>P|laR+0#izvRN@g9Arzb2ONaYbnwCWZR(ISQne zi#$Jq1)FRxe2XG!D%E{ZRs3z5_d)v;F1DZ%$6uJDuYIVu_YVwHSPpHwP=cV*OO9pw Ry^Hs0<)hgLMEwZ@{{n>t{}2EG literal 0 HcmV?d00001 diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/out/production/Observer/GrabStocks.class b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/out/production/Observer/GrabStocks.class new file mode 100644 index 0000000000000000000000000000000000000000..5f5820eb38ae50caf376288deeeb06eba176f8c4 GIT binary patch literal 1194 zcmZuwTTc@~7(G+kZYc}pQf?}OBG6KxAmW9haxds|2_-d+iOIHX+C|tV+bxei>8n4$ zC*y-JKB-BYNa7DL`j?DnwuRP&O?Kz|<~wudd}n5V{r&M1z+-4Zc+jH2tHKArK9veAFz`tZ#rt?IgB@#_52neVtrjOl{E@f; z6@wC|61TFluem@XM(5=t5ko3&ULcZtdr21|3nMCS;kH1qY}rQMEIEcvtr6`)C?zSl zLkUU4IV>1%69J5~UkVCh6cO1)RA8jh#kSV)DdpIvl}}J{05NKp@&cGPPYjBZn0qP~8LjqO|!1sd9LcY zqAbs&=_&|xXs)vQ)gXCmv3?!qq)NAV>3dU^Hu&@I4G;)7$+)ybKw({4TZ^Q%^deO( z+c{&?lr4uEUCqeT;i=!}<(7{Jv=DxNA2N$`6dZk%Rfw-{`4PXe48Du}sx<%-SYp=7 zALR*WxL6pxQ3~h2pF_!1(W;#zn2A-P?!>|fRnWzuw}O5S*DAPiQQf_=8k??Q_{z#T zMl&&A_ZT^=m{|1I^GTA++*i-1xQopF=a|V1daIbNVBU>=O|icgH(EVF*ljC-c61?x z0d!)R(Kvs`IC|+@A6xFnI<8|IL)ho9^@5037=uOB8%*FmV)%e5e8x1sVb-;6t7Z+J yVwwB_e8CD%QjC^^+FGY2Tj3)8O$(#pojz{tQ1G@gNh5ojDM0~?6N Kzz!st7&rj18X8If literal 0 HcmV?d00001 diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/out/production/Observer/StockGrabber.class b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/out/production/Observer/StockGrabber.class new file mode 100644 index 0000000000000000000000000000000000000000..90acc1bc6b818d72f61f5b845fda7984b617fdc6 GIT binary patch literal 2261 zcmaJ?Yj+b>6y3LtohF?=c?)6-MUwI;Me#u>(5AFR(xw_L0zSA&F6oeDCeBPs`_*5e zzrfGBq%3ePm!JI${u7r=-FIfvOeOf?X71zMz0cX_oSWbOe)%had2FZ9hkgSI6K`NZ zVC;$9lCuqI*Jg|5C#vEL3|zBp%fBwrpU!L;7!)`V7`1(?F}vWpa;IQj@kx^uWk!kZ}_eI6yX8t<;?dxdL`Ap1D-nHx+qdARf17}RUgR>pg_T$t2 zmS$_%|8YNp$ZY6PGbUzmj+t;()7et5@P(NQ)VpBfB4z~!Enm6PcPRVebmUu*uza+i z9l{(g8+g~md$=Mn(alH4gwAbBZ%u7e9p?UlzVU&H5Al&e!Vb0%cCh35F_5JL#VFaj zCgx3C#|`aOxk+^^3_&dEg9Q_d`XDJ~s}Y>&-6a#Zg58?q)Pmh1T*Zos+sIRecB?9V zLJXvrmX@?aL%3t2pv!l}c6{scPKVpT8iOdcqe@PeteP$Tw#&;?y$bMJp>s2PoiQYG zPL-yk1TM<9Wb2k5@a?6 zhHUk;!zhsI9&*vPyZ1(_s-b+)oO-*JeYGEBJNqu)-D#;F<_}}`QHRBwJc7u{Mx(@L%MRij7DgvUlVUQ=8Q(B7 zZ`;bvHKgY$&j7pW%qy|>3c2_~rY{d6BPIAJ#e8e!-mG z7JS)X{2H|3v(Mj8xLQO%XTaFZbBLK=VBCL>CK<+vKaNtc3hv-8 zKI2MY1NZju`p68VW`0KM+%CrMb&>Sn4sZneb=D|{L(2$-cknsx6Gz~|9$ua7ntv+7 zJ2?Lnj-E(7dWn<3E>7v~6T3*qXeQ_?A8^u~CfQk5S|*^I41xCOrtmPJOX4WLz?XDJ z=m#YV&Y91@Flb=zPkJu!2r}|#nV{OA)XdpuB;Ccw zU17r%WtrA_Mtx(CL`xc`NYBbV(c)HmW8UnAnIq;cVy?Ufvl?Nl-k7;wn0JV|O3dPG gFdqk){ire8K5W9`caVNR;b_6t8gS;Jji)&FFGMNyKL7v# literal 0 HcmV?d00001 diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/out/production/Observer/StockObserver.class b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/out/production/Observer/StockObserver.class new file mode 100644 index 0000000000000000000000000000000000000000..dc92fa9a93ab0f2a5be8179f965e370f13dcf313 GIT binary patch literal 1584 zcmaJ>>vGdZ6#mvX*+NN(As4O!b61}?y07->Yl-Kn=i5$uV8!3gDkJ>adD+~%xC zUqvZPzfl8YxX3W>$M&^qGvIbdTC$q7$Q!sME%alH940WSVamWXuAHi`u^&dFOJ(_e zs&c|ol{ZE;a;5*sU zQB`7dSE!RP4~8d_k{=kR3$<#sdJc9CWy*e774@}n)XCyDL#pEMP)%c&zg7V`VDZb%^CL>(sDNf=s`+!y|Ib6l56`IJ<1S@wDj;zaQ9Q%~5er zxh~39&@8O_eiTLl?`?=^*WU@pGN|czh1VJ^iEx8q_IREhZ_n?D(y+V3IauR%BF-<_}@-mvmX{^Jl8?z#;p66GxF z)WJ>h`^;f8W>^+KGr9|UZFS@64AWOuwk#>v>-BXhsarMA6G6r0VJJckO@_HMG@OS{ z1GV7h|C>^?hE(7d%~*nl=_xWKX0T>I&j!g9`K7T;>oeN* zkt9!G!TblzoF70lKVl^H{_S5F8DRV)E}MU2`~X*hPq;a6{)^cJ{#4GS|g z<|ll6oNAJ)2IgtKPuLa+Qwf)`q|%sF00lToGod(PN+(%Ksz1p~nv&Ahj8nfN9;Maw z7$;#h>06|4=>Xp=%*PeT_ZoOiFrTQb5(xRmS+l4f#l4|UfOL{*lmQqdTQaR|OcF0h cCa{KelB4wZl1?_&x`khq4MPLJ;tj5R1v?d2eE observers; + private double ibmPrice; + private double aaplPrice; + private double googPrice; + + public StockGrabber(){ + observers = new ArrayList(); + } + + public void register(Observer newObserver) { + observers.add(newObserver); + + } + + public void unregister(Observer deleteObserver) { + int observerIndex = observers.indexOf(deleteObserver); + System.out.println("Observer " + (observerIndex+1) + " deleted"); + observers.remove(observerIndex); + + } + + public void notifyObserver() { + + // Cycle through all observers and notifies them of + // price changes + for(Observer observer : observers){ + observer.update(ibmPrice, aaplPrice, googPrice); + } + } + + // Change prices for all stocks and notifies observers of changes + public void setIBMPrice(double newIBMPrice){ + this.ibmPrice = newIBMPrice; + notifyObserver(); + + } + + public void setAAPLPrice(double newAAPLPrice){ + + this.aaplPrice = newAAPLPrice; + + notifyObserver(); + + } + + public void setGOOGPrice(double newGOOGPrice){ + + this.googPrice = newGOOGPrice; + + notifyObserver(); + + } + +} \ No newline at end of file diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/src/StockObserver.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/src/StockObserver.java new file mode 100644 index 000000000..f775f9839 --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/src/StockObserver.java @@ -0,0 +1,41 @@ +package clean.code.design_patterns.requirements.Observer.src;// Represents each Observer that is monitoring changes in the subject + +public class StockObserver implements Observer { + + private double ibmPrice; + private double aaplPrice; + private double googPrice; + + private static int observerIDTracker = 0; + private int observerID; + private Subject stockGrabber; + + public StockObserver(Subject stockGrabber){ + // Store the reference to the stockGrabber object so + // I can make calls to its methods + this.stockGrabber = stockGrabber; + this.observerID = ++observerIDTracker; + System.out.println("New Observer " + this.observerID); + stockGrabber.register(this); + + } + + // Called to update all observers + public void update(double ibmPrice, double aaplPrice, double googPrice) { + + this.ibmPrice = ibmPrice; + this.aaplPrice = aaplPrice; + this.googPrice = googPrice; + + printThePrices(); + + } + + public void printThePrices(){ + + System.out.println(observerID + "\nIBM: " + ibmPrice + "\nAAPL: " + + aaplPrice + "\nGOOG: " + googPrice + "\n"); + + } + +} \ No newline at end of file diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/src/Subject.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/src/Subject.java new file mode 100644 index 000000000..138a63d8f --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Observer/src/Subject.java @@ -0,0 +1,11 @@ +package clean.code.design_patterns.requirements.Observer.src; + +// This interface handles adding, deleting and updating +// all observers +public interface Subject { + + public void register(Observer o); + public void unregister(Observer o); + public void notifyObserver(); + +} From 3e45f64c6a63ab86be98fb9ad072f12ec0529b39 Mon Sep 17 00:00:00 2001 From: stefanmihet <122049318+stefanmihet@users.noreply.github.com> Date: Sat, 20 May 2023 12:37:35 +0300 Subject: [PATCH 4/4] STEFAN MIHET --- .../design_patterns/requirements/Iterator/src/DiscJockey.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/DiscJockey.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/DiscJockey.java index 91de25ca6..1f9aa22af 100644 --- a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/DiscJockey.java +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Iterator/src/DiscJockey.java @@ -31,7 +31,7 @@ public void showTheSongs(){ System.out.println("Songs of the 70s\n"); printTheSongs(Songs70s); - + // :) System.out.println("Songs of the 80s\n"); printTheSongs(Songs80s);