From 3da9ad54699086441e5284ac25ba7985292388d1 Mon Sep 17 00:00:00 2001 From: matthew Date: Wed, 8 Oct 2014 13:42:12 +0100 Subject: [PATCH] Formatted all files to the same standard --- .../src/main/java/com/iluwatar/App.java | 32 ++--- .../src/main/java/com/iluwatar/ElfArmy.java | 2 +- .../src/main/java/com/iluwatar/ElfCastle.java | 2 +- .../src/main/java/com/iluwatar/ElfKing.java | 2 +- .../java/com/iluwatar/ElfKingdomFactory.java | 2 +- .../java/com/iluwatar/KingdomFactory.java | 6 +- .../src/main/java/com/iluwatar/OrcArmy.java | 2 +- .../src/main/java/com/iluwatar/OrcCastle.java | 2 +- .../src/main/java/com/iluwatar/OrcKing.java | 2 +- .../java/com/iluwatar/OrcKingdomFactory.java | 2 +- adapter/src/main/java/com/iluwatar/App.java | 14 +-- .../src/main/java/com/iluwatar/Engineer.java | 4 +- .../main/java/com/iluwatar/GnomeEngineer.java | 11 +- .../com/iluwatar/GnomeEngineeringManager.java | 9 +- .../main/java/com/iluwatar/GoblinGlider.java | 6 +- bridge/src/main/java/com/iluwatar/App.java | 41 ++++--- .../com/iluwatar/BlindingMagicWeapon.java | 4 +- .../src/main/java/com/iluwatar/Excalibur.java | 3 +- .../java/com/iluwatar/FlyingMagicWeapon.java | 6 +- .../main/java/com/iluwatar/MagicWeapon.java | 14 +-- .../java/com/iluwatar/MagicWeaponImp.java | 8 +- .../src/main/java/com/iluwatar/Mjollnir.java | 3 +- .../com/iluwatar/SoulEatingMagicWeapon.java | 6 +- .../iluwatar/SoulEatingMagicWeaponImp.java | 2 +- builder/src/main/java/com/iluwatar/App.java | 39 +++---- builder/src/main/java/com/iluwatar/Armor.java | 22 ++-- .../src/main/java/com/iluwatar/HairColor.java | 26 +++-- .../src/main/java/com/iluwatar/HairType.java | 24 ++-- builder/src/main/java/com/iluwatar/Hero.java | 21 ++-- .../main/java/com/iluwatar/Profession.java | 22 ++-- .../src/main/java/com/iluwatar/Weapon.java | 26 +++-- chain/src/main/java/com/iluwatar/App.java | 17 +-- .../main/java/com/iluwatar/OrcCommander.java | 2 +- chain/src/main/java/com/iluwatar/OrcKing.java | 10 +- .../main/java/com/iluwatar/OrcOfficer.java | 2 +- .../java/com/iluwatar/RequestHandler.java | 4 +- .../main/java/com/iluwatar/RequestType.java | 6 +- command/src/main/java/com/iluwatar/App.java | 26 ++--- .../src/main/java/com/iluwatar/Command.java | 8 +- .../src/main/java/com/iluwatar/Goblin.java | 2 +- .../java/com/iluwatar/InvisibilitySpell.java | 4 +- .../main/java/com/iluwatar/ShrinkSpell.java | 6 +- command/src/main/java/com/iluwatar/Size.java | 9 +- .../src/main/java/com/iluwatar/Target.java | 7 +- .../main/java/com/iluwatar/Visibility.java | 9 +- .../src/main/java/com/iluwatar/Wizard.java | 8 +- composite/src/main/java/com/iluwatar/App.java | 22 ++-- .../java/com/iluwatar/LetterComposite.java | 10 +- .../src/main/java/com/iluwatar/Messenger.java | 51 ++++---- .../src/main/java/com/iluwatar/Sentence.java | 5 +- .../src/main/java/com/iluwatar/Word.java | 4 +- decorator/src/main/java/com/iluwatar/App.java | 24 ++-- .../src/main/java/com/iluwatar/Hostile.java | 3 +- .../main/java/com/iluwatar/SmartTroll.java | 4 +- .../src/main/java/com/iluwatar/Troll.java | 4 +- .../src/main/java/com/iluwatar/App.java | 27 ++--- .../src/main/java/com/iluwatar/Inventory.java | 15 ++- facade/src/main/java/com/iluwatar/App.java | 16 +-- .../com/iluwatar/DwarvenGoldmineFacade.java | 16 +-- .../java/com/iluwatar/DwarvenMineWorker.java | 12 +- .../src/main/java/com/iluwatar/App.java | 32 ++--- .../main/java/com/iluwatar/Blacksmith.java | 4 +- .../main/java/com/iluwatar/ElfBlacksmith.java | 2 +- .../src/main/java/com/iluwatar/ElfWeapon.java | 2 +- .../main/java/com/iluwatar/OrcBlacksmith.java | 2 +- .../src/main/java/com/iluwatar/OrcWeapon.java | 2 +- .../main/java/com/iluwatar/WeaponType.java | 17 ++- .../main/java/com/iluwatar/AlchemistShop.java | 24 ++-- flyweight/src/main/java/com/iluwatar/App.java | 12 +- .../main/java/com/iluwatar/HealingPotion.java | 3 +- .../java/com/iluwatar/HolyWaterPotion.java | 3 +- .../java/com/iluwatar/InvisibilityPotion.java | 3 +- .../main/java/com/iluwatar/PoisonPotion.java | 3 +- .../src/main/java/com/iluwatar/Potion.java | 4 +- .../main/java/com/iluwatar/PotionFactory.java | 8 +- .../main/java/com/iluwatar/PotionType.java | 8 +- .../java/com/iluwatar/StrengthPotion.java | 3 +- .../src/main/java/com/iluwatar/App.java | 110 +++++++++--------- .../main/java/com/iluwatar/Expression.java | 2 +- .../java/com/iluwatar/MinusExpression.java | 2 +- .../java/com/iluwatar/MultiplyExpression.java | 5 +- .../java/com/iluwatar/NumberExpression.java | 4 +- .../java/com/iluwatar/PlusExpression.java | 2 +- iterator/src/main/java/com/iluwatar/App.java | 48 ++++---- iterator/src/main/java/com/iluwatar/Item.java | 2 +- .../main/java/com/iluwatar/ItemIterator.java | 4 +- .../src/main/java/com/iluwatar/ItemType.java | 7 +- .../main/java/com/iluwatar/TreasureChest.java | 8 +- .../iluwatar/TreasureChestItemIterator.java | 9 +- .../src/main/java/com/iluwatar/Action.java | 2 +- mediator/src/main/java/com/iluwatar/App.java | 34 +++--- .../src/main/java/com/iluwatar/Party.java | 6 +- .../src/main/java/com/iluwatar/PartyImpl.java | 16 +-- .../main/java/com/iluwatar/PartyMember.java | 4 +- .../java/com/iluwatar/PartyMemberBase.java | 4 +- memento/src/main/java/com/iluwatar/App.java | 46 ++++---- memento/src/main/java/com/iluwatar/Star.java | 23 ++-- .../main/java/com/iluwatar/StarMemento.java | 2 +- .../com/iluwatar/StarMementoInternal.java | 9 +- .../src/main/java/com/iluwatar/StarType.java | 8 +- .../main/java/com/iluwatar/FileLoader.java | 38 +++--- .../java/com/iluwatar/FileSelectorJFrame.java | 58 ++++----- .../com/iluwatar/FileSelectorPresenter.java | 41 ++++--- .../java/com/iluwatar/FileSelectorStub.java | 32 ++--- .../java/com/iluwatar/FileSelectorView.java | 35 +++--- .../src/main/java/com/iluwatar/MainApp.java | 2 +- .../iluwatar/FileSelectorPresenterTest.java | 51 ++++---- observer/src/main/java/com/iluwatar/App.java | 22 ++-- .../src/main/java/com/iluwatar/Hobbits.java | 6 +- .../src/main/java/com/iluwatar/Weather.java | 18 +-- .../java/com/iluwatar/WeatherObserver.java | 4 +- .../main/java/com/iluwatar/WeatherType.java | 9 +- prototype/src/main/java/com/iluwatar/App.java | 46 ++++---- .../src/main/java/com/iluwatar/Beast.java | 2 +- .../src/main/java/com/iluwatar/ElfBeast.java | 4 +- .../src/main/java/com/iluwatar/ElfMage.java | 4 +- .../main/java/com/iluwatar/ElfWarlord.java | 4 +- .../main/java/com/iluwatar/HeroFactory.java | 8 +- .../java/com/iluwatar/HeroFactoryImpl.java | 10 +- .../src/main/java/com/iluwatar/Mage.java | 2 +- .../src/main/java/com/iluwatar/OrcBeast.java | 6 +- .../src/main/java/com/iluwatar/OrcMage.java | 6 +- .../main/java/com/iluwatar/OrcWarlord.java | 6 +- .../src/main/java/com/iluwatar/Prototype.java | 2 +- .../src/main/java/com/iluwatar/Warlord.java | 2 +- proxy/src/main/java/com/iluwatar/App.java | 20 ++-- proxy/src/main/java/com/iluwatar/Wizard.java | 2 +- .../main/java/com/iluwatar/WizardTower.java | 4 +- .../java/com/iluwatar/WizardTowerProxy.java | 6 +- singleton/src/main/java/com/iluwatar/App.java | 16 +-- .../main/java/com/iluwatar/IvoryTower.java | 7 +- .../main/java/com/iluwatar/AngryState.java | 2 +- state/src/main/java/com/iluwatar/App.java | 20 ++-- state/src/main/java/com/iluwatar/Mammoth.java | 10 +- .../main/java/com/iluwatar/PeacefulState.java | 4 +- state/src/main/java/com/iluwatar/State.java | 6 +- strategy/src/main/java/com/iluwatar/App.java | 26 ++--- .../main/java/com/iluwatar/DragonSlayer.java | 4 +- .../com/iluwatar/DragonSlayingStrategy.java | 4 +- .../java/com/iluwatar/ProjectileStrategy.java | 3 +- .../main/java/com/iluwatar/SpellStrategy.java | 3 +- .../src/main/java/com/iluwatar/App.java | 16 +-- .../main/java/com/iluwatar/HalflingThief.java | 6 +- .../java/com/iluwatar/StealingMethod.java | 6 +- .../main/java/com/iluwatar/SubtleMethod.java | 6 +- visitor/src/main/java/com/iluwatar/App.java | 20 ++-- .../src/main/java/com/iluwatar/Commander.java | 4 +- .../src/main/java/com/iluwatar/Sergeant.java | 4 +- .../src/main/java/com/iluwatar/Soldier.java | 4 +- visitor/src/main/java/com/iluwatar/Unit.java | 8 +- .../main/java/com/iluwatar/UnitVisitor.java | 6 +- 151 files changed, 952 insertions(+), 870 deletions(-) diff --git a/abstract-factory/src/main/java/com/iluwatar/App.java b/abstract-factory/src/main/java/com/iluwatar/App.java index 207bdfaa0..0796e8f3f 100644 --- a/abstract-factory/src/main/java/com/iluwatar/App.java +++ b/abstract-factory/src/main/java/com/iluwatar/App.java @@ -1,29 +1,29 @@ package com.iluwatar; /** - * + * * The essence of the Abstract Factory pattern is a factory interface * (KingdomFactory) and its implementations (ElfKingdomFactory, * OrcKingdomFactory). - * + * * The example uses both concrete implementations to create a king, a castle and * an army. - * + * */ public class App { - public static void main(String[] args) { - createKingdom(new ElfKingdomFactory()); - createKingdom(new OrcKingdomFactory()); - } + public static void main(String[] args) { + createKingdom(new ElfKingdomFactory()); + createKingdom(new OrcKingdomFactory()); + } - public static void createKingdom(KingdomFactory factory) { - King king = factory.createKing(); - Castle castle = factory.createCastle(); - Army army = factory.createArmy(); - System.out.println("The kingdom was created."); - System.out.println(king); - System.out.println(castle); - System.out.println(army); - } + public static void createKingdom(KingdomFactory factory) { + King king = factory.createKing(); + Castle castle = factory.createCastle(); + Army army = factory.createArmy(); + System.out.println("The kingdom was created."); + System.out.println(king); + System.out.println(castle); + System.out.println(army); + } } diff --git a/abstract-factory/src/main/java/com/iluwatar/ElfArmy.java b/abstract-factory/src/main/java/com/iluwatar/ElfArmy.java index 1df451c9c..467640ff9 100644 --- a/abstract-factory/src/main/java/com/iluwatar/ElfArmy.java +++ b/abstract-factory/src/main/java/com/iluwatar/ElfArmy.java @@ -6,5 +6,5 @@ public class ElfArmy implements Army { public String toString() { return "This is the Elven Army!"; } - + } diff --git a/abstract-factory/src/main/java/com/iluwatar/ElfCastle.java b/abstract-factory/src/main/java/com/iluwatar/ElfCastle.java index deaf6a58d..b4741840c 100644 --- a/abstract-factory/src/main/java/com/iluwatar/ElfCastle.java +++ b/abstract-factory/src/main/java/com/iluwatar/ElfCastle.java @@ -6,5 +6,5 @@ public class ElfCastle implements Castle { public String toString() { return "This is the Elven castle!"; } - + } diff --git a/abstract-factory/src/main/java/com/iluwatar/ElfKing.java b/abstract-factory/src/main/java/com/iluwatar/ElfKing.java index 36e51119a..63315aead 100644 --- a/abstract-factory/src/main/java/com/iluwatar/ElfKing.java +++ b/abstract-factory/src/main/java/com/iluwatar/ElfKing.java @@ -6,5 +6,5 @@ public class ElfKing implements King { public String toString() { return "This is the Elven king!"; } - + } diff --git a/abstract-factory/src/main/java/com/iluwatar/ElfKingdomFactory.java b/abstract-factory/src/main/java/com/iluwatar/ElfKingdomFactory.java index 715e8123c..adec4f96c 100644 --- a/abstract-factory/src/main/java/com/iluwatar/ElfKingdomFactory.java +++ b/abstract-factory/src/main/java/com/iluwatar/ElfKingdomFactory.java @@ -3,7 +3,7 @@ package com.iluwatar; /** * * Concrete factory. - * + * */ public class ElfKingdomFactory implements KingdomFactory { diff --git a/abstract-factory/src/main/java/com/iluwatar/KingdomFactory.java b/abstract-factory/src/main/java/com/iluwatar/KingdomFactory.java index d1818b62e..c73016568 100644 --- a/abstract-factory/src/main/java/com/iluwatar/KingdomFactory.java +++ b/abstract-factory/src/main/java/com/iluwatar/KingdomFactory.java @@ -3,12 +3,14 @@ package com.iluwatar; /** * * The factory interface. - * + * */ public interface KingdomFactory { Castle createCastle(); + King createKing(); + Army createArmy(); - + } diff --git a/abstract-factory/src/main/java/com/iluwatar/OrcArmy.java b/abstract-factory/src/main/java/com/iluwatar/OrcArmy.java index d4e2515f6..e11c1e15e 100644 --- a/abstract-factory/src/main/java/com/iluwatar/OrcArmy.java +++ b/abstract-factory/src/main/java/com/iluwatar/OrcArmy.java @@ -6,5 +6,5 @@ public class OrcArmy implements Army { public String toString() { return "This is the Orcish Army!"; } - + } diff --git a/abstract-factory/src/main/java/com/iluwatar/OrcCastle.java b/abstract-factory/src/main/java/com/iluwatar/OrcCastle.java index daa49f43f..670cc0054 100644 --- a/abstract-factory/src/main/java/com/iluwatar/OrcCastle.java +++ b/abstract-factory/src/main/java/com/iluwatar/OrcCastle.java @@ -6,5 +6,5 @@ public class OrcCastle implements Castle { public String toString() { return "This is the Orcish castle!"; } - + } diff --git a/abstract-factory/src/main/java/com/iluwatar/OrcKing.java b/abstract-factory/src/main/java/com/iluwatar/OrcKing.java index b6ba989d7..79b90fc52 100644 --- a/abstract-factory/src/main/java/com/iluwatar/OrcKing.java +++ b/abstract-factory/src/main/java/com/iluwatar/OrcKing.java @@ -6,5 +6,5 @@ public class OrcKing implements King { public String toString() { return "This is the Orc king!"; } - + } diff --git a/abstract-factory/src/main/java/com/iluwatar/OrcKingdomFactory.java b/abstract-factory/src/main/java/com/iluwatar/OrcKingdomFactory.java index 1a0d6d713..b20265c91 100644 --- a/abstract-factory/src/main/java/com/iluwatar/OrcKingdomFactory.java +++ b/abstract-factory/src/main/java/com/iluwatar/OrcKingdomFactory.java @@ -3,7 +3,7 @@ package com.iluwatar; /** * * Concrete factory. - * + * */ public class OrcKingdomFactory implements KingdomFactory { diff --git a/adapter/src/main/java/com/iluwatar/App.java b/adapter/src/main/java/com/iluwatar/App.java index 7ffaaa362..54bd3c17f 100644 --- a/adapter/src/main/java/com/iluwatar/App.java +++ b/adapter/src/main/java/com/iluwatar/App.java @@ -1,21 +1,21 @@ package com.iluwatar; /** - * + * * There are two variations of the Adapter pattern: The class adapter implements * the adaptee's interface whereas the object adapter uses composition to * contain the adaptee in the adapter object. This example uses the object * adapter approach. - * + * * The Adapter (GnomeEngineer) converts the interface of the target class * (GoblinGlider) into a suitable one expected by the client * (GnomeEngineeringManager). - * + * */ public class App { - public static void main(String[] args) { - GnomeEngineeringManager manager = new GnomeEngineeringManager(); - manager.operateDevice(); - } + public static void main(String[] args) { + GnomeEngineeringManager manager = new GnomeEngineeringManager(); + manager.operateDevice(); + } } diff --git a/adapter/src/main/java/com/iluwatar/Engineer.java b/adapter/src/main/java/com/iluwatar/Engineer.java index d8289df7d..8df7ac878 100644 --- a/adapter/src/main/java/com/iluwatar/Engineer.java +++ b/adapter/src/main/java/com/iluwatar/Engineer.java @@ -3,10 +3,10 @@ package com.iluwatar; /** * * Engineers can operate devices. - * + * */ public interface Engineer { void operateDevice(); - + } diff --git a/adapter/src/main/java/com/iluwatar/GnomeEngineer.java b/adapter/src/main/java/com/iluwatar/GnomeEngineer.java index 92fc5aea8..03ad912d9 100644 --- a/adapter/src/main/java/com/iluwatar/GnomeEngineer.java +++ b/adapter/src/main/java/com/iluwatar/GnomeEngineer.java @@ -2,15 +2,14 @@ package com.iluwatar; /** * - * Adapter class. Adapts the interface of the device - * (GoblinGlider) into Engineer interface expected - * by the client (GnomeEngineeringManager). - * + * Adapter class. Adapts the interface of the device (GoblinGlider) into + * Engineer interface expected by the client (GnomeEngineeringManager). + * */ public class GnomeEngineer implements Engineer { private GoblinGlider glider; - + public GnomeEngineer() { glider = new GoblinGlider(); } @@ -21,5 +20,5 @@ public class GnomeEngineer implements Engineer { glider.gainSpeed(); glider.takeOff(); } - + } diff --git a/adapter/src/main/java/com/iluwatar/GnomeEngineeringManager.java b/adapter/src/main/java/com/iluwatar/GnomeEngineeringManager.java index af3467d30..a5cfc159a 100644 --- a/adapter/src/main/java/com/iluwatar/GnomeEngineeringManager.java +++ b/adapter/src/main/java/com/iluwatar/GnomeEngineeringManager.java @@ -2,18 +2,17 @@ package com.iluwatar; /** * - * GnomeEngineering manager uses Engineer to - * operate devices. - * + * GnomeEngineering manager uses Engineer to operate devices. + * */ public class GnomeEngineeringManager implements Engineer { private Engineer engineer; - + public GnomeEngineeringManager() { engineer = new GnomeEngineer(); } - + @Override public void operateDevice() { engineer.operateDevice(); diff --git a/adapter/src/main/java/com/iluwatar/GoblinGlider.java b/adapter/src/main/java/com/iluwatar/GoblinGlider.java index a5bcd0722..4424d3e13 100644 --- a/adapter/src/main/java/com/iluwatar/GoblinGlider.java +++ b/adapter/src/main/java/com/iluwatar/GoblinGlider.java @@ -3,18 +3,18 @@ package com.iluwatar; /** * * Device class (adaptee in the pattern). - * + * */ public class GoblinGlider { public void attachGlider() { System.out.println("Glider attached."); } - + public void gainSpeed() { System.out.println("Gaining speed."); } - + public void takeOff() { System.out.println("Lift-off!"); } diff --git a/bridge/src/main/java/com/iluwatar/App.java b/bridge/src/main/java/com/iluwatar/App.java index 346c568f4..1c0aea839 100644 --- a/bridge/src/main/java/com/iluwatar/App.java +++ b/bridge/src/main/java/com/iluwatar/App.java @@ -1,32 +1,35 @@ package com.iluwatar; /** - * + * * In Bridge pattern both abstraction (MagicWeapon) and implementation * (MagicWeaponImp) have their own class hierarchies. The interface of the * implementations can be changed without affecting the clients. - * + * */ public class App { - public static void main(String[] args) { - BlindingMagicWeapon blindingMagicWeapon = new BlindingMagicWeapon(new Excalibur()); - blindingMagicWeapon.wield(); - blindingMagicWeapon.blind(); - blindingMagicWeapon.swing(); - blindingMagicWeapon.unwield(); + public static void main(String[] args) { + BlindingMagicWeapon blindingMagicWeapon = new BlindingMagicWeapon( + new Excalibur()); + blindingMagicWeapon.wield(); + blindingMagicWeapon.blind(); + blindingMagicWeapon.swing(); + blindingMagicWeapon.unwield(); - FlyingMagicWeapon flyingMagicWeapon = new FlyingMagicWeapon(new Mjollnir()); - flyingMagicWeapon.wield(); - flyingMagicWeapon.fly(); - flyingMagicWeapon.swing(); - flyingMagicWeapon.unwield(); + FlyingMagicWeapon flyingMagicWeapon = new FlyingMagicWeapon( + new Mjollnir()); + flyingMagicWeapon.wield(); + flyingMagicWeapon.fly(); + flyingMagicWeapon.swing(); + flyingMagicWeapon.unwield(); - SoulEatingMagicWeapon soulEatingMagicWeapon = new SoulEatingMagicWeapon(new Stormbringer()); - soulEatingMagicWeapon.wield(); - soulEatingMagicWeapon.swing(); - soulEatingMagicWeapon.eatSoul(); - soulEatingMagicWeapon.unwield(); + SoulEatingMagicWeapon soulEatingMagicWeapon = new SoulEatingMagicWeapon( + new Stormbringer()); + soulEatingMagicWeapon.wield(); + soulEatingMagicWeapon.swing(); + soulEatingMagicWeapon.eatSoul(); + soulEatingMagicWeapon.unwield(); - } + } } diff --git a/bridge/src/main/java/com/iluwatar/BlindingMagicWeapon.java b/bridge/src/main/java/com/iluwatar/BlindingMagicWeapon.java index 9e61acfb2..14c9a1846 100644 --- a/bridge/src/main/java/com/iluwatar/BlindingMagicWeapon.java +++ b/bridge/src/main/java/com/iluwatar/BlindingMagicWeapon.java @@ -10,7 +10,7 @@ public class BlindingMagicWeapon extends MagicWeapon { public BlindingMagicWeaponImp getImp() { return (BlindingMagicWeaponImp) imp; } - + @Override public void wield() { getImp().wieldImp(); @@ -29,5 +29,5 @@ public class BlindingMagicWeapon extends MagicWeapon { public void blind() { getImp().blindImp(); } - + } diff --git a/bridge/src/main/java/com/iluwatar/Excalibur.java b/bridge/src/main/java/com/iluwatar/Excalibur.java index 83f3e02ac..dfbe49c20 100644 --- a/bridge/src/main/java/com/iluwatar/Excalibur.java +++ b/bridge/src/main/java/com/iluwatar/Excalibur.java @@ -19,7 +19,8 @@ public class Excalibur extends BlindingMagicWeaponImp { @Override public void blindImp() { - System.out.println("bright light streams from Excalibur blinding the enemy"); + System.out + .println("bright light streams from Excalibur blinding the enemy"); } } diff --git a/bridge/src/main/java/com/iluwatar/FlyingMagicWeapon.java b/bridge/src/main/java/com/iluwatar/FlyingMagicWeapon.java index 2912cb7fc..f81dad9b5 100644 --- a/bridge/src/main/java/com/iluwatar/FlyingMagicWeapon.java +++ b/bridge/src/main/java/com/iluwatar/FlyingMagicWeapon.java @@ -5,11 +5,11 @@ public class FlyingMagicWeapon extends MagicWeapon { public FlyingMagicWeapon(FlyingMagicWeaponImp imp) { super(imp); } - + public FlyingMagicWeaponImp getImp() { return (FlyingMagicWeaponImp) imp; } - + @Override public void wield() { getImp().wieldImp(); @@ -28,5 +28,5 @@ public class FlyingMagicWeapon extends MagicWeapon { public void fly() { getImp().flyImp(); } - + } diff --git a/bridge/src/main/java/com/iluwatar/MagicWeapon.java b/bridge/src/main/java/com/iluwatar/MagicWeapon.java index 0773a09fc..a32a49ff5 100644 --- a/bridge/src/main/java/com/iluwatar/MagicWeapon.java +++ b/bridge/src/main/java/com/iluwatar/MagicWeapon.java @@ -3,24 +3,24 @@ package com.iluwatar; /** * * Abstraction interface. - * + * */ public abstract class MagicWeapon { protected MagicWeaponImp imp; - + public MagicWeapon(MagicWeaponImp imp) { this.imp = imp; } - + public abstract void wield(); - + public abstract void swing(); - + public abstract void unwield(); - + public MagicWeaponImp getImp() { return imp; } - + } diff --git a/bridge/src/main/java/com/iluwatar/MagicWeaponImp.java b/bridge/src/main/java/com/iluwatar/MagicWeaponImp.java index d657e5177..e05adb305 100644 --- a/bridge/src/main/java/com/iluwatar/MagicWeaponImp.java +++ b/bridge/src/main/java/com/iluwatar/MagicWeaponImp.java @@ -3,14 +3,14 @@ package com.iluwatar; /** * * Implementation interface. - * + * */ public abstract class MagicWeaponImp { public abstract void wieldImp(); - + public abstract void swingImp(); - + public abstract void unwieldImp(); - + } diff --git a/bridge/src/main/java/com/iluwatar/Mjollnir.java b/bridge/src/main/java/com/iluwatar/Mjollnir.java index 4ba68ab6c..ec26f3e2c 100644 --- a/bridge/src/main/java/com/iluwatar/Mjollnir.java +++ b/bridge/src/main/java/com/iluwatar/Mjollnir.java @@ -19,7 +19,8 @@ public class Mjollnir extends FlyingMagicWeaponImp { @Override public void flyImp() { - System.out.println("Mjollnir hits the enemy in the air and returns back to the owner's hand"); + System.out + .println("Mjollnir hits the enemy in the air and returns back to the owner's hand"); } } diff --git a/bridge/src/main/java/com/iluwatar/SoulEatingMagicWeapon.java b/bridge/src/main/java/com/iluwatar/SoulEatingMagicWeapon.java index 20e55294e..cc61fd5eb 100644 --- a/bridge/src/main/java/com/iluwatar/SoulEatingMagicWeapon.java +++ b/bridge/src/main/java/com/iluwatar/SoulEatingMagicWeapon.java @@ -5,12 +5,12 @@ public class SoulEatingMagicWeapon extends MagicWeapon { public SoulEatingMagicWeapon(SoulEatingMagicWeaponImp imp) { super(imp); } - + @Override public SoulEatingMagicWeaponImp getImp() { return (SoulEatingMagicWeaponImp) imp; } - + @Override public void wield() { getImp().wieldImp(); @@ -29,5 +29,5 @@ public class SoulEatingMagicWeapon extends MagicWeapon { public void eatSoul() { getImp().eatSoulImp(); } - + } diff --git a/bridge/src/main/java/com/iluwatar/SoulEatingMagicWeaponImp.java b/bridge/src/main/java/com/iluwatar/SoulEatingMagicWeaponImp.java index 761a1a874..da0917647 100644 --- a/bridge/src/main/java/com/iluwatar/SoulEatingMagicWeaponImp.java +++ b/bridge/src/main/java/com/iluwatar/SoulEatingMagicWeaponImp.java @@ -3,5 +3,5 @@ package com.iluwatar; public abstract class SoulEatingMagicWeaponImp extends MagicWeaponImp { public abstract void eatSoulImp(); - + } diff --git a/builder/src/main/java/com/iluwatar/App.java b/builder/src/main/java/com/iluwatar/App.java index e500a59fc..59348de6e 100644 --- a/builder/src/main/java/com/iluwatar/App.java +++ b/builder/src/main/java/com/iluwatar/App.java @@ -3,41 +3,36 @@ package com.iluwatar; import com.iluwatar.Hero.HeroBuilder; /** - * + * * This is the Builder pattern variation as described by Joshua Bloch in * Effective Java 2nd Edition. - * + * * We want to build Hero objects, but its construction is complex because of the * many parameters needed. To aid the user we introduce HeroBuilder class. * HeroBuilder takes the minimum parameters to build Hero object in its * constructor. After that additional configuration for the Hero object can be * done using the fluent HeroBuilder interface. When configuration is ready the * build method is called to receive the final Hero object. - * + * */ public class App { - public static void main(String[] args) { + public static void main(String[] args) { - Hero mage = new HeroBuilder(Profession.MAGE, "Riobard") - .withHairColor(HairColor.BLACK) - .withWeapon(Weapon.DAGGER) - .build(); - System.out.println(mage); + Hero mage = new HeroBuilder(Profession.MAGE, "Riobard") + .withHairColor(HairColor.BLACK).withWeapon(Weapon.DAGGER) + .build(); + System.out.println(mage); - Hero warrior = new HeroBuilder(Profession.WARRIOR, "Amberjill") - .withHairColor(HairColor.BLOND) - .withHairType(HairType.LONG_CURLY) - .withArmor(Armor.CHAIN_MAIL) - .withWeapon(Weapon.SWORD) - .build(); - System.out.println(warrior); + Hero warrior = new HeroBuilder(Profession.WARRIOR, "Amberjill") + .withHairColor(HairColor.BLOND) + .withHairType(HairType.LONG_CURLY).withArmor(Armor.CHAIN_MAIL) + .withWeapon(Weapon.SWORD).build(); + System.out.println(warrior); - Hero thief = new HeroBuilder(Profession.THIEF, "Desmond") - .withHairType(HairType.BALD) - .withWeapon(Weapon.BOW) - .build(); - System.out.println(thief); + Hero thief = new HeroBuilder(Profession.THIEF, "Desmond") + .withHairType(HairType.BALD).withWeapon(Weapon.BOW).build(); + System.out.println(thief); - } + } } diff --git a/builder/src/main/java/com/iluwatar/Armor.java b/builder/src/main/java/com/iluwatar/Armor.java index 0c7c753b2..d930c8834 100644 --- a/builder/src/main/java/com/iluwatar/Armor.java +++ b/builder/src/main/java/com/iluwatar/Armor.java @@ -3,17 +3,25 @@ package com.iluwatar; public enum Armor { CLOTHES, LEATHER, CHAIN_MAIL, PLATE_MAIL; - + @Override public String toString() { String s = ""; - switch(this) { - case CLOTHES: s = "clothes"; break; - case LEATHER: s = "leather armor"; break; - case CHAIN_MAIL: s = "chain mail"; break; - case PLATE_MAIL: s = "plate mail"; break; + switch (this) { + case CLOTHES: + s = "clothes"; + break; + case LEATHER: + s = "leather armor"; + break; + case CHAIN_MAIL: + s = "chain mail"; + break; + case PLATE_MAIL: + s = "plate mail"; + break; } return s; } - + } diff --git a/builder/src/main/java/com/iluwatar/HairColor.java b/builder/src/main/java/com/iluwatar/HairColor.java index ffac28906..bc1a016d5 100644 --- a/builder/src/main/java/com/iluwatar/HairColor.java +++ b/builder/src/main/java/com/iluwatar/HairColor.java @@ -3,18 +3,28 @@ package com.iluwatar; public enum HairColor { WHITE, BLOND, RED, BROWN, BLACK; - + @Override public String toString() { String s = ""; - switch(this) { - case WHITE: s = "white"; break; - case BLOND: s = "blond"; break; - case RED: s = "red"; break; - case BROWN: s = "brown"; break; - case BLACK: s = "black"; break; + switch (this) { + case WHITE: + s = "white"; + break; + case BLOND: + s = "blond"; + break; + case RED: + s = "red"; + break; + case BROWN: + s = "brown"; + break; + case BLACK: + s = "black"; + break; } return s; } - + } diff --git a/builder/src/main/java/com/iluwatar/HairType.java b/builder/src/main/java/com/iluwatar/HairType.java index f829b72b1..b6a350edf 100644 --- a/builder/src/main/java/com/iluwatar/HairType.java +++ b/builder/src/main/java/com/iluwatar/HairType.java @@ -7,14 +7,24 @@ public enum HairType { @Override public String toString() { String s = ""; - switch(this) { - case BALD: s = "bold"; break; - case SHORT: s = "short"; break; - case CURLY: s = "curly"; break; - case LONG_STRAIGHT: s = "long straight"; break; - case LONG_CURLY: s = "long curly"; break; + switch (this) { + case BALD: + s = "bold"; + break; + case SHORT: + s = "short"; + break; + case CURLY: + s = "curly"; + break; + case LONG_STRAIGHT: + s = "long straight"; + break; + case LONG_CURLY: + s = "long curly"; + break; } return s; } - + } diff --git a/builder/src/main/java/com/iluwatar/Hero.java b/builder/src/main/java/com/iluwatar/Hero.java index 168caeaf8..c87cfdf06 100644 --- a/builder/src/main/java/com/iluwatar/Hero.java +++ b/builder/src/main/java/com/iluwatar/Hero.java @@ -3,7 +3,7 @@ package com.iluwatar; /** * * The class with many parameters. - * + * */ public class Hero { @@ -13,7 +13,7 @@ public class Hero { private final HairColor hairColor; private final Armor armor; private final Weapon weapon; - + public Profession getProfession() { return profession; } @@ -37,7 +37,7 @@ public class Hero { public Weapon getWeapon() { return weapon; } - + @Override public String toString() { @@ -81,7 +81,7 @@ public class Hero { /** * * The builder class. - * + * */ public static class HeroBuilder { @@ -91,20 +91,21 @@ public class Hero { private HairColor hairColor; private Armor armor; private Weapon weapon; - + public HeroBuilder(Profession profession, String name) { if (profession == null || name == null) { - throw new NullPointerException("profession and name can not be null"); + throw new NullPointerException( + "profession and name can not be null"); } this.profession = profession; this.name = name; } - + public HeroBuilder withHairType(HairType hairType) { this.hairType = hairType; return this; } - + public HeroBuilder withHairColor(HairColor hairColor) { this.hairColor = hairColor; return this; @@ -114,12 +115,12 @@ public class Hero { this.armor = armor; return this; } - + public HeroBuilder withWeapon(Weapon weapon) { this.weapon = weapon; return this; } - + public Hero build() { return new Hero(this); } diff --git a/builder/src/main/java/com/iluwatar/Profession.java b/builder/src/main/java/com/iluwatar/Profession.java index a0e02a994..ef54fd041 100644 --- a/builder/src/main/java/com/iluwatar/Profession.java +++ b/builder/src/main/java/com/iluwatar/Profession.java @@ -1,19 +1,27 @@ package com.iluwatar; public enum Profession { - + WARRIOR, THIEF, MAGE, PRIEST; @Override public String toString() { String s = ""; - switch(this) { - case WARRIOR: s = "Warrior"; break; - case THIEF: s = "Thief"; break; - case MAGE: s = "Mage"; break; - case PRIEST: s = "Priest"; break; + switch (this) { + case WARRIOR: + s = "Warrior"; + break; + case THIEF: + s = "Thief"; + break; + case MAGE: + s = "Mage"; + break; + case PRIEST: + s = "Priest"; + break; } return s; } - + } diff --git a/builder/src/main/java/com/iluwatar/Weapon.java b/builder/src/main/java/com/iluwatar/Weapon.java index b48977b50..d9a175563 100644 --- a/builder/src/main/java/com/iluwatar/Weapon.java +++ b/builder/src/main/java/com/iluwatar/Weapon.java @@ -3,18 +3,28 @@ package com.iluwatar; public enum Weapon { DAGGER, SWORD, AXE, WARHAMMER, BOW; - + @Override public String toString() { String s = ""; - switch(this) { - case DAGGER: s = "dagger"; break; - case SWORD: s = "sword"; break; - case AXE: s = "axe"; break; - case WARHAMMER: s = "warhammer"; break; - case BOW: s = "bow"; break; + switch (this) { + case DAGGER: + s = "dagger"; + break; + case SWORD: + s = "sword"; + break; + case AXE: + s = "axe"; + break; + case WARHAMMER: + s = "warhammer"; + break; + case BOW: + s = "bow"; + break; } return s; } - + } diff --git a/chain/src/main/java/com/iluwatar/App.java b/chain/src/main/java/com/iluwatar/App.java index 46de41f61..480ddc169 100644 --- a/chain/src/main/java/com/iluwatar/App.java +++ b/chain/src/main/java/com/iluwatar/App.java @@ -1,21 +1,22 @@ package com.iluwatar; /** - * + * * Chain of Responsibility organizes request handlers (RequestHandler) into a * chain where each handler has a chance to act on the request on its turn. In * this example the king (OrcKing) makes requests and the military orcs * (OrcCommander, OrcOfficer, OrcSoldier) form the handler chain. - * + * */ public class App { - public static void main(String[] args) { + public static void main(String[] args) { - OrcKing king = new OrcKing(); - king.makeRequest(new Request(RequestType.DEFEND_CASTLE, "defend castle")); - king.makeRequest(new Request(RequestType.TORTURE_PRISONER, "torture prisoner")); - king.makeRequest(new Request(RequestType.COLLECT_TAX, "collect tax")); + OrcKing king = new OrcKing(); + king.makeRequest(new Request(RequestType.DEFEND_CASTLE, "defend castle")); + king.makeRequest(new Request(RequestType.TORTURE_PRISONER, + "torture prisoner")); + king.makeRequest(new Request(RequestType.COLLECT_TAX, "collect tax")); - } + } } diff --git a/chain/src/main/java/com/iluwatar/OrcCommander.java b/chain/src/main/java/com/iluwatar/OrcCommander.java index dc0c403d0..1f3b6169b 100644 --- a/chain/src/main/java/com/iluwatar/OrcCommander.java +++ b/chain/src/main/java/com/iluwatar/OrcCommander.java @@ -5,7 +5,7 @@ public class OrcCommander extends RequestHandler { public OrcCommander(RequestHandler handler) { super(handler); } - + @Override public void handleRequest(Request req) { if (req.getRequestType().equals(RequestType.DEFEND_CASTLE)) { diff --git a/chain/src/main/java/com/iluwatar/OrcKing.java b/chain/src/main/java/com/iluwatar/OrcKing.java index dc70494ef..0d3f38ba2 100644 --- a/chain/src/main/java/com/iluwatar/OrcKing.java +++ b/chain/src/main/java/com/iluwatar/OrcKing.java @@ -3,22 +3,22 @@ package com.iluwatar; /** * * Makes requests that are handled by the chain. - * + * */ public class OrcKing { RequestHandler chain; - + public OrcKing() { buildChain(); } - + private void buildChain() { chain = new OrcCommander(new OrcOfficer(new OrcSoldier(null))); } - + public void makeRequest(Request req) { chain.handleRequest(req); } - + } diff --git a/chain/src/main/java/com/iluwatar/OrcOfficer.java b/chain/src/main/java/com/iluwatar/OrcOfficer.java index dfe414182..9a9030eca 100644 --- a/chain/src/main/java/com/iluwatar/OrcOfficer.java +++ b/chain/src/main/java/com/iluwatar/OrcOfficer.java @@ -5,7 +5,7 @@ public class OrcOfficer extends RequestHandler { public OrcOfficer(RequestHandler handler) { super(handler); } - + @Override public void handleRequest(Request req) { if (req.getRequestType().equals(RequestType.TORTURE_PRISONER)) { diff --git a/chain/src/main/java/com/iluwatar/RequestHandler.java b/chain/src/main/java/com/iluwatar/RequestHandler.java index 2eb5176c0..19dc33fce 100644 --- a/chain/src/main/java/com/iluwatar/RequestHandler.java +++ b/chain/src/main/java/com/iluwatar/RequestHandler.java @@ -1,13 +1,13 @@ package com.iluwatar; public abstract class RequestHandler { - + private RequestHandler next; public RequestHandler(RequestHandler next) { this.next = next; } - + public void handleRequest(Request req) { if (next != null) { next.handleRequest(req); diff --git a/chain/src/main/java/com/iluwatar/RequestType.java b/chain/src/main/java/com/iluwatar/RequestType.java index 9f896a54d..02176a088 100644 --- a/chain/src/main/java/com/iluwatar/RequestType.java +++ b/chain/src/main/java/com/iluwatar/RequestType.java @@ -2,8 +2,6 @@ package com.iluwatar; public enum RequestType { - DEFEND_CASTLE, - TORTURE_PRISONER, - COLLECT_TAX - + DEFEND_CASTLE, TORTURE_PRISONER, COLLECT_TAX + } diff --git a/command/src/main/java/com/iluwatar/App.java b/command/src/main/java/com/iluwatar/App.java index 7d2c30ab5..9a004ec8e 100644 --- a/command/src/main/java/com/iluwatar/App.java +++ b/command/src/main/java/com/iluwatar/App.java @@ -1,25 +1,25 @@ package com.iluwatar; /** - * + * * In Command pattern actions are objects that can be executed and undone. The * commands in this example are spells cast by the wizard on the goblin. - * + * */ public class App { - public static void main(String[] args) { - Wizard wizard = new Wizard(); - Goblin goblin = new Goblin(); + public static void main(String[] args) { + Wizard wizard = new Wizard(); + Goblin goblin = new Goblin(); - goblin.printStatus(); + goblin.printStatus(); - wizard.castSpell(new ShrinkSpell(), goblin); - goblin.printStatus(); + wizard.castSpell(new ShrinkSpell(), goblin); + goblin.printStatus(); - wizard.castSpell(new InvisibilitySpell(), goblin); - goblin.printStatus(); - wizard.undoLastSpell(); - goblin.printStatus(); - } + wizard.castSpell(new InvisibilitySpell(), goblin); + goblin.printStatus(); + wizard.undoLastSpell(); + goblin.printStatus(); + } } diff --git a/command/src/main/java/com/iluwatar/Command.java b/command/src/main/java/com/iluwatar/Command.java index 972c291c3..ab14ca77c 100644 --- a/command/src/main/java/com/iluwatar/Command.java +++ b/command/src/main/java/com/iluwatar/Command.java @@ -3,15 +3,15 @@ package com.iluwatar; /** * * Interface for spells. - * + * */ public abstract class Command { public abstract void execute(Target target); - + public abstract void undo(); @Override - public abstract String toString(); - + public abstract String toString(); + } diff --git a/command/src/main/java/com/iluwatar/Goblin.java b/command/src/main/java/com/iluwatar/Goblin.java index f8b161a54..4e50915f9 100644 --- a/command/src/main/java/com/iluwatar/Goblin.java +++ b/command/src/main/java/com/iluwatar/Goblin.java @@ -6,7 +6,7 @@ public class Goblin extends Target { this.setSize(Size.NORMAL); this.setVisibility(Visibility.VISIBLE); } - + @Override public String toString() { return "Goblin"; diff --git a/command/src/main/java/com/iluwatar/InvisibilitySpell.java b/command/src/main/java/com/iluwatar/InvisibilitySpell.java index c21adce2d..b95a24f7e 100644 --- a/command/src/main/java/com/iluwatar/InvisibilitySpell.java +++ b/command/src/main/java/com/iluwatar/InvisibilitySpell.java @@ -3,11 +3,11 @@ package com.iluwatar; public class InvisibilitySpell extends Command { private Target target; - + public InvisibilitySpell() { target = null; } - + @Override public void execute(Target target) { target.setVisibility(Visibility.INVISIBLE); diff --git a/command/src/main/java/com/iluwatar/ShrinkSpell.java b/command/src/main/java/com/iluwatar/ShrinkSpell.java index b8dccc1d6..fe444a972 100644 --- a/command/src/main/java/com/iluwatar/ShrinkSpell.java +++ b/command/src/main/java/com/iluwatar/ShrinkSpell.java @@ -3,14 +3,14 @@ package com.iluwatar; public class ShrinkSpell extends Command { private Size oldSize; - + private Target target; - + public ShrinkSpell() { oldSize = null; target = null; } - + @Override public void execute(Target target) { oldSize = target.getSize(); diff --git a/command/src/main/java/com/iluwatar/Size.java b/command/src/main/java/com/iluwatar/Size.java index f55491085..e4b342185 100644 --- a/command/src/main/java/com/iluwatar/Size.java +++ b/command/src/main/java/com/iluwatar/Size.java @@ -2,15 +2,13 @@ package com.iluwatar; public enum Size { - SMALL, - NORMAL, - LARGE; + SMALL, NORMAL, LARGE; @Override public String toString() { - + String s = ""; - + switch (this) { case LARGE: s = "large"; @@ -27,5 +25,4 @@ public enum Size { return s; } - } diff --git a/command/src/main/java/com/iluwatar/Target.java b/command/src/main/java/com/iluwatar/Target.java index 469d0187a..2ade4c3bd 100644 --- a/command/src/main/java/com/iluwatar/Target.java +++ b/command/src/main/java/com/iluwatar/Target.java @@ -5,7 +5,7 @@ public abstract class Target { private Size size; private Visibility visibility; - + public Size getSize() { return size; } @@ -24,8 +24,9 @@ public abstract class Target { @Override public abstract String toString(); - + public void printStatus() { - System.out.println(String.format("%s, size=%s visibility=%s", this, getSize(), getVisibility())); + System.out.println(String.format("%s, size=%s visibility=%s", this, + getSize(), getVisibility())); } } diff --git a/command/src/main/java/com/iluwatar/Visibility.java b/command/src/main/java/com/iluwatar/Visibility.java index 5d2f3b974..ec016b5f4 100644 --- a/command/src/main/java/com/iluwatar/Visibility.java +++ b/command/src/main/java/com/iluwatar/Visibility.java @@ -2,14 +2,13 @@ package com.iluwatar; public enum Visibility { - VISIBLE, - INVISIBLE; + VISIBLE, INVISIBLE; @Override public String toString() { - + String s = ""; - + switch (this) { case INVISIBLE: s = "invisible"; @@ -19,7 +18,7 @@ public enum Visibility { break; default: break; - + } return s; } diff --git a/command/src/main/java/com/iluwatar/Wizard.java b/command/src/main/java/com/iluwatar/Wizard.java index 58d541bab..63aa560c7 100644 --- a/command/src/main/java/com/iluwatar/Wizard.java +++ b/command/src/main/java/com/iluwatar/Wizard.java @@ -3,13 +3,13 @@ package com.iluwatar; public class Wizard extends Target { private Command previousSpell; - + public Wizard() { this.setSize(Size.NORMAL); this.setVisibility(Visibility.VISIBLE); previousSpell = null; } - + public void castSpell(Command command, Target target) { System.out.println(this + " casts " + command + " at " + target); command.execute(target); @@ -22,10 +22,10 @@ public class Wizard extends Target { previousSpell.undo(); } } - + @Override public String toString() { return "Wizard"; } - + } diff --git a/composite/src/main/java/com/iluwatar/App.java b/composite/src/main/java/com/iluwatar/App.java index 01c2f5f3c..5d1b6b477 100644 --- a/composite/src/main/java/com/iluwatar/App.java +++ b/composite/src/main/java/com/iluwatar/App.java @@ -1,25 +1,25 @@ package com.iluwatar; /** - * + * * With Composite we can treat tree hierarchies of objects with uniform * interface (LetterComposite). In this example we have sentences composed of * words composed of letters. - * + * */ public class App { - public static void main(String[] args) { - System.out.println("Message from the orcs: "); + public static void main(String[] args) { + System.out.println("Message from the orcs: "); - LetterComposite orcMessage = new Messenger().messageFromOrcs(); - orcMessage.print(); + LetterComposite orcMessage = new Messenger().messageFromOrcs(); + orcMessage.print(); - System.out.println("\n"); + System.out.println("\n"); - System.out.println("Message from the elves: "); + System.out.println("Message from the elves: "); - LetterComposite elfMessage = new Messenger().messageFromElves(); - elfMessage.print(); - } + LetterComposite elfMessage = new Messenger().messageFromElves(); + elfMessage.print(); + } } diff --git a/composite/src/main/java/com/iluwatar/LetterComposite.java b/composite/src/main/java/com/iluwatar/LetterComposite.java index 850c410ff..b187241f8 100644 --- a/composite/src/main/java/com/iluwatar/LetterComposite.java +++ b/composite/src/main/java/com/iluwatar/LetterComposite.java @@ -6,7 +6,7 @@ import java.util.List; /** * * Composite interface. - * + * */ public abstract class LetterComposite { @@ -15,18 +15,18 @@ public abstract class LetterComposite { public void add(LetterComposite letter) { children.add(letter); } - + public int count() { return children.size(); } - + protected abstract void printThisBefore(); protected abstract void printThisAfter(); - + public void print() { printThisBefore(); - for (LetterComposite letter: children) { + for (LetterComposite letter : children) { letter.print(); } printThisAfter(); diff --git a/composite/src/main/java/com/iluwatar/Messenger.java b/composite/src/main/java/com/iluwatar/Messenger.java index d87a94b0d..6179bef23 100644 --- a/composite/src/main/java/com/iluwatar/Messenger.java +++ b/composite/src/main/java/com/iluwatar/Messenger.java @@ -7,36 +7,47 @@ import java.util.List; public class Messenger { LetterComposite messageFromOrcs() { - + List words = new ArrayList(); - - words.add(new Word(Arrays.asList(new Letter('W'), new Letter('h'), new Letter('e'), new Letter('r'), new Letter('e')))); - words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'), new Letter('e'), new Letter('r'), new Letter('e')))); + + words.add(new Word(Arrays.asList(new Letter('W'), new Letter('h'), + new Letter('e'), new Letter('r'), new Letter('e')))); + words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'), + new Letter('e'), new Letter('r'), new Letter('e')))); words.add(new Word(Arrays.asList(new Letter('i'), new Letter('s')))); words.add(new Word(Arrays.asList(new Letter('a')))); - words.add(new Word(Arrays.asList(new Letter('w'), new Letter('h'), new Letter('i'), new Letter('p')))); - words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'), new Letter('e'), new Letter('r'), new Letter('e')))); + words.add(new Word(Arrays.asList(new Letter('w'), new Letter('h'), + new Letter('i'), new Letter('p')))); + words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'), + new Letter('e'), new Letter('r'), new Letter('e')))); words.add(new Word(Arrays.asList(new Letter('i'), new Letter('s')))); words.add(new Word(Arrays.asList(new Letter('a')))); - words.add(new Word(Arrays.asList(new Letter('w'), new Letter('a'), new Letter('y')))); - + words.add(new Word(Arrays.asList(new Letter('w'), new Letter('a'), + new Letter('y')))); + return new Sentence(words); - + } LetterComposite messageFromElves() { - + List words = new ArrayList(); - - words.add(new Word(Arrays.asList(new Letter('M'), new Letter('u'), new Letter('c'), new Letter('h')))); - words.add(new Word(Arrays.asList(new Letter('w'), new Letter('i'), new Letter('n'), new Letter('d')))); - words.add(new Word(Arrays.asList(new Letter('p'), new Letter('o'), new Letter('u'), new Letter('r'), new Letter('s')))); - words.add(new Word(Arrays.asList(new Letter('f'), new Letter('r'), new Letter('o'), new Letter('m')))); - words.add(new Word(Arrays.asList(new Letter('y'), new Letter('o'), new Letter('u'), new Letter('r')))); - words.add(new Word(Arrays.asList(new Letter('m'), new Letter('o'), new Letter('u'), new Letter('t'), new Letter('h')))); - + + words.add(new Word(Arrays.asList(new Letter('M'), new Letter('u'), + new Letter('c'), new Letter('h')))); + words.add(new Word(Arrays.asList(new Letter('w'), new Letter('i'), + new Letter('n'), new Letter('d')))); + words.add(new Word(Arrays.asList(new Letter('p'), new Letter('o'), + new Letter('u'), new Letter('r'), new Letter('s')))); + words.add(new Word(Arrays.asList(new Letter('f'), new Letter('r'), + new Letter('o'), new Letter('m')))); + words.add(new Word(Arrays.asList(new Letter('y'), new Letter('o'), + new Letter('u'), new Letter('r')))); + words.add(new Word(Arrays.asList(new Letter('m'), new Letter('o'), + new Letter('u'), new Letter('t'), new Letter('h')))); + return new Sentence(words); - + } - + } diff --git a/composite/src/main/java/com/iluwatar/Sentence.java b/composite/src/main/java/com/iluwatar/Sentence.java index 6eb97bc4b..0b48454ed 100644 --- a/composite/src/main/java/com/iluwatar/Sentence.java +++ b/composite/src/main/java/com/iluwatar/Sentence.java @@ -5,11 +5,11 @@ import java.util.List; public class Sentence extends LetterComposite { public Sentence(List words) { - for (Word w: words) { + for (Word w : words) { this.add(w); } } - + @Override protected void printThisBefore() { // nop @@ -20,5 +20,4 @@ public class Sentence extends LetterComposite { System.out.print("."); } - } diff --git a/composite/src/main/java/com/iluwatar/Word.java b/composite/src/main/java/com/iluwatar/Word.java index ef8ea3b6a..a8cfa4d9a 100644 --- a/composite/src/main/java/com/iluwatar/Word.java +++ b/composite/src/main/java/com/iluwatar/Word.java @@ -5,11 +5,11 @@ import java.util.List; public class Word extends LetterComposite { public Word(List letters) { - for (Letter l: letters) { + for (Letter l : letters) { this.add(l); } } - + @Override protected void printThisBefore() { System.out.print(" "); diff --git a/decorator/src/main/java/com/iluwatar/App.java b/decorator/src/main/java/com/iluwatar/App.java index abe58e5bc..3ff421ffe 100644 --- a/decorator/src/main/java/com/iluwatar/App.java +++ b/decorator/src/main/java/com/iluwatar/App.java @@ -1,24 +1,24 @@ package com.iluwatar; /** - * + * * Decorator pattern is more flexible alternative to subclassing. The decorator * class implements the same interface as the target and uses composition to * "decorate" calls to the target. - * + * */ public class App { - public static void main(String[] args) { + public static void main(String[] args) { - System.out.println("A simple looking troll approaches."); - Hostile troll = new Troll(); - troll.attack(); - troll.fleeBattle(); + System.out.println("A simple looking troll approaches."); + Hostile troll = new Troll(); + troll.attack(); + troll.fleeBattle(); - System.out.println("\nA smart looking troll surprises you."); - Hostile smart = new SmartTroll(new Troll()); - smart.attack(); - smart.fleeBattle(); - } + System.out.println("\nA smart looking troll surprises you."); + Hostile smart = new SmartTroll(new Troll()); + smart.attack(); + smart.fleeBattle(); + } } diff --git a/decorator/src/main/java/com/iluwatar/Hostile.java b/decorator/src/main/java/com/iluwatar/Hostile.java index 38b2cad07..480c4a17a 100644 --- a/decorator/src/main/java/com/iluwatar/Hostile.java +++ b/decorator/src/main/java/com/iluwatar/Hostile.java @@ -3,6 +3,7 @@ package com.iluwatar; public interface Hostile { void attack(); + void fleeBattle(); - + } diff --git a/decorator/src/main/java/com/iluwatar/SmartTroll.java b/decorator/src/main/java/com/iluwatar/SmartTroll.java index d931adff8..186f9c6b0 100644 --- a/decorator/src/main/java/com/iluwatar/SmartTroll.java +++ b/decorator/src/main/java/com/iluwatar/SmartTroll.java @@ -7,7 +7,7 @@ public class SmartTroll implements Hostile { public SmartTroll(Hostile decorated) { this.decorated = decorated; } - + @Override public void attack() { System.out.println("The troll throws a rock at you!"); @@ -19,5 +19,5 @@ public class SmartTroll implements Hostile { System.out.println("The troll calls for help!"); decorated.fleeBattle(); } - + } diff --git a/decorator/src/main/java/com/iluwatar/Troll.java b/decorator/src/main/java/com/iluwatar/Troll.java index 3bcf4ec47..397c04643 100644 --- a/decorator/src/main/java/com/iluwatar/Troll.java +++ b/decorator/src/main/java/com/iluwatar/Troll.java @@ -5,9 +5,9 @@ public class Troll implements Hostile { public void attack() { System.out.println("The troll swings at you with a club!"); } - + public void fleeBattle() { System.out.println("The troll shrieks in horror and runs away!"); } - + } diff --git a/double-checked-locking/src/main/java/com/iluwatar/App.java b/double-checked-locking/src/main/java/com/iluwatar/App.java index 4dc2087e7..5b731cdfe 100644 --- a/double-checked-locking/src/main/java/com/iluwatar/App.java +++ b/double-checked-locking/src/main/java/com/iluwatar/App.java @@ -4,7 +4,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** - * + * * In Inventory we store the items with a given size. However, we do not store * more items than the inventory size. To address concurrent access problems we * use double checked locking to add item to inventory. In this method, the @@ -12,16 +12,17 @@ import java.util.concurrent.Executors; */ public class App { - public static void main(String[] args) { - final Inventory inventory = new Inventory(1000); - ExecutorService executorService = Executors.newFixedThreadPool(3); - for (int i = 0; i < 3; i++) { - executorService.execute(new Runnable() { - @Override - public void run() { - while (inventory.addItem(new Item())); - } - }); - } - } + public static void main(String[] args) { + final Inventory inventory = new Inventory(1000); + ExecutorService executorService = Executors.newFixedThreadPool(3); + for (int i = 0; i < 3; i++) { + executorService.execute(new Runnable() { + @Override + public void run() { + while (inventory.addItem(new Item())) + ; + } + }); + } + } } diff --git a/double-checked-locking/src/main/java/com/iluwatar/Inventory.java b/double-checked-locking/src/main/java/com/iluwatar/Inventory.java index a6ddc350d..aad29a440 100644 --- a/double-checked-locking/src/main/java/com/iluwatar/Inventory.java +++ b/double-checked-locking/src/main/java/com/iluwatar/Inventory.java @@ -5,9 +5,8 @@ import java.util.List; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; - public class Inventory { - + private int inventorySize; private List items; private Lock lock = new ReentrantLock(); @@ -16,17 +15,17 @@ public class Inventory { this.inventorySize = inventorySize; this.items = new ArrayList(inventorySize); } - - public boolean addItem(Item item){ - if(items.size() workers; - + public DwarvenGoldmineFacade() { workers = new ArrayList<>(); workers.add(new DwarvenGoldDigger()); workers.add(new DwarvenCartOperator()); workers.add(new DwarvenTunnelDigger()); } - + public void startNewDay() { - for (DwarvenMineWorker worker: workers) { + for (DwarvenMineWorker worker : workers) { worker.wakeUp(); worker.goToMine(); } } - + public void digOutGold() { - for (DwarvenMineWorker worker: workers) { + for (DwarvenMineWorker worker : workers) { worker.work(); } } - + public void endDay() { - for (DwarvenMineWorker worker: workers) { + for (DwarvenMineWorker worker : workers) { worker.goHome(); worker.goToSleep(); } } - + } diff --git a/facade/src/main/java/com/iluwatar/DwarvenMineWorker.java b/facade/src/main/java/com/iluwatar/DwarvenMineWorker.java index 21b936738..9a8249281 100644 --- a/facade/src/main/java/com/iluwatar/DwarvenMineWorker.java +++ b/facade/src/main/java/com/iluwatar/DwarvenMineWorker.java @@ -5,21 +5,21 @@ public abstract class DwarvenMineWorker { public void goToSleep() { System.out.println(name() + " goes to sleep."); } - + public void wakeUp() { System.out.println(name() + " wakes up."); } - + public void goHome() { System.out.println(name() + " goes home."); } - + public void goToMine() { System.out.println(name() + " goes to the mine."); } - + public abstract void work(); - + public abstract String name(); - + } diff --git a/factory-method/src/main/java/com/iluwatar/App.java b/factory-method/src/main/java/com/iluwatar/App.java index 8dcfb4c09..bd3a1b894 100644 --- a/factory-method/src/main/java/com/iluwatar/App.java +++ b/factory-method/src/main/java/com/iluwatar/App.java @@ -1,28 +1,28 @@ package com.iluwatar; /** - * + * * In Factory Method we have an interface (Blacksmith) with a method for * creating objects (manufactureWeapon). The concrete subclasses (OrcBlacksmith, * ElfBlacksmith) then override the method to produce objects of their liking. - * + * */ public class App { - public static void main(String[] args) { - Blacksmith blacksmith; - Weapon weapon; + public static void main(String[] args) { + Blacksmith blacksmith; + Weapon weapon; - blacksmith = new OrcBlacksmith(); - weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR); - System.out.println(weapon); - weapon = blacksmith.manufactureWeapon(WeaponType.AXE); - System.out.println(weapon); + blacksmith = new OrcBlacksmith(); + weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR); + System.out.println(weapon); + weapon = blacksmith.manufactureWeapon(WeaponType.AXE); + System.out.println(weapon); - blacksmith = new ElfBlacksmith(); - weapon = blacksmith.manufactureWeapon(WeaponType.SHORT_SWORD); - System.out.println(weapon); - weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR); - System.out.println(weapon); - } + blacksmith = new ElfBlacksmith(); + weapon = blacksmith.manufactureWeapon(WeaponType.SHORT_SWORD); + System.out.println(weapon); + weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR); + System.out.println(weapon); + } } diff --git a/factory-method/src/main/java/com/iluwatar/Blacksmith.java b/factory-method/src/main/java/com/iluwatar/Blacksmith.java index ac488b27d..17c427398 100644 --- a/factory-method/src/main/java/com/iluwatar/Blacksmith.java +++ b/factory-method/src/main/java/com/iluwatar/Blacksmith.java @@ -3,10 +3,10 @@ package com.iluwatar; /** * * The interface containing method for producing objects. - * + * */ public interface Blacksmith { Weapon manufactureWeapon(WeaponType weaponType); - + } diff --git a/factory-method/src/main/java/com/iluwatar/ElfBlacksmith.java b/factory-method/src/main/java/com/iluwatar/ElfBlacksmith.java index 067584088..63652de4a 100644 --- a/factory-method/src/main/java/com/iluwatar/ElfBlacksmith.java +++ b/factory-method/src/main/java/com/iluwatar/ElfBlacksmith.java @@ -3,7 +3,7 @@ package com.iluwatar; /** * * Concrete subclass for creating new objects. - * + * */ public class ElfBlacksmith implements Blacksmith { diff --git a/factory-method/src/main/java/com/iluwatar/ElfWeapon.java b/factory-method/src/main/java/com/iluwatar/ElfWeapon.java index f1c3e6d5c..fe6e81a20 100644 --- a/factory-method/src/main/java/com/iluwatar/ElfWeapon.java +++ b/factory-method/src/main/java/com/iluwatar/ElfWeapon.java @@ -12,5 +12,5 @@ public class ElfWeapon implements Weapon { public String toString() { return "Elven " + weaponType; } - + } diff --git a/factory-method/src/main/java/com/iluwatar/OrcBlacksmith.java b/factory-method/src/main/java/com/iluwatar/OrcBlacksmith.java index 60730d15f..2f163b009 100644 --- a/factory-method/src/main/java/com/iluwatar/OrcBlacksmith.java +++ b/factory-method/src/main/java/com/iluwatar/OrcBlacksmith.java @@ -3,7 +3,7 @@ package com.iluwatar; /** * * Concrete subclass for creating new objects. - * + * */ public class OrcBlacksmith implements Blacksmith { diff --git a/factory-method/src/main/java/com/iluwatar/OrcWeapon.java b/factory-method/src/main/java/com/iluwatar/OrcWeapon.java index 5ad590158..7aa42621c 100644 --- a/factory-method/src/main/java/com/iluwatar/OrcWeapon.java +++ b/factory-method/src/main/java/com/iluwatar/OrcWeapon.java @@ -12,5 +12,5 @@ public class OrcWeapon implements Weapon { public String toString() { return "Orcish " + weaponType; } - + } diff --git a/factory-method/src/main/java/com/iluwatar/WeaponType.java b/factory-method/src/main/java/com/iluwatar/WeaponType.java index 72e01d82c..4097fd3c7 100644 --- a/factory-method/src/main/java/com/iluwatar/WeaponType.java +++ b/factory-method/src/main/java/com/iluwatar/WeaponType.java @@ -7,13 +7,18 @@ public enum WeaponType { @Override public String toString() { String s = ""; - switch(this) { - case SHORT_SWORD: s = "short sword"; break; - case SPEAR: s = "spear"; break; - case AXE: s = "axe"; break; + switch (this) { + case SHORT_SWORD: + s = "short sword"; + break; + case SPEAR: + s = "spear"; + break; + case AXE: + s = "axe"; + break; } return s; } - - + } diff --git a/flyweight/src/main/java/com/iluwatar/AlchemistShop.java b/flyweight/src/main/java/com/iluwatar/AlchemistShop.java index 3d15668c8..3166b661d 100644 --- a/flyweight/src/main/java/com/iluwatar/AlchemistShop.java +++ b/flyweight/src/main/java/com/iluwatar/AlchemistShop.java @@ -6,13 +6,13 @@ import java.util.List; /** * * The class that needs many objects. - * + * */ public class AlchemistShop { List topShelf; List bottomShelf; - + public AlchemistShop() { topShelf = new ArrayList<>(); bottomShelf = new ArrayList<>(); @@ -20,9 +20,9 @@ public class AlchemistShop { } private void fillShelves() { - + PotionFactory factory = new PotionFactory(); - + topShelf.add(factory.createPotion(PotionType.INVISIBILITY)); topShelf.add(factory.createPotion(PotionType.INVISIBILITY)); topShelf.add(factory.createPotion(PotionType.STRENGTH)); @@ -31,27 +31,27 @@ public class AlchemistShop { topShelf.add(factory.createPotion(PotionType.STRENGTH)); topShelf.add(factory.createPotion(PotionType.HEALING)); topShelf.add(factory.createPotion(PotionType.HEALING)); - + bottomShelf.add(factory.createPotion(PotionType.POISON)); bottomShelf.add(factory.createPotion(PotionType.POISON)); bottomShelf.add(factory.createPotion(PotionType.POISON)); bottomShelf.add(factory.createPotion(PotionType.HOLY_WATER)); bottomShelf.add(factory.createPotion(PotionType.HOLY_WATER)); } - + public void enumerate() { System.out.println("Enumerating top shelf potions\n"); - - for (Potion p: topShelf) { + + for (Potion p : topShelf) { p.drink(); } - + System.out.println("\nEnumerating bottom shelf potions\n"); - - for (Potion p: bottomShelf) { + + for (Potion p : bottomShelf) { p.drink(); } - + } } diff --git a/flyweight/src/main/java/com/iluwatar/App.java b/flyweight/src/main/java/com/iluwatar/App.java index 893689484..5cb64dbd5 100644 --- a/flyweight/src/main/java/com/iluwatar/App.java +++ b/flyweight/src/main/java/com/iluwatar/App.java @@ -1,16 +1,16 @@ package com.iluwatar; /** - * + * * Flyweight (PotionFactory) is useful when there is plethora of objects * (Potion). It provides means to decrease resource usage by sharing object * instances. - * + * */ public class App { - public static void main(String[] args) { - AlchemistShop alchemistShop = new AlchemistShop(); - alchemistShop.enumerate(); - } + public static void main(String[] args) { + AlchemistShop alchemistShop = new AlchemistShop(); + alchemistShop.enumerate(); + } } diff --git a/flyweight/src/main/java/com/iluwatar/HealingPotion.java b/flyweight/src/main/java/com/iluwatar/HealingPotion.java index 944dea751..45a37cc6c 100644 --- a/flyweight/src/main/java/com/iluwatar/HealingPotion.java +++ b/flyweight/src/main/java/com/iluwatar/HealingPotion.java @@ -4,7 +4,8 @@ public class HealingPotion implements Potion { @Override public void drink() { - System.out.println("You feel healed. (Potion=" + System.identityHashCode(this) + ")"); + System.out.println("You feel healed. (Potion=" + + System.identityHashCode(this) + ")"); } } diff --git a/flyweight/src/main/java/com/iluwatar/HolyWaterPotion.java b/flyweight/src/main/java/com/iluwatar/HolyWaterPotion.java index 27b185a94..91fa2347e 100644 --- a/flyweight/src/main/java/com/iluwatar/HolyWaterPotion.java +++ b/flyweight/src/main/java/com/iluwatar/HolyWaterPotion.java @@ -4,7 +4,8 @@ public class HolyWaterPotion implements Potion { @Override public void drink() { - System.out.println("You feel blessed. (Potion=" + System.identityHashCode(this) + ")"); + System.out.println("You feel blessed. (Potion=" + + System.identityHashCode(this) + ")"); } } diff --git a/flyweight/src/main/java/com/iluwatar/InvisibilityPotion.java b/flyweight/src/main/java/com/iluwatar/InvisibilityPotion.java index 7796b5beb..aa14b8633 100644 --- a/flyweight/src/main/java/com/iluwatar/InvisibilityPotion.java +++ b/flyweight/src/main/java/com/iluwatar/InvisibilityPotion.java @@ -4,7 +4,8 @@ public class InvisibilityPotion implements Potion { @Override public void drink() { - System.out.println("You become invisible. (Potion=" + System.identityHashCode(this) + ")"); + System.out.println("You become invisible. (Potion=" + + System.identityHashCode(this) + ")"); } } diff --git a/flyweight/src/main/java/com/iluwatar/PoisonPotion.java b/flyweight/src/main/java/com/iluwatar/PoisonPotion.java index 728b0d00b..299aacf35 100644 --- a/flyweight/src/main/java/com/iluwatar/PoisonPotion.java +++ b/flyweight/src/main/java/com/iluwatar/PoisonPotion.java @@ -4,7 +4,8 @@ public class PoisonPotion implements Potion { @Override public void drink() { - System.out.println("Urgh! This is poisonous. (Potion=" + System.identityHashCode(this) + ")"); + System.out.println("Urgh! This is poisonous. (Potion=" + + System.identityHashCode(this) + ")"); } } diff --git a/flyweight/src/main/java/com/iluwatar/Potion.java b/flyweight/src/main/java/com/iluwatar/Potion.java index 91cfabe3a..dc18000ff 100644 --- a/flyweight/src/main/java/com/iluwatar/Potion.java +++ b/flyweight/src/main/java/com/iluwatar/Potion.java @@ -3,10 +3,10 @@ package com.iluwatar; /** * * Interface for objects. - * + * */ public interface Potion { public void drink(); - + } diff --git a/flyweight/src/main/java/com/iluwatar/PotionFactory.java b/flyweight/src/main/java/com/iluwatar/PotionFactory.java index d1eb09a74..90e57f91e 100644 --- a/flyweight/src/main/java/com/iluwatar/PotionFactory.java +++ b/flyweight/src/main/java/com/iluwatar/PotionFactory.java @@ -5,16 +5,16 @@ import java.util.EnumMap; /** * * Flyweight. - * + * */ public class PotionFactory { private EnumMap potions; - + public PotionFactory() { potions = new EnumMap<>(PotionType.class); } - + Potion createPotion(PotionType type) { Potion potion = potions.get(type); if (potion == null) { @@ -45,5 +45,5 @@ public class PotionFactory { } return potion; } - + } diff --git a/flyweight/src/main/java/com/iluwatar/PotionType.java b/flyweight/src/main/java/com/iluwatar/PotionType.java index ff4e392c9..d9943d6ea 100644 --- a/flyweight/src/main/java/com/iluwatar/PotionType.java +++ b/flyweight/src/main/java/com/iluwatar/PotionType.java @@ -2,10 +2,6 @@ package com.iluwatar; public enum PotionType { - HEALING, - INVISIBILITY, - STRENGTH, - HOLY_WATER, - POISON; - + HEALING, INVISIBILITY, STRENGTH, HOLY_WATER, POISON; + } diff --git a/flyweight/src/main/java/com/iluwatar/StrengthPotion.java b/flyweight/src/main/java/com/iluwatar/StrengthPotion.java index 0709b5b53..8fe1c248e 100644 --- a/flyweight/src/main/java/com/iluwatar/StrengthPotion.java +++ b/flyweight/src/main/java/com/iluwatar/StrengthPotion.java @@ -4,7 +4,8 @@ public class StrengthPotion implements Potion { @Override public void drink() { - System.out.println("You feel strong. (Potion=" + System.identityHashCode(this) + ")"); + System.out.println("You feel strong. (Potion=" + + System.identityHashCode(this) + ")"); } } diff --git a/interpreter/src/main/java/com/iluwatar/App.java b/interpreter/src/main/java/com/iluwatar/App.java index 6c41ce8b0..0471f34a8 100644 --- a/interpreter/src/main/java/com/iluwatar/App.java +++ b/interpreter/src/main/java/com/iluwatar/App.java @@ -3,64 +3,70 @@ package com.iluwatar; import java.util.Stack; /** - * + * * Interpreter pattern breaks sentences into expressions (Expression) that can * be evaluated and as a whole form the result. - * + * */ public class App { - /** - * - * Expressions can be evaluated using prefix, infix or postfix notations - * This sample uses postfix, where operator comes after the operands - * - */ - public static void main(String[] args) { - String tokenString = "4 3 2 - 1 + *"; - Stack stack = new Stack<>(); + /** + * + * Expressions can be evaluated using prefix, infix or postfix notations + * This sample uses postfix, where operator comes after the operands + * + */ + public static void main(String[] args) { + String tokenString = "4 3 2 - 1 + *"; + Stack stack = new Stack<>(); - String[] tokenList = tokenString.split(" "); - for (String s : tokenList) { - if (isOperator(s)) { - Expression rightExpression = stack.pop(); - Expression leftExpression = stack.pop(); - System.out.println(String.format("popped from stack left: %d right: %d", - leftExpression.interpret(), rightExpression.interpret())); - Expression operator = getOperatorInstance(s, leftExpression, - rightExpression); - System.out.println(String.format("operator: %s", operator)); - int result = operator.interpret(); - NumberExpression resultExpression = new NumberExpression(result); - stack.push(resultExpression); - System.out.println(String.format("push result to stack: %d", resultExpression.interpret())); - } else { - Expression i = new NumberExpression(s); - stack.push(i); - System.out.println(String.format("push to stack: %d", i.interpret())); - } - } - System.out.println(String.format("result: %d", stack.pop().interpret())); - } + String[] tokenList = tokenString.split(" "); + for (String s : tokenList) { + if (isOperator(s)) { + Expression rightExpression = stack.pop(); + Expression leftExpression = stack.pop(); + System.out + .println(String.format( + "popped from stack left: %d right: %d", + leftExpression.interpret(), + rightExpression.interpret())); + Expression operator = getOperatorInstance(s, leftExpression, + rightExpression); + System.out.println(String.format("operator: %s", operator)); + int result = operator.interpret(); + NumberExpression resultExpression = new NumberExpression(result); + stack.push(resultExpression); + System.out.println(String.format("push result to stack: %d", + resultExpression.interpret())); + } else { + Expression i = new NumberExpression(s); + stack.push(i); + System.out.println(String.format("push to stack: %d", + i.interpret())); + } + } + System.out + .println(String.format("result: %d", stack.pop().interpret())); + } - public static boolean isOperator(String s) { - if (s.equals("+") || s.equals("-") || s.equals("*")) { - return true; - } else { - return false; - } - } + public static boolean isOperator(String s) { + if (s.equals("+") || s.equals("-") || s.equals("*")) { + return true; + } else { + return false; + } + } - public static Expression getOperatorInstance(String s, Expression left, - Expression right) { - switch (s) { - case "+": - return new PlusExpression(left, right); - case "-": - return new MinusExpression(left, right); - case "*": - return new MultiplyExpression(left, right); - } - return null; - } + public static Expression getOperatorInstance(String s, Expression left, + Expression right) { + switch (s) { + case "+": + return new PlusExpression(left, right); + case "-": + return new MinusExpression(left, right); + case "*": + return new MultiplyExpression(left, right); + } + return null; + } } diff --git a/interpreter/src/main/java/com/iluwatar/Expression.java b/interpreter/src/main/java/com/iluwatar/Expression.java index 28fbce6fd..780a756ee 100644 --- a/interpreter/src/main/java/com/iluwatar/Expression.java +++ b/interpreter/src/main/java/com/iluwatar/Expression.java @@ -3,7 +3,7 @@ package com.iluwatar; public abstract class Expression { public abstract int interpret(); - + @Override public abstract String toString(); } diff --git a/interpreter/src/main/java/com/iluwatar/MinusExpression.java b/interpreter/src/main/java/com/iluwatar/MinusExpression.java index 8025020fc..a12847863 100644 --- a/interpreter/src/main/java/com/iluwatar/MinusExpression.java +++ b/interpreter/src/main/java/com/iluwatar/MinusExpression.java @@ -9,7 +9,7 @@ public class MinusExpression extends Expression { this.leftExpression = leftExpression; this.rightExpression = rightExpression; } - + @Override public int interpret() { return leftExpression.interpret() - rightExpression.interpret(); diff --git a/interpreter/src/main/java/com/iluwatar/MultiplyExpression.java b/interpreter/src/main/java/com/iluwatar/MultiplyExpression.java index 15e1a1d9e..8a9b984c8 100644 --- a/interpreter/src/main/java/com/iluwatar/MultiplyExpression.java +++ b/interpreter/src/main/java/com/iluwatar/MultiplyExpression.java @@ -5,11 +5,12 @@ public class MultiplyExpression extends Expression { private Expression leftExpression; private Expression rightExpression; - public MultiplyExpression(Expression leftExpression, Expression rightExpression) { + public MultiplyExpression(Expression leftExpression, + Expression rightExpression) { this.leftExpression = leftExpression; this.rightExpression = rightExpression; } - + @Override public int interpret() { return leftExpression.interpret() * rightExpression.interpret(); diff --git a/interpreter/src/main/java/com/iluwatar/NumberExpression.java b/interpreter/src/main/java/com/iluwatar/NumberExpression.java index 0e818f336..6c947f370 100644 --- a/interpreter/src/main/java/com/iluwatar/NumberExpression.java +++ b/interpreter/src/main/java/com/iluwatar/NumberExpression.java @@ -7,11 +7,11 @@ public class NumberExpression extends Expression { public NumberExpression(int number) { this.number = number; } - + public NumberExpression(String s) { this.number = Integer.parseInt(s); } - + @Override public int interpret() { return number; diff --git a/interpreter/src/main/java/com/iluwatar/PlusExpression.java b/interpreter/src/main/java/com/iluwatar/PlusExpression.java index de090c332..f23df814d 100644 --- a/interpreter/src/main/java/com/iluwatar/PlusExpression.java +++ b/interpreter/src/main/java/com/iluwatar/PlusExpression.java @@ -9,7 +9,7 @@ public class PlusExpression extends Expression { this.leftExpression = leftExpression; this.rightExpression = rightExpression; } - + @Override public int interpret() { return leftExpression.interpret() + rightExpression.interpret(); diff --git a/iterator/src/main/java/com/iluwatar/App.java b/iterator/src/main/java/com/iluwatar/App.java index 72eeb8554..f1b99e7fc 100644 --- a/iterator/src/main/java/com/iluwatar/App.java +++ b/iterator/src/main/java/com/iluwatar/App.java @@ -1,41 +1,41 @@ package com.iluwatar; /** - * + * * Iterator (ItemIterator) adds abstraction layer on top of a collection * (TreasureChest). This way the collection can change its internal * implementation without affecting its clients. - * + * */ public class App { - public static void main(String[] args) { - TreasureChest chest = new TreasureChest(); + public static void main(String[] args) { + TreasureChest chest = new TreasureChest(); - ItemIterator ringIterator = chest.Iterator(ItemType.RING); - while (ringIterator.hasNext()) { - System.out.println(ringIterator.next()); - } + ItemIterator ringIterator = chest.Iterator(ItemType.RING); + while (ringIterator.hasNext()) { + System.out.println(ringIterator.next()); + } - System.out.println("----------"); + System.out.println("----------"); - ItemIterator potionIterator = chest.Iterator(ItemType.POTION); - while (potionIterator.hasNext()) { - System.out.println(potionIterator.next()); - } + ItemIterator potionIterator = chest.Iterator(ItemType.POTION); + while (potionIterator.hasNext()) { + System.out.println(potionIterator.next()); + } - System.out.println("----------"); + System.out.println("----------"); - ItemIterator weaponIterator = chest.Iterator(ItemType.WEAPON); - while (weaponIterator.hasNext()) { - System.out.println(weaponIterator.next()); - } + ItemIterator weaponIterator = chest.Iterator(ItemType.WEAPON); + while (weaponIterator.hasNext()) { + System.out.println(weaponIterator.next()); + } - System.out.println("----------"); + System.out.println("----------"); - ItemIterator it = chest.Iterator(ItemType.ANY); - while (it.hasNext()) { - System.out.println(it.next()); - } - } + ItemIterator it = chest.Iterator(ItemType.ANY); + while (it.hasNext()) { + System.out.println(it.next()); + } + } } diff --git a/iterator/src/main/java/com/iluwatar/Item.java b/iterator/src/main/java/com/iluwatar/Item.java index f7a3b7661..d3c1ff360 100644 --- a/iterator/src/main/java/com/iluwatar/Item.java +++ b/iterator/src/main/java/com/iluwatar/Item.java @@ -9,7 +9,7 @@ public class Item { this.setType(type); this.name = name; } - + @Override public String toString() { return name; diff --git a/iterator/src/main/java/com/iluwatar/ItemIterator.java b/iterator/src/main/java/com/iluwatar/ItemIterator.java index 1a6da1cd4..30f11e1ce 100644 --- a/iterator/src/main/java/com/iluwatar/ItemIterator.java +++ b/iterator/src/main/java/com/iluwatar/ItemIterator.java @@ -3,11 +3,11 @@ package com.iluwatar; /** * * Iterator interface. - * + * */ public interface ItemIterator { boolean hasNext(); - + Item next(); } diff --git a/iterator/src/main/java/com/iluwatar/ItemType.java b/iterator/src/main/java/com/iluwatar/ItemType.java index 905179417..0ea0fba2c 100644 --- a/iterator/src/main/java/com/iluwatar/ItemType.java +++ b/iterator/src/main/java/com/iluwatar/ItemType.java @@ -2,9 +2,6 @@ package com.iluwatar; public enum ItemType { - ANY, - WEAPON, - RING, - POTION - + ANY, WEAPON, RING, POTION + } diff --git a/iterator/src/main/java/com/iluwatar/TreasureChest.java b/iterator/src/main/java/com/iluwatar/TreasureChest.java index 7cc80e7ff..5131c403a 100644 --- a/iterator/src/main/java/com/iluwatar/TreasureChest.java +++ b/iterator/src/main/java/com/iluwatar/TreasureChest.java @@ -6,12 +6,12 @@ import java.util.List; /** * * Collection class. - * + * */ public class TreasureChest { private List items; - + public TreasureChest() { items = new ArrayList<>(); items.add(new Item(ItemType.POTION, "Potion of courage")); @@ -25,7 +25,7 @@ public class TreasureChest { items.add(new Item(ItemType.WEAPON, "Steel halberd")); items.add(new Item(ItemType.WEAPON, "Dagger of poison")); } - + ItemIterator Iterator(ItemType type) { return new TreasureChestItemIterator(this, type); } @@ -35,5 +35,5 @@ public class TreasureChest { list.addAll(items); return list; } - + } diff --git a/iterator/src/main/java/com/iluwatar/TreasureChestItemIterator.java b/iterator/src/main/java/com/iluwatar/TreasureChestItemIterator.java index 01e089b08..b25eadb46 100644 --- a/iterator/src/main/java/com/iluwatar/TreasureChestItemIterator.java +++ b/iterator/src/main/java/com/iluwatar/TreasureChestItemIterator.java @@ -13,7 +13,7 @@ public class TreasureChestItemIterator implements ItemIterator { this.type = type; this.idx = -1; } - + @Override public boolean hasNext() { return findNextIdx() != -1; @@ -27,9 +27,9 @@ public class TreasureChestItemIterator implements ItemIterator { } return null; } - + private int findNextIdx() { - + List items = chest.getItems(); boolean found = false; int tempIdx = idx; @@ -39,7 +39,8 @@ public class TreasureChestItemIterator implements ItemIterator { tempIdx = -1; break; } - if (type.equals(ItemType.ANY) || items.get(tempIdx).getType().equals(type)) { + if (type.equals(ItemType.ANY) + || items.get(tempIdx).getType().equals(type)) { break; } } diff --git a/mediator/src/main/java/com/iluwatar/Action.java b/mediator/src/main/java/com/iluwatar/Action.java index 6dd42dc94..25f568e12 100644 --- a/mediator/src/main/java/com/iluwatar/Action.java +++ b/mediator/src/main/java/com/iluwatar/Action.java @@ -5,7 +5,7 @@ public enum Action { HUNT, TALE, GOLD, ENEMY; public String toString() { - + String s = ""; switch (this) { case ENEMY: diff --git a/mediator/src/main/java/com/iluwatar/App.java b/mediator/src/main/java/com/iluwatar/App.java index eae4acd49..e8a4b6d9d 100644 --- a/mediator/src/main/java/com/iluwatar/App.java +++ b/mediator/src/main/java/com/iluwatar/App.java @@ -1,28 +1,28 @@ package com.iluwatar; /** - * + * * Mediator encapsulates how set of objects (PartyMember) interact. Instead of * referring to each other directly they use the mediator (Party) interface. - * + * */ public class App { - public static void main(String[] args) { - Party party = new PartyImpl(); - Hobbit hobbit = new Hobbit(); - Wizard wizard = new Wizard(); - Rogue rogue = new Rogue(); - Hunter hunter = new Hunter(); + public static void main(String[] args) { + Party party = new PartyImpl(); + Hobbit hobbit = new Hobbit(); + Wizard wizard = new Wizard(); + Rogue rogue = new Rogue(); + Hunter hunter = new Hunter(); - party.addMember(hobbit); - party.addMember(wizard); - party.addMember(rogue); - party.addMember(hunter); + party.addMember(hobbit); + party.addMember(wizard); + party.addMember(rogue); + party.addMember(hunter); - hobbit.act(Action.ENEMY); - wizard.act(Action.TALE); - rogue.act(Action.GOLD); - hunter.act(Action.HUNT); - } + hobbit.act(Action.ENEMY); + wizard.act(Action.TALE); + rogue.act(Action.GOLD); + hunter.act(Action.HUNT); + } } diff --git a/mediator/src/main/java/com/iluwatar/Party.java b/mediator/src/main/java/com/iluwatar/Party.java index cf72b3103..ad3efdafb 100644 --- a/mediator/src/main/java/com/iluwatar/Party.java +++ b/mediator/src/main/java/com/iluwatar/Party.java @@ -3,12 +3,12 @@ package com.iluwatar; /** * * Mediator interface. - * + * */ public interface Party { void addMember(PartyMember member); - + void act(PartyMember actor, Action action); - + } diff --git a/mediator/src/main/java/com/iluwatar/PartyImpl.java b/mediator/src/main/java/com/iluwatar/PartyImpl.java index d95325d3f..a98364700 100644 --- a/mediator/src/main/java/com/iluwatar/PartyImpl.java +++ b/mediator/src/main/java/com/iluwatar/PartyImpl.java @@ -6,14 +6,14 @@ import java.util.List; public class PartyImpl implements Party { private List members; - + public PartyImpl() { members = new ArrayList<>(); } - + @Override public void act(PartyMember actor, Action action) { - for (PartyMember member: members) { + for (PartyMember member : members) { if (member != actor) { member.partyAction(action); } @@ -25,13 +25,13 @@ public class PartyImpl implements Party { members.add(member); member.joinedParty(this); } - + // somebody hunts for food, call for dinner - + // somebody spots enemy, alert everybody - + // somebody finds gold, deal the gold with everybody - + // somebody tells a tale, call everybody to listen - + } diff --git a/mediator/src/main/java/com/iluwatar/PartyMember.java b/mediator/src/main/java/com/iluwatar/PartyMember.java index 80e04ba2f..126cf5250 100644 --- a/mediator/src/main/java/com/iluwatar/PartyMember.java +++ b/mediator/src/main/java/com/iluwatar/PartyMember.java @@ -3,12 +3,12 @@ package com.iluwatar; /** * * Interface for party members interacting with Party. - * + * */ public interface PartyMember { void joinedParty(Party party); - + void partyAction(Action action); void act(Action action); diff --git a/mediator/src/main/java/com/iluwatar/PartyMemberBase.java b/mediator/src/main/java/com/iluwatar/PartyMemberBase.java index 77b7a7cb4..2dbbb3e49 100644 --- a/mediator/src/main/java/com/iluwatar/PartyMemberBase.java +++ b/mediator/src/main/java/com/iluwatar/PartyMemberBase.java @@ -31,7 +31,7 @@ public abstract class PartyMemberBase implements PartyMember { } System.out.println(s); } - + @Override public void act(Action action) { if (party != null) { @@ -42,5 +42,5 @@ public abstract class PartyMemberBase implements PartyMember { @Override public abstract String toString(); - + } diff --git a/memento/src/main/java/com/iluwatar/App.java b/memento/src/main/java/com/iluwatar/App.java index c33189a17..901734e3b 100644 --- a/memento/src/main/java/com/iluwatar/App.java +++ b/memento/src/main/java/com/iluwatar/App.java @@ -3,34 +3,34 @@ package com.iluwatar; import java.util.Stack; /** - * + * * Memento pattern is for storing and restoring object state. The object (Star) * gives out a "memento" (StarMemento) that contains the state of the object. * Later on the memento can be set back to the object restoring the state. - * + * */ public class App { - public static void main(String[] args) { - Stack states = new Stack<>(); + public static void main(String[] args) { + Stack states = new Stack<>(); - Star star = new Star(StarType.SUN, 10000000, 500000); - System.out.println(star); - states.add(star.getMemento()); - star.timePasses(); - System.out.println(star); - states.add(star.getMemento()); - star.timePasses(); - System.out.println(star); - states.add(star.getMemento()); - star.timePasses(); - System.out.println(star); - states.add(star.getMemento()); - star.timePasses(); - System.out.println(star); - while (states.size() > 0) { - star.setMemento(states.pop()); - System.out.println(star); - } - } + Star star = new Star(StarType.SUN, 10000000, 500000); + System.out.println(star); + states.add(star.getMemento()); + star.timePasses(); + System.out.println(star); + states.add(star.getMemento()); + star.timePasses(); + System.out.println(star); + states.add(star.getMemento()); + star.timePasses(); + System.out.println(star); + states.add(star.getMemento()); + star.timePasses(); + System.out.println(star); + while (states.size() > 0) { + star.setMemento(states.pop()); + System.out.println(star); + } + } } diff --git a/memento/src/main/java/com/iluwatar/Star.java b/memento/src/main/java/com/iluwatar/Star.java index 03a5ad305..196290768 100644 --- a/memento/src/main/java/com/iluwatar/Star.java +++ b/memento/src/main/java/com/iluwatar/Star.java @@ -3,20 +3,20 @@ package com.iluwatar; /** * * Star uses "mementos" to store and restore state. - * + * */ public class Star { - + private StarType type; private int ageYears; private int massTons; - + public Star(StarType startType, int startAge, int startMass) { this.type = startType; this.ageYears = startAge; this.massTons = startMass; } - + public void timePasses() { ageYears *= 2; massTons *= 8; @@ -41,7 +41,7 @@ public class Star { break; } } - + StarMemento getMemento() { StarMementoInternal state = new StarMementoInternal(); @@ -49,20 +49,21 @@ public class Star { state.setMassTons(massTons); state.setType(type); return state; - + } - + void setMemento(StarMemento memento) { - + StarMementoInternal state = (StarMementoInternal) memento; this.type = state.getType(); this.ageYears = state.getAgeYears(); this.massTons = state.getMassTons(); - + } - + @Override public String toString() { - return String.format("%s age: %d years mass: %d tons", type.toString(), ageYears, massTons); + return String.format("%s age: %d years mass: %d tons", type.toString(), + ageYears, massTons); } } diff --git a/memento/src/main/java/com/iluwatar/StarMemento.java b/memento/src/main/java/com/iluwatar/StarMemento.java index 9d2806ac2..e9511a9c9 100644 --- a/memento/src/main/java/com/iluwatar/StarMemento.java +++ b/memento/src/main/java/com/iluwatar/StarMemento.java @@ -3,7 +3,7 @@ package com.iluwatar; /** * * External interface to memento. - * + * */ public interface StarMemento { diff --git a/memento/src/main/java/com/iluwatar/StarMementoInternal.java b/memento/src/main/java/com/iluwatar/StarMementoInternal.java index 45c8f7c11..9962b79fb 100644 --- a/memento/src/main/java/com/iluwatar/StarMementoInternal.java +++ b/memento/src/main/java/com/iluwatar/StarMementoInternal.java @@ -3,29 +3,34 @@ package com.iluwatar; /** * * Internal interface to memento. - * + * */ public class StarMementoInternal implements StarMemento { private StarType type; private int ageYears; private int massTons; - + public StarType getType() { return type; } + public void setType(StarType type) { this.type = type; } + public int getAgeYears() { return ageYears; } + public void setAgeYears(int ageYears) { this.ageYears = ageYears; } + public int getMassTons() { return massTons; } + public void setMassTons(int massTons) { this.massTons = massTons; } diff --git a/memento/src/main/java/com/iluwatar/StarType.java b/memento/src/main/java/com/iluwatar/StarType.java index 54b352184..85f599b1c 100644 --- a/memento/src/main/java/com/iluwatar/StarType.java +++ b/memento/src/main/java/com/iluwatar/StarType.java @@ -2,11 +2,7 @@ package com.iluwatar; public enum StarType { - SUN, - RED_GIANT, - WHITE_DWARF, - SUPERNOVA, - DEAD; + SUN, RED_GIANT, WHITE_DWARF, SUPERNOVA, DEAD; @Override public String toString() { @@ -32,5 +28,5 @@ public enum StarType { } return s; } - + } diff --git a/model-view-presenter/src/main/java/com/iluwatar/FileLoader.java b/model-view-presenter/src/main/java/com/iluwatar/FileLoader.java index 91c45ecca..ec4d095da 100644 --- a/model-view-presenter/src/main/java/com/iluwatar/FileLoader.java +++ b/model-view-presenter/src/main/java/com/iluwatar/FileLoader.java @@ -5,72 +5,74 @@ import java.io.File; import java.io.FileReader; /** - * Every instance of this class represents the Model component - * in the Model-View-Presenter architectural pattern. + * Every instance of this class represents the Model component in the + * Model-View-Presenter architectural pattern. * * It is responsible for reading and loading the contents of a given file. */ public class FileLoader { - + /** * Indicates if the file is loaded or not. */ private boolean loaded = false; - + /** * The name of the file that we want to load. */ private String fileName; - + /** * Loads the data of the file specified. */ public String loadData() { try { - BufferedReader br = new BufferedReader(new FileReader(new File(this.fileName))); + BufferedReader br = new BufferedReader(new FileReader(new File( + this.fileName))); String text = ""; String line = ""; - - while( (line = br.readLine()) != null ) { + + while ((line = br.readLine()) != null) { text += line + "\n"; } - + this.loaded = true; br.close(); - + return text; } - - catch(Exception e) { + + catch (Exception e) { e.printStackTrace(); } - + return null; } - + /** * Sets the path of the file to be loaded, to the given value. * - * @param fileName The path of the file to be loaded. + * @param fileName + * The path of the file to be loaded. */ public void setFileName(String fileName) { this.fileName = fileName; } - + /** * @return fileName The path of the file to be loaded. */ public String getFileName() { return this.fileName; } - + /** * @return True, if the file given exists, false otherwise. */ public boolean fileExists() { return new File(this.fileName).exists(); } - + /** * @return True, if the file is loaded, false otherwise. */ diff --git a/model-view-presenter/src/main/java/com/iluwatar/FileSelectorJFrame.java b/model-view-presenter/src/main/java/com/iluwatar/FileSelectorJFrame.java index 231128ca2..d4003e97c 100644 --- a/model-view-presenter/src/main/java/com/iluwatar/FileSelectorJFrame.java +++ b/model-view-presenter/src/main/java/com/iluwatar/FileSelectorJFrame.java @@ -14,62 +14,62 @@ import javax.swing.JTextArea; import javax.swing.JTextField; /** - * This class is the GUI implementation of the View component - * In the Model-View-Presenter pattern. + * This class is the GUI implementation of the View component In the + * Model-View-Presenter pattern. */ -public class FileSelectorJFrame extends JFrame implements FileSelectorView, ActionListener { +public class FileSelectorJFrame extends JFrame implements FileSelectorView, + ActionListener { /** * Default serial version ID. */ private static final long serialVersionUID = 1L; - + /** * The "OK" button for loading the file. */ private JButton OK; - + /** * The cancel button. */ private JButton cancel; - + /** * The information label. */ private JLabel info; - + /** * The contents label. */ private JLabel contents; - + /** - * The text field for giving the name of the file - * that we want to open. + * The text field for giving the name of the file that we want to open. */ private JTextField input; - + /** * A text area that will keep the contents of the file opened. */ private JTextArea area; - + /** * The panel that will hold our widgets. */ private JPanel panel; - + /** * The Presenter component that the frame will interact with */ private FileSelectorPresenter presenter; - + /** * The name of the file that we want to read it's contents. */ private String fileName; - + /** * Constructor. */ @@ -78,7 +78,7 @@ public class FileSelectorJFrame extends JFrame implements FileSelectorView, Acti this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLayout(null); this.setBounds(100, 100, 500, 200); - + /* * Add the panel. */ @@ -87,28 +87,28 @@ public class FileSelectorJFrame extends JFrame implements FileSelectorView, Acti this.add(panel); panel.setBounds(0, 0, 500, 200); panel.setBackground(Color.LIGHT_GRAY); - + /* * Add the info label. */ this.info = new JLabel("File Name :"); this.panel.add(info); info.setBounds(30, 10, 100, 30); - + /* - * Add the contents label. + * Add the contents label. */ this.contents = new JLabel("File contents :"); this.panel.add(contents); this.contents.setBounds(30, 100, 120, 30); - + /* * Add the text field. */ this.input = new JTextField(100); this.panel.add(input); this.input.setBounds(150, 15, 200, 20); - + /* * Add the text area. */ @@ -119,7 +119,7 @@ public class FileSelectorJFrame extends JFrame implements FileSelectorView, Acti this.panel.add(pane); this.area.setEditable(false); pane.setBounds(150, 100, 250, 80); - + /* * Add the OK button. */ @@ -127,28 +127,28 @@ public class FileSelectorJFrame extends JFrame implements FileSelectorView, Acti this.panel.add(OK); this.OK.setBounds(250, 50, 100, 25); this.OK.addActionListener(this); - + /* - * Add the cancel button. + * Add the cancel button. */ this.cancel = new JButton("Cancel"); this.panel.add(this.cancel); this.cancel.setBounds(380, 50, 100, 25); this.cancel.addActionListener(this); - + this.presenter = null; this.fileName = null; } - + @Override public void actionPerformed(ActionEvent e) { - if(e.getSource() == this.OK) { + if (e.getSource() == this.OK) { this.fileName = this.input.getText(); presenter.fileNameChanged(); presenter.confirmed(); } - - else if(e.getSource() == this.cancel) { + + else if (e.getSource() == this.cancel) { presenter.cancelled(); } } diff --git a/model-view-presenter/src/main/java/com/iluwatar/FileSelectorPresenter.java b/model-view-presenter/src/main/java/com/iluwatar/FileSelectorPresenter.java index 3d1a22010..dbe9bdb20 100644 --- a/model-view-presenter/src/main/java/com/iluwatar/FileSelectorPresenter.java +++ b/model-view-presenter/src/main/java/com/iluwatar/FileSelectorPresenter.java @@ -1,41 +1,44 @@ package com.iluwatar; /** - * Every instance of this class represents the Presenter component - * in the Model-View-Presenter architectural pattern. + * Every instance of this class represents the Presenter component in the + * Model-View-Presenter architectural pattern. * - * It is responsible for reacting to the user's actions and update the View component. + * It is responsible for reacting to the user's actions and update the View + * component. */ public class FileSelectorPresenter { - + /** * The View component that the presenter interacts with. */ private FileSelectorView view; - + /** * The Model component that the presenter interacts with. */ private FileLoader loader; - + /** * Constructor * - * @param view The view component that the presenter will interact with. + * @param view + * The view component that the presenter will interact with. */ public FileSelectorPresenter(FileSelectorView view) { this.view = view; } - + /** * Sets the FileLoader object, to the value given as parameter. * - * @param loader The new FileLoader object(the Model component). + * @param loader + * The new FileLoader object(the Model component). */ public void setLoader(FileLoader loader) { this.loader = loader; } - + /** * Starts the presenter. */ @@ -43,34 +46,34 @@ public class FileSelectorPresenter { view.setPresenter(this); view.open(); } - + /** * An "event" that fires when the name of the file to be loaded changes. */ public void fileNameChanged() { loader.setFileName(view.getFileName()); } - + public void confirmed() { - if(loader.getFileName() == null || loader.getFileName().equals("")) { + if (loader.getFileName() == null || loader.getFileName().equals("")) { view.showMessage("Please give the name of the file first!"); return; } - - if(loader.fileExists()) { + + if (loader.fileExists()) { String data = loader.loadData(); view.displayData(data); - } - + } + else { view.showMessage("The file specified does not exist."); } } - + /** * Cancels the file loading process. */ public void cancelled() { view.close(); - } + } } diff --git a/model-view-presenter/src/main/java/com/iluwatar/FileSelectorStub.java b/model-view-presenter/src/main/java/com/iluwatar/FileSelectorStub.java index a4b6cabf8..f8283a4f5 100644 --- a/model-view-presenter/src/main/java/com/iluwatar/FileSelectorStub.java +++ b/model-view-presenter/src/main/java/com/iluwatar/FileSelectorStub.java @@ -1,42 +1,42 @@ package com.iluwatar; /** - * Every instance of this class represents the Stub component in - * the Model-View-Presenter architectural pattern. + * Every instance of this class represents the Stub component in the + * Model-View-Presenter architectural pattern. * - * The stub implements the View interface and it is useful when - * we want the test the reaction to user events, such as mouse clicks. + * The stub implements the View interface and it is useful when we want the test + * the reaction to user events, such as mouse clicks. * - * Since we can not test the GUI directly, the MVP pattern provides - * this functionality through the View's dummy implementation, the Stub. + * Since we can not test the GUI directly, the MVP pattern provides this + * functionality through the View's dummy implementation, the Stub. */ public class FileSelectorStub implements FileSelectorView { /** - * Indicates whether or not the view is opened. + * Indicates whether or not the view is opened. */ private boolean opened; - + /** * The presenter Component. */ private FileSelectorPresenter presenter; - + /** * The current name of the file. */ private String name; - + /** * Indicates the number of messages that were "displayed" to the user. */ private int numOfMessageSent; - + /** * Indicates if the data of the file where displayed or not. */ private boolean dataDisplayed; - + /** * Constructor */ @@ -47,7 +47,7 @@ public class FileSelectorStub implements FileSelectorView { this.numOfMessageSent = 0; this.dataDisplayed = false; } - + @Override public void open() { this.opened = true; @@ -82,7 +82,7 @@ public class FileSelectorStub implements FileSelectorView { public void showMessage(String message) { this.numOfMessageSent++; } - + @Override public void close() { this.opened = false; @@ -92,14 +92,14 @@ public class FileSelectorStub implements FileSelectorView { public void displayData(String data) { this.dataDisplayed = true; } - + /** * Returns the number of messages that were displayed to the user. */ public int getMessagesSent() { return this.numOfMessageSent; } - + /** * @return True if the data where displayed, false otherwise. */ diff --git a/model-view-presenter/src/main/java/com/iluwatar/FileSelectorView.java b/model-view-presenter/src/main/java/com/iluwatar/FileSelectorView.java index deb1bd841..0927e5de6 100644 --- a/model-view-presenter/src/main/java/com/iluwatar/FileSelectorView.java +++ b/model-view-presenter/src/main/java/com/iluwatar/FileSelectorView.java @@ -1,62 +1,65 @@ package com.iluwatar; /** - * This interface represents the View component in the - * Model-View-Presenter pattern. It can be implemented - * by either the GUI components, or by the Stub. + * This interface represents the View component in the Model-View-Presenter + * pattern. It can be implemented by either the GUI components, or by the Stub. */ public interface FileSelectorView { - + /** * Opens the view. */ public void open(); - + /** * Closes the view. */ public void close(); - + /** * @return True, if the view is opened, false otherwise. */ public boolean isOpened(); - + /** * Sets the presenter component, to the one given as parameter. * - * @param presenter The new presenter component. + * @param presenter + * The new presenter component. */ public void setPresenter(FileSelectorPresenter presenter); - + /** * @return The presenter Component. */ public FileSelectorPresenter getPresenter(); - + /** * Sets the file's name, to the value given as parameter. * - * @param name The new name of the file. + * @param name + * The new name of the file. */ public void setFileName(String name); - + /** * @return The name of the file. */ public String getFileName(); - + /** * Displays a message to the users. * - * @param message The message to be displayed. + * @param message + * The message to be displayed. */ public void showMessage(String message); - + /** * Displays the data to the view. * - * @param data The data to be written. + * @param data + * The data to be written. */ public void displayData(String data); } diff --git a/model-view-presenter/src/main/java/com/iluwatar/MainApp.java b/model-view-presenter/src/main/java/com/iluwatar/MainApp.java index cd342d539..038374069 100644 --- a/model-view-presenter/src/main/java/com/iluwatar/MainApp.java +++ b/model-view-presenter/src/main/java/com/iluwatar/MainApp.java @@ -1,7 +1,7 @@ package com.iluwatar; public class MainApp { - + public static void main(String[] args) { FileLoader loader = new FileLoader(); FileSelectorJFrame jFrame = new FileSelectorJFrame(); diff --git a/model-view-presenter/src/test/java/com/iluwatar/FileSelectorPresenterTest.java b/model-view-presenter/src/test/java/com/iluwatar/FileSelectorPresenterTest.java index 507cad251..aa5594fe2 100644 --- a/model-view-presenter/src/test/java/com/iluwatar/FileSelectorPresenterTest.java +++ b/model-view-presenter/src/test/java/com/iluwatar/FileSelectorPresenterTest.java @@ -6,27 +6,26 @@ import org.junit.Before; import org.junit.Test; /** - * This test case is responsible for testing our application - * by taking advantage of the Model-View-Controller architectural pattern. + * This test case is responsible for testing our application by taking advantage + * of the Model-View-Controller architectural pattern. */ public class FileSelectorPresenterTest { - + /** * The Presenter component. */ private FileSelectorPresenter presenter; - + /** * The View component, implemented this time as a Stub!!! */ private FileSelectorStub stub; - + /** * The Model component. */ private FileLoader loader; - - + /** * Initializes the components of the test case. */ @@ -37,18 +36,18 @@ public class FileSelectorPresenterTest { presenter = new FileSelectorPresenter(this.stub); presenter.setLoader(loader); } - + /** * Tests if the Presenter was successfully connected with the View. */ @Test public void wiring() { presenter.start(); - + assertNotNull(stub.getPresenter()); assertTrue(stub.isOpened()); } - + /** * Tests if the name of the file changes. */ @@ -56,45 +55,45 @@ public class FileSelectorPresenterTest { public void updateFileNameToLoader() { String EXPECTED_FILE = "Stamatis"; stub.setFileName(EXPECTED_FILE); - + presenter.start(); presenter.fileNameChanged(); - + assertEquals(EXPECTED_FILE, loader.getFileName()); } - + /** - * Tests if we receive a confirmation when we attempt to open a file - * that it's name is null or an empty string. + * Tests if we receive a confirmation when we attempt to open a file that + * it's name is null or an empty string. */ @Test public void fileConfirmationWhenNameIsNull() { stub.setFileName(null); - + presenter.start(); presenter.fileNameChanged(); presenter.confirmed(); - + assertFalse(loader.isLoaded()); assertEquals(1, stub.getMessagesSent()); } - + /** - * Tests if we receive a confirmation when we attempt to open a file - * that it doesn't exist. + * Tests if we receive a confirmation when we attempt to open a file that it + * doesn't exist. */ @Test public void fileConfirmationWhenFileDoesNotExist() { stub.setFileName("RandomName.txt"); - + presenter.start(); presenter.fileNameChanged(); presenter.confirmed(); - + assertFalse(loader.isLoaded()); assertEquals(1, stub.getMessagesSent()); } - + /** * Tests if we can open the file, when it exists. */ @@ -104,11 +103,11 @@ public class FileSelectorPresenterTest { presenter.start(); presenter.fileNameChanged(); presenter.confirmed(); - + assertTrue(loader.isLoaded()); assertTrue(stub.dataDisplayed()); } - + /** * Tests if the view closes after cancellation. */ @@ -116,7 +115,7 @@ public class FileSelectorPresenterTest { public void cancellation() { presenter.start(); presenter.cancelled(); - + assertFalse(stub.isOpened()); } } diff --git a/observer/src/main/java/com/iluwatar/App.java b/observer/src/main/java/com/iluwatar/App.java index 256dff1b7..8beecc41b 100644 --- a/observer/src/main/java/com/iluwatar/App.java +++ b/observer/src/main/java/com/iluwatar/App.java @@ -1,23 +1,23 @@ package com.iluwatar; /** - * + * * Observer pattern defines one-to-many relationship between objects. The target * object sends change notifications to its registered observers. - * + * */ public class App { - public static void main(String[] args) { + public static void main(String[] args) { - Weather weather = new Weather(); - weather.addObserver(new Orcs()); - weather.addObserver(new Hobbits()); + Weather weather = new Weather(); + weather.addObserver(new Orcs()); + weather.addObserver(new Hobbits()); - weather.timePasses(); - weather.timePasses(); - weather.timePasses(); - weather.timePasses(); + weather.timePasses(); + weather.timePasses(); + weather.timePasses(); + weather.timePasses(); - } + } } diff --git a/observer/src/main/java/com/iluwatar/Hobbits.java b/observer/src/main/java/com/iluwatar/Hobbits.java index b4b09ab3c..b9dc3eab1 100644 --- a/observer/src/main/java/com/iluwatar/Hobbits.java +++ b/observer/src/main/java/com/iluwatar/Hobbits.java @@ -6,7 +6,8 @@ public class Hobbits implements WeatherObserver { public void update(WeatherType currentWeather) { switch (currentWeather) { case COLD: - System.out.println("The hobbits are shivering in the cold weather."); + System.out + .println("The hobbits are shivering in the cold weather."); break; case RAINY: System.out.println("The hobbits look for cover from the rain."); @@ -15,7 +16,8 @@ public class Hobbits implements WeatherObserver { System.out.println("The happy hobbits bade in the warm sun."); break; case WINDY: - System.out.println("The hobbits hold their hats tightly in the windy weather."); + System.out + .println("The hobbits hold their hats tightly in the windy weather."); break; default: break; diff --git a/observer/src/main/java/com/iluwatar/Weather.java b/observer/src/main/java/com/iluwatar/Weather.java index f3c11ac73..e5f054872 100644 --- a/observer/src/main/java/com/iluwatar/Weather.java +++ b/observer/src/main/java/com/iluwatar/Weather.java @@ -5,28 +5,28 @@ import java.util.List; /** * - * Weather can be observed by implementing WeatherObserver - * interface and registering as listener. - * + * Weather can be observed by implementing WeatherObserver interface and + * registering as listener. + * */ public class Weather { private WeatherType currentWeather; private List observers; - + public Weather() { observers = new ArrayList<>(); currentWeather = WeatherType.SUNNY; } - + public void addObserver(WeatherObserver obs) { observers.add(obs); } - + public void removeObserver(WeatherObserver obs) { observers.remove(obs); } - + public void timePasses() { switch (currentWeather) { case COLD: @@ -47,9 +47,9 @@ public class Weather { System.out.println("The weather now changes to " + currentWeather); notifyObservers(); } - + private void notifyObservers() { - for (WeatherObserver obs: observers) { + for (WeatherObserver obs : observers) { obs.update(currentWeather); } } diff --git a/observer/src/main/java/com/iluwatar/WeatherObserver.java b/observer/src/main/java/com/iluwatar/WeatherObserver.java index 6af020240..062f49ca6 100644 --- a/observer/src/main/java/com/iluwatar/WeatherObserver.java +++ b/observer/src/main/java/com/iluwatar/WeatherObserver.java @@ -3,10 +3,10 @@ package com.iluwatar; /** * * Observer interface. - * + * */ public interface WeatherObserver { void update(WeatherType currentWeather); - + } diff --git a/observer/src/main/java/com/iluwatar/WeatherType.java b/observer/src/main/java/com/iluwatar/WeatherType.java index 9625fbab8..bacbcd4d6 100644 --- a/observer/src/main/java/com/iluwatar/WeatherType.java +++ b/observer/src/main/java/com/iluwatar/WeatherType.java @@ -2,13 +2,10 @@ package com.iluwatar; public enum WeatherType { - SUNNY, - RAINY, - WINDY, - COLD; - + SUNNY, RAINY, WINDY, COLD; + public String toString() { return this.name().toLowerCase(); }; - + } diff --git a/prototype/src/main/java/com/iluwatar/App.java b/prototype/src/main/java/com/iluwatar/App.java index d6cf4a6d8..d10a3bde4 100644 --- a/prototype/src/main/java/com/iluwatar/App.java +++ b/prototype/src/main/java/com/iluwatar/App.java @@ -1,34 +1,36 @@ package com.iluwatar; /** - * + * * In Prototype we have a factory class (HeroFactoryImpl) producing objects by * cloning existing ones. In this example the factory's prototype objects are * given as constructor parameters. - * + * */ public class App { - public static void main(String[] args) { - HeroFactory factory; - Mage mage; - Warlord warlord; - Beast beast; + public static void main(String[] args) { + HeroFactory factory; + Mage mage; + Warlord warlord; + Beast beast; - factory = new HeroFactoryImpl(new ElfMage(), new ElfWarlord(), new ElfBeast()); - mage = factory.createMage(); - warlord = factory.createWarlord(); - beast = factory.createBeast(); - System.out.println(mage); - System.out.println(warlord); - System.out.println(beast); + factory = new HeroFactoryImpl(new ElfMage(), new ElfWarlord(), + new ElfBeast()); + mage = factory.createMage(); + warlord = factory.createWarlord(); + beast = factory.createBeast(); + System.out.println(mage); + System.out.println(warlord); + System.out.println(beast); - factory = new HeroFactoryImpl(new OrcMage(), new OrcWarlord(), new OrcBeast()); - mage = factory.createMage(); - warlord = factory.createWarlord(); - beast = factory.createBeast(); - System.out.println(mage); - System.out.println(warlord); - System.out.println(beast); - } + factory = new HeroFactoryImpl(new OrcMage(), new OrcWarlord(), + new OrcBeast()); + mage = factory.createMage(); + warlord = factory.createWarlord(); + beast = factory.createBeast(); + System.out.println(mage); + System.out.println(warlord); + System.out.println(beast); + } } diff --git a/prototype/src/main/java/com/iluwatar/Beast.java b/prototype/src/main/java/com/iluwatar/Beast.java index 2d1e978c0..23f3c30e0 100644 --- a/prototype/src/main/java/com/iluwatar/Beast.java +++ b/prototype/src/main/java/com/iluwatar/Beast.java @@ -4,5 +4,5 @@ public abstract class Beast extends Prototype { @Override public abstract Beast clone() throws CloneNotSupportedException; - + } diff --git a/prototype/src/main/java/com/iluwatar/ElfBeast.java b/prototype/src/main/java/com/iluwatar/ElfBeast.java index 40fac06b8..a2a0748ae 100644 --- a/prototype/src/main/java/com/iluwatar/ElfBeast.java +++ b/prototype/src/main/java/com/iluwatar/ElfBeast.java @@ -4,10 +4,10 @@ public class ElfBeast extends Beast { public ElfBeast() { } - + public ElfBeast(ElfBeast beast) { } - + @Override public Beast clone() throws CloneNotSupportedException { return new ElfBeast(this); diff --git a/prototype/src/main/java/com/iluwatar/ElfMage.java b/prototype/src/main/java/com/iluwatar/ElfMage.java index 52919c91d..209ac4a26 100644 --- a/prototype/src/main/java/com/iluwatar/ElfMage.java +++ b/prototype/src/main/java/com/iluwatar/ElfMage.java @@ -4,10 +4,10 @@ public class ElfMage extends Mage { public ElfMage() { } - + public ElfMage(ElfMage mage) { } - + @Override public Mage clone() throws CloneNotSupportedException { return new ElfMage(this); diff --git a/prototype/src/main/java/com/iluwatar/ElfWarlord.java b/prototype/src/main/java/com/iluwatar/ElfWarlord.java index 51c52afdc..e7a59ef56 100644 --- a/prototype/src/main/java/com/iluwatar/ElfWarlord.java +++ b/prototype/src/main/java/com/iluwatar/ElfWarlord.java @@ -4,10 +4,10 @@ public class ElfWarlord extends Warlord { public ElfWarlord() { } - + public ElfWarlord(ElfWarlord warlord) { } - + @Override public Warlord clone() throws CloneNotSupportedException { return new ElfWarlord(this); diff --git a/prototype/src/main/java/com/iluwatar/HeroFactory.java b/prototype/src/main/java/com/iluwatar/HeroFactory.java index e7145fa88..062a64658 100644 --- a/prototype/src/main/java/com/iluwatar/HeroFactory.java +++ b/prototype/src/main/java/com/iluwatar/HeroFactory.java @@ -3,14 +3,14 @@ package com.iluwatar; /** * * Interface for the factory class. - * + * */ public interface HeroFactory { Mage createMage(); - + Warlord createWarlord(); - + Beast createBeast(); - + } diff --git a/prototype/src/main/java/com/iluwatar/HeroFactoryImpl.java b/prototype/src/main/java/com/iluwatar/HeroFactoryImpl.java index 7c96fc8a5..15d3e89f9 100644 --- a/prototype/src/main/java/com/iluwatar/HeroFactoryImpl.java +++ b/prototype/src/main/java/com/iluwatar/HeroFactoryImpl.java @@ -3,7 +3,7 @@ package com.iluwatar; /** * * Concrete factory class. - * + * */ public class HeroFactoryImpl implements HeroFactory { @@ -16,7 +16,7 @@ public class HeroFactoryImpl implements HeroFactory { this.warlord = warlord; this.beast = beast; } - + public Mage createMage() { try { return mage.clone(); @@ -24,7 +24,7 @@ public class HeroFactoryImpl implements HeroFactory { return null; } } - + public Warlord createWarlord() { try { return warlord.clone(); @@ -32,7 +32,7 @@ public class HeroFactoryImpl implements HeroFactory { return null; } } - + public Beast createBeast() { try { return beast.clone(); @@ -40,5 +40,5 @@ public class HeroFactoryImpl implements HeroFactory { return null; } } - + } diff --git a/prototype/src/main/java/com/iluwatar/Mage.java b/prototype/src/main/java/com/iluwatar/Mage.java index 726150633..fe25f2bdf 100644 --- a/prototype/src/main/java/com/iluwatar/Mage.java +++ b/prototype/src/main/java/com/iluwatar/Mage.java @@ -4,5 +4,5 @@ public abstract class Mage extends Prototype { @Override public abstract Mage clone() throws CloneNotSupportedException; - + } diff --git a/prototype/src/main/java/com/iluwatar/OrcBeast.java b/prototype/src/main/java/com/iluwatar/OrcBeast.java index a5f52232c..0162f677f 100644 --- a/prototype/src/main/java/com/iluwatar/OrcBeast.java +++ b/prototype/src/main/java/com/iluwatar/OrcBeast.java @@ -4,10 +4,10 @@ public class OrcBeast extends Beast { public OrcBeast() { } - + public OrcBeast(OrcBeast beast) { } - + @Override public Beast clone() throws CloneNotSupportedException { return new OrcBeast(this); @@ -17,5 +17,5 @@ public class OrcBeast extends Beast { public String toString() { return "Orcish wolf"; } - + } diff --git a/prototype/src/main/java/com/iluwatar/OrcMage.java b/prototype/src/main/java/com/iluwatar/OrcMage.java index 88e7718ac..c065caf00 100644 --- a/prototype/src/main/java/com/iluwatar/OrcMage.java +++ b/prototype/src/main/java/com/iluwatar/OrcMage.java @@ -4,10 +4,10 @@ public class OrcMage extends Mage { public OrcMage() { } - + public OrcMage(OrcMage mage) { } - + @Override public Mage clone() throws CloneNotSupportedException { return new OrcMage(this); @@ -17,5 +17,5 @@ public class OrcMage extends Mage { public String toString() { return "Orcish mage"; } - + } diff --git a/prototype/src/main/java/com/iluwatar/OrcWarlord.java b/prototype/src/main/java/com/iluwatar/OrcWarlord.java index 62ab25975..162e0d795 100644 --- a/prototype/src/main/java/com/iluwatar/OrcWarlord.java +++ b/prototype/src/main/java/com/iluwatar/OrcWarlord.java @@ -4,10 +4,10 @@ public class OrcWarlord extends Warlord { public OrcWarlord() { } - + public OrcWarlord(OrcWarlord warlord) { } - + @Override public Warlord clone() throws CloneNotSupportedException { return new OrcWarlord(this); @@ -17,5 +17,5 @@ public class OrcWarlord extends Warlord { public String toString() { return "Orcish warlord"; } - + } diff --git a/prototype/src/main/java/com/iluwatar/Prototype.java b/prototype/src/main/java/com/iluwatar/Prototype.java index e508aea6e..33128e0e9 100644 --- a/prototype/src/main/java/com/iluwatar/Prototype.java +++ b/prototype/src/main/java/com/iluwatar/Prototype.java @@ -4,5 +4,5 @@ public abstract class Prototype implements Cloneable { @Override public abstract Object clone() throws CloneNotSupportedException; - + } diff --git a/prototype/src/main/java/com/iluwatar/Warlord.java b/prototype/src/main/java/com/iluwatar/Warlord.java index 4ddcdd251..0b65bf784 100644 --- a/prototype/src/main/java/com/iluwatar/Warlord.java +++ b/prototype/src/main/java/com/iluwatar/Warlord.java @@ -4,5 +4,5 @@ public abstract class Warlord extends Prototype { @Override public abstract Warlord clone() throws CloneNotSupportedException; - + } diff --git a/proxy/src/main/java/com/iluwatar/App.java b/proxy/src/main/java/com/iluwatar/App.java index 0e6b7e7cd..ebf41fd1d 100644 --- a/proxy/src/main/java/com/iluwatar/App.java +++ b/proxy/src/main/java/com/iluwatar/App.java @@ -1,20 +1,20 @@ package com.iluwatar; /** - * + * * Proxy (WizardTowerProxy) controls access to the actual object (WizardTower). - * + * */ public class App { - public static void main(String[] args) { + public static void main(String[] args) { - WizardTowerProxy tower = new WizardTowerProxy(); - tower.enter(new Wizard("Red wizard")); - tower.enter(new Wizard("White wizard")); - tower.enter(new Wizard("Black wizard")); - tower.enter(new Wizard("Green wizard")); - tower.enter(new Wizard("Brown wizard")); + WizardTowerProxy tower = new WizardTowerProxy(); + tower.enter(new Wizard("Red wizard")); + tower.enter(new Wizard("White wizard")); + tower.enter(new Wizard("Black wizard")); + tower.enter(new Wizard("Green wizard")); + tower.enter(new Wizard("Brown wizard")); - } + } } diff --git a/proxy/src/main/java/com/iluwatar/Wizard.java b/proxy/src/main/java/com/iluwatar/Wizard.java index 41c838fdc..192d77c51 100644 --- a/proxy/src/main/java/com/iluwatar/Wizard.java +++ b/proxy/src/main/java/com/iluwatar/Wizard.java @@ -12,5 +12,5 @@ public class Wizard { public String toString() { return name; } - + } diff --git a/proxy/src/main/java/com/iluwatar/WizardTower.java b/proxy/src/main/java/com/iluwatar/WizardTower.java index 1b7320a3e..43d28a10f 100644 --- a/proxy/src/main/java/com/iluwatar/WizardTower.java +++ b/proxy/src/main/java/com/iluwatar/WizardTower.java @@ -3,12 +3,12 @@ package com.iluwatar; /** * * The object to be proxyed. - * + * */ public class WizardTower { public void enter(Wizard wizard) { System.out.println(wizard + " enters the tower."); } - + } diff --git a/proxy/src/main/java/com/iluwatar/WizardTowerProxy.java b/proxy/src/main/java/com/iluwatar/WizardTowerProxy.java index 1be1cacea..6d30b51b9 100644 --- a/proxy/src/main/java/com/iluwatar/WizardTowerProxy.java +++ b/proxy/src/main/java/com/iluwatar/WizardTowerProxy.java @@ -3,14 +3,14 @@ package com.iluwatar; /** * * The proxy controlling access to WizardTower. - * + * */ public class WizardTowerProxy extends WizardTower { private static final int NUM_WIZARDS_ALLOWED = 3; - + private int numWizards; - + @Override public void enter(Wizard wizard) { if (numWizards < NUM_WIZARDS_ALLOWED) { diff --git a/singleton/src/main/java/com/iluwatar/App.java b/singleton/src/main/java/com/iluwatar/App.java index b719a2b29..2d7fb26e9 100644 --- a/singleton/src/main/java/com/iluwatar/App.java +++ b/singleton/src/main/java/com/iluwatar/App.java @@ -1,19 +1,19 @@ package com.iluwatar; /** - * + * * Singleton pattern ensures that the class (IvoryTower) can have only one * existing instance and provides global access to that instance. - * + * */ public class App { - public static void main(String[] args) { + public static void main(String[] args) { - IvoryTower ivoryTower1 = IvoryTower.getInstance(); - IvoryTower ivoryTower2 = IvoryTower.getInstance(); - System.out.println("ivoryTower1=" + ivoryTower1); - System.out.println("ivoryTower2=" + ivoryTower2); + IvoryTower ivoryTower1 = IvoryTower.getInstance(); + IvoryTower ivoryTower2 = IvoryTower.getInstance(); + System.out.println("ivoryTower1=" + ivoryTower1); + System.out.println("ivoryTower2=" + ivoryTower2); - } + } } diff --git a/singleton/src/main/java/com/iluwatar/IvoryTower.java b/singleton/src/main/java/com/iluwatar/IvoryTower.java index 113962eb8..db842675f 100644 --- a/singleton/src/main/java/com/iluwatar/IvoryTower.java +++ b/singleton/src/main/java/com/iluwatar/IvoryTower.java @@ -3,13 +3,14 @@ package com.iluwatar; /** * * Singleton class. - * + * */ public class IvoryTower { private static IvoryTower instance = new IvoryTower(); - - private IvoryTower() {} + + private IvoryTower() { + } public static IvoryTower getInstance() { return instance; diff --git a/state/src/main/java/com/iluwatar/AngryState.java b/state/src/main/java/com/iluwatar/AngryState.java index 0a3de44e8..43e0e15ca 100644 --- a/state/src/main/java/com/iluwatar/AngryState.java +++ b/state/src/main/java/com/iluwatar/AngryState.java @@ -7,7 +7,7 @@ public class AngryState implements State { public AngryState(Mammoth mammoth) { this.mammoth = mammoth; } - + @Override public void observe() { System.out.println(String.format("%s is furious!", mammoth)); diff --git a/state/src/main/java/com/iluwatar/App.java b/state/src/main/java/com/iluwatar/App.java index 1fb0a90e4..b6795fd60 100644 --- a/state/src/main/java/com/iluwatar/App.java +++ b/state/src/main/java/com/iluwatar/App.java @@ -1,22 +1,22 @@ package com.iluwatar; /** - * + * * In State pattern the object (Mammoth) has internal state object (State) that * defines the current behavior. The state object can be changed to alter the * behavior. - * + * */ public class App { - public static void main(String[] args) { + public static void main(String[] args) { - Mammoth mammoth = new Mammoth(); - mammoth.observe(); - mammoth.timePasses(); - mammoth.observe(); - mammoth.timePasses(); - mammoth.observe(); + Mammoth mammoth = new Mammoth(); + mammoth.observe(); + mammoth.timePasses(); + mammoth.observe(); + mammoth.timePasses(); + mammoth.observe(); - } + } } diff --git a/state/src/main/java/com/iluwatar/Mammoth.java b/state/src/main/java/com/iluwatar/Mammoth.java index 78fb19682..6f2ceb2e5 100644 --- a/state/src/main/java/com/iluwatar/Mammoth.java +++ b/state/src/main/java/com/iluwatar/Mammoth.java @@ -3,16 +3,16 @@ package com.iluwatar; /** * * Mammoth has internal state that defines its behavior. - * + * */ public class Mammoth { - + private State state; public Mammoth() { state = new PeacefulState(this); } - + public void timePasses() { if (state.getClass().equals(PeacefulState.class)) { changeStateTo(new AngryState(this)); @@ -25,12 +25,12 @@ public class Mammoth { this.state = newState; this.state.onEnterState(); } - + @Override public String toString() { return "The mammoth"; } - + public void observe() { this.state.observe(); } diff --git a/state/src/main/java/com/iluwatar/PeacefulState.java b/state/src/main/java/com/iluwatar/PeacefulState.java index 6d6179a8b..fff986562 100644 --- a/state/src/main/java/com/iluwatar/PeacefulState.java +++ b/state/src/main/java/com/iluwatar/PeacefulState.java @@ -1,7 +1,7 @@ package com.iluwatar; public class PeacefulState implements State { - + private Mammoth mammoth; public PeacefulState(Mammoth mammoth) { @@ -17,5 +17,5 @@ public class PeacefulState implements State { public void onEnterState() { System.out.println(String.format("%s calms down.", mammoth)); } - + } diff --git a/state/src/main/java/com/iluwatar/State.java b/state/src/main/java/com/iluwatar/State.java index 3570a63f7..e1828d35d 100644 --- a/state/src/main/java/com/iluwatar/State.java +++ b/state/src/main/java/com/iluwatar/State.java @@ -3,12 +3,12 @@ package com.iluwatar; /** * * State interface. - * + * */ public interface State { void onEnterState(); - + void observe(); - + } diff --git a/strategy/src/main/java/com/iluwatar/App.java b/strategy/src/main/java/com/iluwatar/App.java index cfea8d44d..b4a197cdb 100644 --- a/strategy/src/main/java/com/iluwatar/App.java +++ b/strategy/src/main/java/com/iluwatar/App.java @@ -1,22 +1,22 @@ package com.iluwatar; /** - * + * * Strategy (DragonSlayingStrategy) encapsulates the algorithm to use. The * object (DragonSlayer) can alter its behavior by changing its strategy. - * + * */ public class App { - public static void main(String[] args) { - System.out.println("Green dragon spotted ahead!"); - DragonSlayer dragonSlayer = new DragonSlayer(new MeleeStrategy()); - dragonSlayer.goToBattle(); - System.out.println("Red dragon emerges."); - dragonSlayer.changeStrategy(new ProjectileStrategy()); - dragonSlayer.goToBattle(); - System.out.println("Black dragon lands before you."); - dragonSlayer.changeStrategy(new SpellStrategy()); - dragonSlayer.goToBattle(); - } + public static void main(String[] args) { + System.out.println("Green dragon spotted ahead!"); + DragonSlayer dragonSlayer = new DragonSlayer(new MeleeStrategy()); + dragonSlayer.goToBattle(); + System.out.println("Red dragon emerges."); + dragonSlayer.changeStrategy(new ProjectileStrategy()); + dragonSlayer.goToBattle(); + System.out.println("Black dragon lands before you."); + dragonSlayer.changeStrategy(new SpellStrategy()); + dragonSlayer.goToBattle(); + } } diff --git a/strategy/src/main/java/com/iluwatar/DragonSlayer.java b/strategy/src/main/java/com/iluwatar/DragonSlayer.java index 0111c7e66..bbd9c0ed3 100644 --- a/strategy/src/main/java/com/iluwatar/DragonSlayer.java +++ b/strategy/src/main/java/com/iluwatar/DragonSlayer.java @@ -3,7 +3,7 @@ package com.iluwatar; /** * * DragonSlayer uses different strategies to slay the dragon. - * + * */ public class DragonSlayer { @@ -16,7 +16,7 @@ public class DragonSlayer { public void changeStrategy(DragonSlayingStrategy strategy) { this.strategy = strategy; } - + public void goToBattle() { strategy.execute(); } diff --git a/strategy/src/main/java/com/iluwatar/DragonSlayingStrategy.java b/strategy/src/main/java/com/iluwatar/DragonSlayingStrategy.java index 100ad29ed..08626b117 100644 --- a/strategy/src/main/java/com/iluwatar/DragonSlayingStrategy.java +++ b/strategy/src/main/java/com/iluwatar/DragonSlayingStrategy.java @@ -3,10 +3,10 @@ package com.iluwatar; /** * * Strategy interface. - * + * */ public interface DragonSlayingStrategy { void execute(); - + } diff --git a/strategy/src/main/java/com/iluwatar/ProjectileStrategy.java b/strategy/src/main/java/com/iluwatar/ProjectileStrategy.java index 37c4a14cc..00bd68d5c 100644 --- a/strategy/src/main/java/com/iluwatar/ProjectileStrategy.java +++ b/strategy/src/main/java/com/iluwatar/ProjectileStrategy.java @@ -4,7 +4,8 @@ public class ProjectileStrategy implements DragonSlayingStrategy { @Override public void execute() { - System.out.println("You shoot the dragon with the magical crossbow and it falls dead on the ground!"); + System.out + .println("You shoot the dragon with the magical crossbow and it falls dead on the ground!"); } } diff --git a/strategy/src/main/java/com/iluwatar/SpellStrategy.java b/strategy/src/main/java/com/iluwatar/SpellStrategy.java index 3dab04329..05d3c69ec 100644 --- a/strategy/src/main/java/com/iluwatar/SpellStrategy.java +++ b/strategy/src/main/java/com/iluwatar/SpellStrategy.java @@ -4,7 +4,8 @@ public class SpellStrategy implements DragonSlayingStrategy { @Override public void execute() { - System.out.println("You cast the spell of disintegration and the dragon vaporizes in a pile of dust!"); + System.out + .println("You cast the spell of disintegration and the dragon vaporizes in a pile of dust!"); } } diff --git a/template-method/src/main/java/com/iluwatar/App.java b/template-method/src/main/java/com/iluwatar/App.java index 120737858..e44aa5b56 100644 --- a/template-method/src/main/java/com/iluwatar/App.java +++ b/template-method/src/main/java/com/iluwatar/App.java @@ -1,17 +1,17 @@ package com.iluwatar; /** - * + * * Template Method (StealingMethod) defines skeleton for the algorithm and * subclasses (HitAndRunMethod, SubtleMethod) fill in the blanks. - * + * */ public class App { - public static void main(String[] args) { - HalflingThief thief = new HalflingThief(new HitAndRunMethod()); - thief.steal(); - thief.changeMethod(new SubtleMethod()); - thief.steal(); - } + public static void main(String[] args) { + HalflingThief thief = new HalflingThief(new HitAndRunMethod()); + thief.steal(); + thief.changeMethod(new SubtleMethod()); + thief.steal(); + } } diff --git a/template-method/src/main/java/com/iluwatar/HalflingThief.java b/template-method/src/main/java/com/iluwatar/HalflingThief.java index 844fd00f8..57cf4f3c7 100644 --- a/template-method/src/main/java/com/iluwatar/HalflingThief.java +++ b/template-method/src/main/java/com/iluwatar/HalflingThief.java @@ -3,7 +3,7 @@ package com.iluwatar; /** * * Halfling thief uses StealingMethod to steal. - * + * */ public class HalflingThief { @@ -12,11 +12,11 @@ public class HalflingThief { public HalflingThief(StealingMethod method) { this.method = method; } - + public void steal() { method.steal(); } - + public void changeMethod(StealingMethod method) { this.method = method; } diff --git a/template-method/src/main/java/com/iluwatar/StealingMethod.java b/template-method/src/main/java/com/iluwatar/StealingMethod.java index a57d8296f..f0baabad6 100644 --- a/template-method/src/main/java/com/iluwatar/StealingMethod.java +++ b/template-method/src/main/java/com/iluwatar/StealingMethod.java @@ -3,14 +3,14 @@ package com.iluwatar; /** * * Template Method base class. - * + * */ public abstract class StealingMethod { protected abstract String pickTarget(); - + protected abstract void confuseTarget(String target); - + protected abstract void stealTheItem(String target); public void steal() { diff --git a/template-method/src/main/java/com/iluwatar/SubtleMethod.java b/template-method/src/main/java/com/iluwatar/SubtleMethod.java index 8967a92d6..830043075 100644 --- a/template-method/src/main/java/com/iluwatar/SubtleMethod.java +++ b/template-method/src/main/java/com/iluwatar/SubtleMethod.java @@ -9,12 +9,14 @@ public class SubtleMethod extends StealingMethod { @Override protected void confuseTarget(String target) { - System.out.println("Approach the " + target + " with tears running and hug him!"); + System.out.println("Approach the " + target + + " with tears running and hug him!"); } @Override protected void stealTheItem(String target) { - System.out.println("While in close contact grab the " + target + "'s wallet."); + System.out.println("While in close contact grab the " + target + + "'s wallet."); } } diff --git a/visitor/src/main/java/com/iluwatar/App.java b/visitor/src/main/java/com/iluwatar/App.java index 944546553..63e0eb105 100644 --- a/visitor/src/main/java/com/iluwatar/App.java +++ b/visitor/src/main/java/com/iluwatar/App.java @@ -1,22 +1,22 @@ package com.iluwatar; /** - * + * * Visitor pattern defines mechanism to apply operations (UnitVisitor) on nodes * (Unit) in hierarchy. New operations can be added without altering the node * interface. - * + * */ public class App { - public static void main(String[] args) { + public static void main(String[] args) { - Commander commander = new Commander( - new Sergeant(new Soldier(), new Soldier(), new Soldier()), - new Sergeant(new Soldier(), new Soldier(), new Soldier())); - commander.accept(new SoldierVisitor()); - commander.accept(new SergeantVisitor()); - commander.accept(new CommanderVisitor()); + Commander commander = new Commander(new Sergeant(new Soldier(), + new Soldier(), new Soldier()), new Sergeant(new Soldier(), + new Soldier(), new Soldier())); + commander.accept(new SoldierVisitor()); + commander.accept(new SergeantVisitor()); + commander.accept(new CommanderVisitor()); - } + } } diff --git a/visitor/src/main/java/com/iluwatar/Commander.java b/visitor/src/main/java/com/iluwatar/Commander.java index 6366abeaf..5d8f994d8 100644 --- a/visitor/src/main/java/com/iluwatar/Commander.java +++ b/visitor/src/main/java/com/iluwatar/Commander.java @@ -2,7 +2,7 @@ package com.iluwatar; public class Commander extends Unit { - public Commander(Unit ... children) { + public Commander(Unit... children) { super(children); } @@ -11,7 +11,7 @@ public class Commander extends Unit { visitor.visitCommander(this); super.accept(visitor); } - + @Override public String toString() { return "commander"; diff --git a/visitor/src/main/java/com/iluwatar/Sergeant.java b/visitor/src/main/java/com/iluwatar/Sergeant.java index f56b3fc7a..488a26ceb 100644 --- a/visitor/src/main/java/com/iluwatar/Sergeant.java +++ b/visitor/src/main/java/com/iluwatar/Sergeant.java @@ -2,7 +2,7 @@ package com.iluwatar; public class Sergeant extends Unit { - public Sergeant(Unit ... children) { + public Sergeant(Unit... children) { super(children); } @@ -11,7 +11,7 @@ public class Sergeant extends Unit { visitor.visitSergeant(this); super.accept(visitor); } - + @Override public String toString() { return "sergeant"; diff --git a/visitor/src/main/java/com/iluwatar/Soldier.java b/visitor/src/main/java/com/iluwatar/Soldier.java index 45b9b1554..b981979d9 100644 --- a/visitor/src/main/java/com/iluwatar/Soldier.java +++ b/visitor/src/main/java/com/iluwatar/Soldier.java @@ -2,7 +2,7 @@ package com.iluwatar; public class Soldier extends Unit { - public Soldier(Unit ... children) { + public Soldier(Unit... children) { super(children); } @@ -11,7 +11,7 @@ public class Soldier extends Unit { visitor.visitSoldier(this); super.accept(visitor); } - + @Override public String toString() { return "soldier"; diff --git a/visitor/src/main/java/com/iluwatar/Unit.java b/visitor/src/main/java/com/iluwatar/Unit.java index 32cc93ed3..692567757 100644 --- a/visitor/src/main/java/com/iluwatar/Unit.java +++ b/visitor/src/main/java/com/iluwatar/Unit.java @@ -1,7 +1,7 @@ package com.iluwatar; /** - * + * * Interface for the nodes in hierarchy. * */ @@ -9,12 +9,12 @@ public abstract class Unit { private Unit[] children; - public Unit(Unit ... children) { + public Unit(Unit... children) { this.children = children; } - + public void accept(UnitVisitor visitor) { - for (Unit child: children) { + for (Unit child : children) { child.accept(visitor); } } diff --git a/visitor/src/main/java/com/iluwatar/UnitVisitor.java b/visitor/src/main/java/com/iluwatar/UnitVisitor.java index 298b9f8cb..da5023496 100644 --- a/visitor/src/main/java/com/iluwatar/UnitVisitor.java +++ b/visitor/src/main/java/com/iluwatar/UnitVisitor.java @@ -3,12 +3,14 @@ package com.iluwatar; /** * * Visitor interface. - * + * */ public interface UnitVisitor { void visitSoldier(Soldier soldier); + void visitSergeant(Sergeant sergeant); + void visitCommander(Commander commander); - + }